in reply to Re: Add images to PDF using pdf::ap12
in thread Add images to PDF using pdf::ap12

Thanks for the time in posting your code, but that's a little "heavy" for me. I ended up using a couple of for ->next loops
use PDF::API2; print "content-type: text/html\n\n"; use CGI::Carp qw( fatalsToBrowser ); $pdf = PDF::API2->new(-file => 'new.pdf'); # prepares filespace # 10 pages without above graphic = <3 seconds for ($doc=0; $doc<10; $doc++){ # Repeat for each new loop $page = $pdf->page(); # Adds new page to document. $page->mediabox('A4'); # Sets page size to A4 $font = $pdf->corefont('Verdana'); # Adds the Verdana font $text = $page->text(); # Adds some text to page $across=30; $up=48; $z=0; $qr=$pdf->image_png('test.png'); # Test pathname $arrow=$pdf->image_png('C:\...\arrows.png'); # Test pathname $gfx = $page->gfx; for ($x=0; $x<3; $x++){ # Across in 180dpi steps $new_across=$across+(180*$x); for ($y=0; $y<8; $y++){ # Up in 96dpi steps $new_up=$up+(96*$y); $text->font($font, 8); $text->translate($new_across, $new_up); $text->text('http://www.###/abcde/122345'); # Test URL $text->font($font, 9); $text->translate($new_across+11, $new_up+56); $text->text('Find Your'); $text->translate($new_across+16, $new_up+45); $text->text('Photos'); $text->font($font, 11); $text->translate($new_across+25, $new_up+34); $text->text('HERE'); $gfx->image($qr, ($new_across+90), ($new_up+10)); $gfx->image($arrow, ($new_across-4), ($new_up+12)); $z++; } } #$file=$pdf->image_png('C:\...label_layout.png'); # This is onl +y a test pathname #$gfx = $page->gfx; #$gfx->image($file, 0, 0); } # End of Page loop $pdf->save(); # Saves the file print "OK"; exit;
I will now add some code from GD library to create 24 QR code images, and then load them into page 1 by 1. Then discard them, and prepare the next batch for next page and so on.

Replies are listed 'Best First'.
Re^3: Add images to PDF using pdf::ap12
by gpapkala (Acolyte) on Feb 24, 2015 at 21:08 UTC

    So one more piece of code from myself. I wrote very small module that extends the PDF::API2 with QRCodes capabilities. Unfotunatelly although I sent this to current package maintener it never appeard in the PDF::API2

    Anyway you may have a look at https://github.com/grzegorzpapkala/PDF-API2-Resource-XObject-Form-QRCode. It relays on Text::QRCode. This way you can generate the QRcodes without extra GD calls. Maybe it would be easier this way.

      Sorry I've not replied before now. Been busy trying to get all the models to work! So I completed my code using GD before I saw this. I may give it a try, but to be honest, the AP12 and GD are creating 240 labels in 3 seconds, which I don't think is too bad. (Then again, 2400 is about 27 secs, so if your little code beats that ...)

      Alas, now run into another problem: I can't get the PDF to read into perl / appear in browser. (Fine if clicked/opened from local folder) I've submitted another post to the Monks, but basically the code is 212K ... but won't proceed beyond 4K whatever I try. And if I can't read it into memory again, I can't send it to browser / zip it or do anything!