我有一個PDF文件。 我會以毫米爲單位獲得它的高度和寬度。PHP獲取Pdf文件屬性中的高度和寬度
所以我做了一個exec(pdfinfo ...); 我有這樣的結果:
創建者:Adobe公司的InDesign CS5(7.0.3)監製:的Acrobat Distiller中9.4.2(Macintosh)的CreationDate:星期一1月30日15時48分43秒2012創建ModDate:週五10年2月10日: 35:05 2012標籤:無頁數:34加密:無頁面大小:552.744 X 708.643分文件大小: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;
} ?>
沒關係,因爲我有三個數字點三個n (552.744 x 708.643)。 但是,我不知道爲什麼,有些PDF文件有這樣的信息:
者:PDFTK 1.41 - www.pdftk.com監製:iText的2.1.5(由lowagie.com)CreationDate:週一02月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文件大小:5097597 bytes優化:是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高度= 0
感謝您的幫助!我有寬度= 0高度= 0 – 2012-03-08 18:32:01
因爲你仍然在做'$ data = split()'行。如果你直接在$輸出上咆哮他的regex,那應該就是你所需要做的。如果將其與其他答案的正則表達式組合以獲取頁面編號,則可以擺脫整個循環。 – AndrewR 2012-03-09 15:59:21
你能解釋一下你的想法嗎?我不都明白,謝謝 – 2012-03-09 21:18:35