Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

One PDF file for a set of images

by graff (Chancellor)
on Jun 17, 2009 at 05:57 UTC ( #772236=snippet: print w/replies, xml ) Need Help??
Description: I had to scan a bunch of paper documents (one image per page), and upload them all to a web site that would accept only one PDF file containing the whole set.

A few CPAN module can do this, but their man pages leave a lot to the imagination. After a dozen trial/error iterations, here's what worked for me, using PDF::Create (it's manual was much better than PDF::API2).

#!/usr/bin/perl

use strict;
use warnings;
use PDF::Create;

my $pdf = new PDF::Create(filename=>"test.pdf",Author=>"Me");
my $psz = $pdf->get_page_size("Letter");
my $rt = $pdf->new_page( MediaBox => $psz );
for my $i (<*.jpg>) {
    my $im = $pdf->image($i);
    my $pg = $rt->new_page( MediaBox => $psz );
    $pg->image( image => $im,
        xpos => 0, ypos => 0,
        xscale => $$psz[2] / $$im{width},
        yscale => $$psz[3] / $$im{height}
    );
}
$pdf->close;

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: snippet [id://772236]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (6)
As of 2016-10-01 21:14 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    How many different varieties (color, size, etc) of socks do you have in your sock drawer?






    Results (7 votes). Check out past polls.