2009-09-23 86 views
3

給定PDF,如何使用PHP lib或linux命令行工具獲取PDF(或相對寬度/高度)的佈局模式?從PDF/linux獲取pdf的佈局模式(橫向或縱向)

使用http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp=tcpdf可以在新的PDF上設置此變量,但是可以在Adobe上設置現有的PDF。

想到將pdf轉換爲ps或者以某種其他方式使用gs - 比如先將其轉換爲圖像,然後獲取寬度和高度。這是最好的方法嗎?

+0

有沒有這樣的事情'PDF的佈局模式'。什麼是'*頁面佈局模式*'。你所假設的(PDF格式具有相同的頁面大小和方向)只是一個特例(這可能有點常見,具有諷刺意味)!另請參見[如何考慮修剪框和PDF頁面的旋轉設置](http://stackoverflow.com/a/12052546/359307)... – 2012-08-21 13:58:26

回答

3

我使用的解決方案是使用ghostscript的第一頁打印到的圖像,然後讓圖像尺寸

$cmd = 'gs -dSAFER -dBATCH -dNOPAUSE -dFirstPage=1 -dLastPage=1 -sDEVICE=png16m -r400 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -sOutputFile="'.$complete_file_path.'/p%d.png" "'.$complete_file_path.'/'.$this->pdffilename.'"'; 
     $result = $this->proc($cmd); 
     list($width, $height, $type, $attr) = getimagesize($complete_file_path.'/'.$pngfilename); 
+0

這將錯過PDF包含混合尺寸和混合方向頁面的所有情況。 (並且相信我,在野外有相當多的人......) – 2010-08-09 18:53:43

0

大槍,但沒有其他建議。我已經使用了iText Java庫來處理pdf文件。

請注意,據我所知,沒有PDF佈局模式或大小這樣的事情。 PDF是一組頁面,每個頁面都有一個媒體框,用於定義要打印頁面的大小。但是,如果未定義,則此屬性可以由前一頁的頁面繼承。詳情請參閱PDF reference

+0

iText java庫看起來像tcpdf的等價物。感謝關於PDF的提示,儘管 – 2009-09-24 17:02:45

+0

您的'PDF參考'鏈接已損壞。 – 2012-10-05 15:14:22

1

你不能總是依靠的結果從第一頁是相同的其餘的都是。我已經看到足夠多的混合格式的PDF文件,不想在此假設基礎上編寫任何代碼。

確定每個頁面(甚至每個嵌入的{Trim,Media,Crop,Bleed}框)的媒體大小的更可靠的方法是命令行工具pdfinfo.exe(來自http://www.foolabs.com/xpdf/download.html的XPDF工具的一部分)。你可以用「 - 盒」參數運行該工具,並以「-f 3」告訴它在第3頁,並啓動「-l 8」在頁停止處理8

輸出示例:

 
C:\downloads>pdfinfo -box -f 1 -l 3 _IXUS_850IS_ADVCUG_EN.pdf 
Creator:  FrameMaker 6.0 
Producer:  Acrobat Distiller 5.0.5 (Windows) 
CreationDate: 08/17/06 16:43:06 
ModDate:  08/22/06 12:20:24 
Tagged:   no 
Pages:   146 
Encrypted:  no 
Page 1 size: 419.535 x 297.644 pts 
Page 2 size: 297.646 x 419.524 pts 
Page 3 size: 297.646 x 419.524 pts 
Page 1 MediaBox:  0.00  0.00 595.00 842.00 
Page 1 CropBox:  87.25 430.36 506.79 728.00 
Page 1 BleedBox: 87.25 430.36 506.79 728.00 
Page 1 TrimBox:  87.25 430.36 506.79 728.00 
Page 1 ArtBox:  87.25 430.36 506.79 728.00 
Page 2 MediaBox:  0.00  0.00 595.00 842.00 
Page 2 CropBox: 148.17 210.76 445.81 630.28 
Page 2 BleedBox: 148.17 210.76 445.81 630.28 
Page 2 TrimBox: 148.17 210.76 445.81 630.28 
Page 2 ArtBox:  148.17 210.76 445.81 630.28 
Page 3 MediaBox:  0.00  0.00 595.00 842.00 
Page 3 CropBox: 148.17 210.76 445.81 630.28 
Page 3 BleedBox: 148.17 210.76 445.81 630.28 
Page 3 TrimBox: 148.17 210.76 445.81 630.28 
Page 3 ArtBox:  148.17 210.76 445.81 630.28 
File size:  6888764 bytes 
Optimized:  yes 
PDF version: 1.4