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/


Reply via email to