如何使用PHP从PDF文件访问元数据(XMP)信息?我需要文件的高度和宽度。
答案 0 :(得分:2)
似乎ImageMagick understands PDF's和Imagick::identifyImage()
返回一个包含大量信息的数组。
此片段:
$img = new Imagick('test.pdf');
var_dump($img->identifyImage());
生成此渲染:
array(9) {
["imageName"]=>
string(9) "/test.pdf"
["format"]=>
string(30) "PDF (Portable Document Format)"
["geometry"]=>
array(2) {
["width"]=>
int(596)
["height"]=>
int(843)
}
["resolution"]=>
array(2) {
["x"]=>
float(72)
["y"]=>
float(72)
}
["units"]=>
string(9) "Undefined"
["type"]=>
string(14) "TrueColorMatte"
["colorSpace"]=>
string(3) "RGB"
["compression"]=>
string(9) "Undefined"
["fileSize"]=>
string(7) "37.6KBB"
}
答案 1 :(得分:1)
您可能希望了解Zend Framework,特别是他们的Zend_Pdf组件。
从他们的手册页:
$pdf = Zend_Pdf::load($pdfPath);
echo $pdf->properties['Title'] . "\n";
echo $pdf->properties['Author'] . "\n";
$pdf->properties['Title'] = 'New Title.';
$pdf->save($pdfPath);
HTH
答案 2 :(得分:1)
如果您只想要宽度和高度,请使用
<?php
$pdffile = "filename.pdf";
$pdfinfo = shell_exec("pdfinfo ".$pdffile);
// find height and width
preg_match('/Page size:\s+([0-9]{0,5}\.?[0-9]{0,3}) x ([0-9]{0,5}\.?[0-9]{0,3})/', $pdfinfo,$heightandwidth);
$width = $heightandwidth[1];
$height = $heightandwidth[2];
?>
这将以pts为单位给出你的身高和宽度。然后你可以做一些简单的数学运算,转换成你想要的单位。