trichview.support
Re: Printing Huge Documents |
Author |
Message |
Grimes |
Posted: 10/18/2003 22:11:18 OK... Got it... Thanks for your help. --------------------- "Sergey Tkachenko" <[email protected]> wrote: >Yes, of course, I used two components just for an example. >Your code is correct. You can remove the line RichView1.Format(); (it's not >necessary, and the code will run faster). > >There is one pitfall here. ContinuousPrint prints at least one line. What if >there is no place for it? You should start a new page yourself. > >Height of printable area is RVPrint.rv.Height. > >Add after the line: >RVPrint.StartAt := RVPrint.EndAt+60; > >if RVPrint.rv.Height-RVPrint.StartAt<some safe value then >begin > Printer.NewPage; > RVPrint.StartAt := 0; >end; > > >> >> Much obliged for your helpful reply. Using multiple RichView controls is >> not an option, since all sub-docs would need to be loaded together. >> >> Instead, would it OK to use ContinuousPrint from same RichView. In other >> words can I expect reliable results from (pseudo) code below, or must I >wait >> for ContinuousPrint (async?) method to complete before reloading RichView. >> >> Thanks again... >> --------------- >> >> Printer.BeginDoc; >> RVPrint.StartAt := 0; >> RVPrint.AssignSource(RichView1); >> RVPrint.FormatPages(rvdoALL); >> RVPrint.ContinuousPrint; >> >> for i:= 1 to NumSubDocs do begin >> >> RichView1.Clear(); >> RichView1.LoadRVFFromStream(NextSubDocStream); >> RichView1.Format(); >> >> RVPrint.StartAt := RVPrint.EndAt+60; >> RVPrint.FormatPages(rvdoALL); >> RVPrint.ContinuousPrint; >> >> end; >> >> Printer.EndDoc; >> --------------- >> >> "Sergey Tkachenko" <[email protected]> wrote: >> >Yes, there is a way to print multiple documents in one printing job, >using >> >undocumented method TRVPrint.ContinuousPrint. >> > >> >This example shows how to print one document consisting of two RichViews >> >(RichView1 and RichView2). >> > >> >Printer.BeginDoc; >> >RVPrint.StartAt := 0; >> >RVPrint.AssignSource(RichView1); >> >RVPrint.FormatPages(rvdoALL); >> >RVPrint.ContinuousPrint; >> >RVPrint.StartAt := RVPrint.EndAt+60; // 60 pixels spacing between >documents >> >RVPrint.AssignSource(RichView2); >> >RVPrint.FormatPages(rvdoALL); >> >RVPrint.ContinuousPrint; >> >Printer.EndDoc; >> > >> > >> > >> > >> > >> >> >> >> I'm evaluating the RichView components for use in a document processing >> >app. >> >> I need to handle big (huge!) documents, so I've adopted a master/sub >> >document >> >> structure. Each sub-doc is stored separately (in a SQLite DB) and only >> >one >> >> sub-doc would be visible in a single RichView control at any one time. >> >Looks >> >> like this would work OK except for printing. My question is... >> >> >> >> Is there any way to print the complete doc using RVPrint without >appending >> >> all sub-docs into one RichEdit. I've studied the demos and searched >the >> >> RichView newsgroups but cannot figure out a solution. >> >> >> >> Any help or suggestions appreciated. >> >> >> >> Fergal >> >> >> > >> > >> > > |
Powered by ABC Amber Outlook Express Converter