On May 7, 8:40 am, [EMAIL PROTECTED] (Rob Dixon) wrote: > hotkitty wrote: > > First and foremost thanks for all the help I've received on this > > board, especially Gunnar who keeps this place running! > > > I've come a long way in my code and am trying to format some text and > > then put it into a nice pdf file. My problem is putting the formatted > > text into the pdf and for it to display correctly. I am just trying to > > justify the text and then set the margins. I can put the text in the > > pdf and it looks like it is trying to justify it but it won't wrap to > > the next line. I've looked at the documentation for both the > > Text::Autoformat and PDF::API2 modules but can't seem to figure it > > out. > > > I have 2 questions: 1. What am I doing wrong in that the text will > > appear fine when I "print" it but that it won't appear correctly in > > the pdf file? 2. Also, if the text is more than 1 page, how can I get > > it to automatically create a new page and continue onto the newly > > created page? > > > My code: > > > #!/usr/bin/perl > > > use warnings; > > > use LWP::Simple; > > use HTML::TokeParser; > > use PDF::API2; > > use Text::Autoformat; > > > # Print out the subtitle > > > my $oldtext = "trying to test if this sentence will be formatted the > > correct way when it appears in the pdf file. For some reason I just > > can't seem to get this to work. Well, maybe I can find help to get > > this working. If I could get it to work it would really make my kitty > > purrrr"; > > > my $newtext = autoformat $oldtext, { left=>8, right=>70, justify => > > 'full' }; > > print $newtext; > > > #----create the pdf file-----> > > my $file = "This PDF"; > > my $pdf = PDF::API2->new( -file => "$file.pdf" ); > > my $page = $pdf->page; > > $page->mediabox ('A4'); > > $page->bleedbox(25,25,5,10); > > $page->cropbox (7.5,7.5,97.5,120.5); > > my %font = ( > > Helvetica => { > > Bold => $pdf->corefont( 'Helvetica-Bold', -encoding => > > 'latin1' ), > > Roman => $pdf->corefont( 'Helvetica', -encoding => > > 'latin1' ), > > Italic => $pdf->corefont( 'Helvetica-Oblique', -encoding => > > 'latin1' ), > > }, > > Times => { > > Bold => $pdf->corefont( 'Times-Bold', -encoding => > > 'latin1' ), > > Roman => $pdf->corefont( 'Times', -encoding => > > 'latin1' ), > > Italic => $pdf->corefont( 'Times-Italic', -encoding => > > 'latin1' ), > > }, > > ); > > > my $main_text = $page->text; > > $main_text->font( $font{'Times'}{'Roman'}, 2 ); > > $main_text->fillcolor('black'); > > $main_text->translate( 5, 100 ); > > $main_text->text("$newtext"); > > > $pdf->save; > > $pdf->end(); > > Unfortunately PDF files aren't the easiest of things to create, but the > program > below does what you want and should help you get started. Remember that, > unless > you change from the default, all units are 1/72 of an inch; the origin of the > page is at the lower left corner and values for Y increase upwards. > > There is no point in preformatting the text as newlines are ignored, and the > extra spaces will simply increase the distance between words. > > This program translates to a point 1in from the left and top edges of an A4 > page > and then adds the text as a paragraph in a box 2in high and 1in from the > right-hand edge. Note also that I've set the font point size to 12 (you had 2 > before which is nearly invisible) and added 16pt leading (the distance between > the bases of the lines of text). > > HTH, > > Rob > > use strict; > use warnings; > > use PDF::API2; > > my $oldtext = "trying to test if this sentence will be formatted the > correct way when it appears in the pdf file. For some reason I just > can't seem to get this to work. Well, maybe I can find help to get > this working. If I could get it to work it would really make my kitty > purrrr"; > > my $file = 'This PDF'; > my $pdf = PDF::API2->new( -file => "$file.pdf" ); > my $page = $pdf->page; > > my $times = $pdf->corefont( 'Times', -encoding => 'latin1'); > > my $main_text = $page->text; > > $main_text->font($times, 12); > $main_text->fillcolor('black'); > $main_text->lead(16); > $main_text->translate(72, 700); > $main_text->paragraph($oldtext, 450, 144); > > $pdf->save; > $pdf->end;- Hide quoted text - > > - Show quoted text -
Thank you! Again, you guys are extremely helpful! The code works perfectly. I want each PDF file to have 38 lines of text per page. If the text is over 38 lines, then I want to create a new page and put that text in page 2. Again, if page 2 has more than 38 lines of text, then add a 3rd page and so on and so forth until the end of the text that I have. How would I do that in this situation? -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/