I have a PDF file. I would to get it height and width in mm.
So I do an exec(pdfinfo ... ); I have this result :
Creator: Adobe InDesign CS5 (7.0.3) Producer: Acrobat Distiller 9.4.2 (Macintosh) CreationDate: Mon Jan 30 15:48:43 2012 ModDate: Fri Feb 10 10:35:05 2012 Tagged: no Pages: 34 Encrypted: no Page size: 552.744 x 708.643 pts File size: 80724791 bytes Optimized: yes PDF version: 1.3
I have a script witch extract my info :
<?php
$output = shell_exec("pdfinfo ".$pdflivrelink);
$data = explode("\n", $output); //puts it into an array
for($c=0; $c < count($data); $c++) {
if(stristr($data[$c],"Pages") == true) {
$pagesnumber = trim(substr($data[$c],6));
}
if(stristr($data[$c],"Page size") == true) {
$pagesize_H = height_pdf(trim(substr($data[$c],9)));
}
if(stristr($data[$c],"Page size") == true) {
$pagesize_L = width_pdf(trim(substr($data[$c],9)));
}
}
function height_pdf($size){
$hauteur = round(substr($size,7,7)/2.83);
return $hauteur;
}
function width_pdf($size){
$largeur = round(substr($size,17,7)/2.83);
return $largeur;
} ?>
It's OK, because I have three numbers dot three numbers (552.744 x 708.643). But, I don't know why, some PDF files have this info :
Creator: pdftk 1.41 - www.pdftk.com Producer: iText 2.1.5 (by lowagie.com) CreationDate: Mon Feb 27 13:18:23 2012 ModDate: Mon Feb 27 16:26:12 2012 Tagged: no Pages: 36 Encrypted: no Page size: 425.2 x 538.582 pts File size: 5097597 bytes Optimized: yes PDF version: 1.6
425.2 x 538.582 : So my script doesn't work!
Can you help me? thank a lot!
I test this :
$output = shell_exec("pdfinfo ".$pdflivrelink);
$data = explode("\n", $output); //puts it into an array
for($c=0; $c < count($data); $c++) {
if(stristr($data[$c],"Pages") == true) {
$pagesnumber = trim(substr($data[$c],6));
}
if(stristr($data[$c],"Page size") == true) {
echo $data[$c];
preg_match('/Page size: ([0-9]*\.?[0-9]?) x ([0-9]*\.?[0-9]?)/', $data[$c], $matchess);
$width = round($matchess[1]/2.83);
$height = round($matchess[2]/2.83);
}
}
echo "width = $width<br>height = $height";
it result :
Page size: 425.2 x 538.582 ptswidth = 0 height = 0
Why not use plain PHP to get the pdf dimensions?
Since you know the format of the size string, you can also do it like below. (This function returns width and height in an array.)
A little regex will get you the correct results.
Update ( asked for more details ) : Complete working example below. I've updated Regex to match real output from
pdfinfo
Do it with a
preg_match()
: