trichview.com

trichview.support




Re: Pageheader, PageFooter?


Return to index


Author

Message

Sergey Tkachenko

Posted: 04/20/2005 0:27:58


> Hi, Is possible with TRichView 1.9.8 to include Page Header and

PageFooter?

> And how?


Yes and no.


It's possible to make any kind of header and footer, but they must be

implemented

differently depending on your needs.


The component supports complex headers and footers - they can be multiline,

contain images, tables, etc.

They must be assigned to TRVPrint component by the methods SetHeader and

SetFooter.

See the example Demos\Delphi\Assorted\Printing\Headers\

There is a limitation of this method - the same header and footer for all

pages,

with no dynamic fields (like page number).


If you need different headers for different pages, you need to draw them

yourself,

using OnPagePrepaint event.

This demo shows how to draw a simple text as a header:

Demos\Delphi\Assorted\Printing\Printing\

Since you draw this text yourself, you can draw as many lines as you want.


RichViewActions (http://www.trichview.com/resources/actions/) process this

event themselves and draw one plain text line. But they are limited with one

line.


If you need to draw more complex headers (different for different pages),

you can use TRVReportHelper component for this:

http://www.trichview.com/support/files/printheader.zip

This demo uses TRVReportHelper to draw header in TRVPrint.OnPagePrepaint

event.

This demo draws the same header for all pages, but can be easily changed to

draw different ones.


How it can be done is shown in this demo

http://www.trichview.com/support/files/cppheader.zip, but it's for

C++Builder.


And the last demo - using TRVReportHelper for drawing both header/footer and

the

main document:

http://www.trichview.com/support/files/a4.zip

It draws the result on the metafile, but can be easily changed to draw on

the printer canvas.


> And how can I add the content of 2 TRichViewEdit in another one?


// rv1+rv2 --> rv

var Stream: TMemoryStream;

rv.Clear;

Stream := TMemoryStream.Create;

rv1.SaveRVFToStream(Stream, False);

Stream.Position := 0;

rv.InsertRVFFromStream(Stream, rv.ItemCount);

Stream.Free;

rv2.SaveRVFToStream(Stream, False);

Stream.Position := 0;

rv.InsertRVFFromStream(Stream, rv.ItemCount);

Stream.Free;

rv.Format;






Powered by ABC Amber Outlook Express Converter