3

PDFがある場合、PHP libまたはlinuxコマンドラインツールを使用してPDFのレイアウトモード(または相対的な幅/高さ)を取得するにはどうすればよいですか?

http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp=tcpdfを使用して、この変数を新しいPDFに設定できますが、adobeの既存のPDFには設定できます。

pdfをpsに変換するか、gsを他の方法で使用することを考えました-最初に画像に変換し、その幅と高さを取得するなど。これが最善の方法ですか?

4

3 に答える 3

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);
于 2009-09-24T17:05:43.143 に答える
1

最初のページの結果が他のすべてのページで同じであると常に信頼できるとは限りません。私は、その仮定に基づいてコードを作成したくないほど、実際に十分な混合形式のPDFを見てきました。

各ページ(および埋め込まれた{Trim、Media、Crop、Bleed}ボックスのそれぞれ)のメディアサイズを決定するためのより信頼性の高い方法は、コマンドラインツールpdfinfo.exe(http:// wwwのXPDFツールの一部)です。 .foolabs.com / xpdf / download.html)。「-box」パラメータを使用してツールを実行し、「-f 3」で3ページから開始し、「-l8」で8ページで処理を停止するように指示できます。

出力例:

C:\ downloads> pdfinfo -box -f 1 -l 3 _IXUS_850IS_ADVCUG_EN.pdf
作成者:FrameMaker 6.0
プロデューサー:Acrobat Distiller 5.0.5(Windows)
CreationDate:08/17/06 16:43:06
ModDate:08/22/06 12:20:24
タグ付き:いいえ
ページ数:146
暗号化:いいえ
ページ1サイズ:419.535x297.644ポイント
ページ2サイズ:297.646x419.524ポイント
ページ3サイズ:297.646x419.524ポイント
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
ファイルサイズ:6888764バイト
最適化:はい
PDF版:1.4
于 2010-06-05T18:14:20.037 に答える
0

大きな銃ですが、他の提案はありません。PDFファイルの処理にiTextJavaライブラリを使用しました。

私の知る限り、PDFレイアウトモードやサイズなどはありません。PDFはページのコレクションであり、各ページには、印刷するページのサイズを定義するメディアボックスがあります。ただし、このプロパティは、定義されていない場合、前のページからページに継承できます。詳細については、 PDFリファレンスを参照してください。

于 2009-09-23T18:06:10.900 に答える