The following code inserts a centred page number field as the header on each page.
Call CHeaderFooter::CreateTextL()
to allocate and construct the rich text component which is owned by the header/footer.
Retrieve the rich text component by calling CHeaderFooter::Text()
. This can be used to apply rich text formatting to the header and footer.
Construct a paragraph format container and mask using CParaFormat
and TParaFormatMask
to apply paragraph formatting to the header. The centre alignment attribute is set in the container.
Use CRichText::ApplyParaFormatL()
to apply the formatting to the header.
To create a field in a header, use CRichText::NewTextFieldL()
, specifying the UID of the desired field type. Update the field before printing it.
// Set header text iPrintSetup->Header()->CreateTextL(); _LIT(KPage,"Page "); // Header text TBuf<8> buf(KPage); iPrintSetup->Header()->Text()->InsertL(0,buf); CTextField* field=iPrintSetup->Header()->Text()->NewTextFieldL(KPageNumberFieldUid); iPrintSetup->iHeader->iText->InsertFieldL (5,field,KPageNumberFieldUid); // Make field at doc pos'n 5 visible iPrintSetup->Header()->Text()->UpdateFieldL(5); // Centre the paragraph containing header CParaFormat* paraFormat=CParaFormat::NewL(); TParaFormatMask paraFormatMask; paraFormat->iHorizontalAlignment=CParaFormat::ECenterAlign; paraFormatMask.SetAttrib(EAttAlignment); // To centre align text iPrintSetup->Header()->Text()->ApplyParaFormatL(paraFormat,paraFormatMask,0,1); delete paraFormat;