I wanted to build an awesome place for people to discuss module specific issues, but I don't have any more time for this, and there are much better places to discuss Perl-related issues. I'd recommend asking your question on Stack Overflow or on Perl Monks.
If you are looking for a Perl tutorial or Perl-related news, I hope these links will serve you well.
Posted on 2010-07-22 09:25:24.095335-07 by kodo
Adding images
Hi, now forgive me for being new, I have PDF-Create working just wonderfully, but I cannot find an example of an image being added to a pdf anywhere, and I've search all day. I have installed (and using)

PDF::Image::GIF PDF::Image::JPEG


I've created the image object

my $image1 = new PDF::Image::JPEG('testImage.jpg');


All works up to here and the PDF document gets created fine, but as soon as I try to add the image (the next line) to the page it stops working

$page2->image($image1, 100, 100, 1, 2, 1.0, 1.0 ,0, 0, 0);


I'm totally lost now having tried everything I can think of, posting here is my last resort.

Thanks in advance..
Direct Responses: 12829 | 12831 | Write a response
Posted on 2010-07-23 03:05:57.166507-07 by kodo in response to 12828
Re: Adding images
You might want to see the entire script, almost 100% of it is cut n pasted directly from the CPan page. The only differences are the includsion of PDF::Image::GIF and PDF::Image::JPG, the extra two lines of code mentioned above and three lines at the bottom. As mentioned above the script works fine without the one line that actually adds the image to the page. And before you ask the image definately does exist, in the same directory as the script. Thanks for your help...

#!/usr/bin/perl use CGI qw(:all); use PDF::Create; use PDF::Image::GIF; use PDF::Image::JPEG; my $pdf = new PDF::Create('filename' => 'mypdf.pdf', 'Version' => 1.2, 'PageMode' => 'UseNone', 'Author' => 'EPC4U', 'Title' => 'My title', ); my $root = $pdf->new_page('MediaBox' => [ 0, 0, 612, 792 ]); # Add a page which inherits its attributes from $root my $page = $root->new_page; # Prepare 2 fonts my $f1 = $pdf->font('Subtype' => 'Type1', 'Encoding' => 'WinAnsiEncoding', 'BaseFont' => 'Helvetica'); my $f2 = $pdf->font('Subtype' => 'Type1', 'Encoding' => 'WinAnsiEncoding', 'BaseFont' => 'Helvetica-Bold'); # Prepare a Table of Content my $toc = $pdf->new_outline('Title' => 'Document', 'Destination' => $page); $toc->new_outline('Title' => 'Section 1'); my $s2 = $toc->new_outline('Title' => 'Section 2', 'Status' => 'closed'); $s2->new_outline('Title' => 'Subsection 1'); $page->stringc($f2, 40, 306, 426, "PDF::Create"); $page->stringc($f1, 20, 306, 396, "version $PDF::Create::VERSION"); # Add another page my $page2 = $root->new_page; $page2->line(0, 0, 612, 792); $page2->line(0, 792, 612, 0); $toc->new_outline('Title' => 'Section 3'); $pdf->new_outline('Title' => 'Summary'); # Add something to the first page $page->stringc($f1, 20, 306, 300, 'by Fabien Tassin <fta@oleane.net>'); # Add something to the page 2 $page2->stringc($f1, 12, 306, 100, 'Test Content'); my $image1 = new PDF::Image::JPEG('testImage.jpg'); # image( image_id, xpos, ypos, xalign, yalign, xscale, yscale, rotate, xskew, yskew) $page2->image($image1, 100, 100, 1, 2, 1.0, 1.0 ,0, 0, 0); # Add the missing PDF objects and a the footer then close the file $pdf->close; print header; print qq(Done.); exit;
Direct Responses: Write a response
Posted on 2010-07-23 04:28:30.537206-07 by markusb in response to 12828
Re: Adding images
Hi Kodo,

The POD of PDF-Create shows how to imbed images.

Here the essential two lines you need. There is no need to include PDF::Create:JPEG.
my $jpg1 = $pdf->image($jpgname); $page->image( 'image' => $jpg1, 'xscale' => 0.2, 'yscale' => 0.2, 'xpos' => 350, 'ypos' => 400 );

Markus
Direct Responses: 12832 | Write a response
Posted on 2010-07-23 05:03:07.501647-07 by kodo in response to 12831
Re: Adding images
Fantastic, thanks very much Markus. I admit I've a lot to learn still, sometimes I struggle a bit with the syntax on the odd CPAN modules. On the POD (http://search.cpan.org/~markusb/PDF-Create-1.06/lib/PDF/Create.pm) does mention adding images, but with no code example, just a few lines that to a newby like me are cryptic :(

image(<filename>)
+ a bit of text about Preparing an XObject

image( image_id, xpos, ypos, xalign, yalign, xscale, yscale, rotate, xskew, yskew)
+ a bit about why small GIF images wont work and a small bit about each paramiter.

No actual examples. Looking back at my previous attempts I did get close on one ooccation with the following code, but as you can see (and as I see now) while it was close it was completely wrong! It seems so obvious now I see the correct code!

$page2->image( image_id => "$image1", xpos => '300', ypos => '500', xalign => '1', yalign => '2', xscale => '1.0', yscale => '1.0', rotate => '0', xskew => '0', yskew => '0');


Thanks again for the help, much appreciated!
Direct Responses: 12833 | Write a response
Posted on 2010-07-23 07:30:37.836624-07 by markusb in response to 12832
Re: Adding images
No problem, happy it is working for you.

As usual, documentation could be better. I'm planning, in the back of my head, to supply sample programs for all features. I don't know yet what the best way to supply them would be, though.

Markus
Direct Responses: Write a response