【发布时间】:2012-03-26 05:07:09
【问题描述】:
我有一个 PDF 文件。 我会得到它的高度和宽度,以毫米为单位。
所以我做了一个 exec(pdfinfo ... ); 我有这个结果:
创建者:Adobe InDesign CS5 (7.0.3) 制作者:Acrobat Distiller 9.4.2 (Macintosh) 创建日期:2012 年 1 月 30 日星期一 15:48:43 修改日期:2012 年 2 月 10 日星期五 10:35:05 标记:无页数: 34 加密:否页面大小:552.744 x 708.643 pts 文件大小:80724791 字节优化:是 PDF 版本:1.3
我有一个脚本女巫提取我的信息:
<?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;
} ?>
没关系,因为我有三个数字点三个数字 (552.744 x 708.643)。 但是,我不知道为什么,有些 PDF 文件有这个信息:
创建者:pdftk 1.41 - www.pdftk.com 制作者:iText 2.1.5(by lowagie.com) 创建日期:2012 年 2 月 27 日星期一 13:18:23 修改日期:2012 年 2 月 27 日星期一 16:26:12 标记:否页数:36 加密:否 页面大小:425.2 x 538.582 pts 文件大小:5097597 字节 优化:是 PDF 版本:1.6
425.2 x 538.582:所以我的脚本不起作用!
你能帮帮我吗?非常感谢!
我对此进行了测试:
$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";
结果:
页面大小:425.2 x 538.582 ptswidth = 0 height = 0
【问题讨论】:
-
为了更好地理解pdf宽度,请参考How to query pdf page size from the command line?
-
2.83 = 72 / 25.4