FPDF / FPDIをするか、1.4よりも大きいPDFファイルの解析をサポートするZend_Pdfは方法はありますか?

StackOverflow https://stackoverflow.com/questions/660425

質問

私はFPDIを使ってFPDFで作成したPDFに(そうでない場合は作成した)既存のPDFを追加しようとしています。ほとんどのPDFファイルを見つける動作しているようですが、私は次のエラーを取得する:

FPDF error: Unable to find xref table.

いくつかのテストの後、私は私が1.4以下(アクロバットV5以下)のPDF版を使用している場合、動作するように思われることを考え出しました。ファイルを見てみると、それは異なるため、PDF形式のようです。

これに対する回避策や解決策はありますか?私はおそらく10個の000+のユーザーによってアップロードされたPDFファイル、新しい作業の一部、それらのいくつかではないがあります。それはFPDIは、だけではなく、何らかのエラーの原因となったり、

falseを返すので死ぬことも迷惑なんです

私は今考えることができる唯一の解決策は、バージョンを確認してのみ動作するバージョンの上というものを追加するPDFファイルの最初の行を解析することです。

編集

Zend Frameworkに付属していますデモファイルを使用して、私はまた、Zend_Pdfはでこれを試してみました、それは次の結果を持っていました

Fatal error: Uncaught exception 'Zend_Pdf_Exception' with message 'Cross-reference streams are not supported yet.' in /Volumes/Documents/temp/ZendFramework-1.7.7/library/Zend/Pdf/Parser.php:331
Stack trace:
#0 /Volumes/Documents/temp/ZendFramework-1.7.7/library/Zend/Pdf/Parser.php(455): Zend_Pdf_Parser->_loadXRefTable('116')
#1 /Volumes/Documents/temp/ZendFramework-1.7.7/library/Zend/Pdf.php(297): Zend_Pdf_Parser->__construct('/Volumes/Docume...', Object(Zend_Pdf_ElementFactory_Proxy), true)
#2 /Volumes/Documents/temp/ZendFramework-1.7.7/library/Zend/Pdf.php(250): Zend_Pdf->__construct('/Volumes/Docume...', NULL, true)
#3 /Volumes/Documents/temp/ZendFramework-1.7.7/demos/Zend/Pdf/demo.php(37): Zend_Pdf::load('/Volumes/Docume...')
#4 {main}
  thrown in /Volumes/Documents/temp/ZendFramework-1.7.7/library/Zend/Pdf/Parser.php on line 331

それは不可能1.4よりも大きいPDFファイルを解析しますか?

役に立ちましたか?

解決 4

私は FPDIのPDFパーサーの商業バージョンを使用してことがわかりましたのは、私の問題を解決しました。 I(PDFが破損したかに行く奇妙な何かを持っていない限り)今年のためにそれを使用してきた、それはパースをcouln't任意のPDFファイルがありませんでした。

他のヒント

あなたはそれがバージョン1.7 PDFファイルを生成し、(FPDIで)読んでます、TCPDFでFPDIを使用することができます。

を参照してください。 TCPDF - 。PDF のPHPクラス

<時間>

編集

私は最近FPDIとTCPDFでさまざまなバージョンおよびPDFの形式を使用しての問題に挑戦してきた、と1.4がヒットし、ミスしている上に、私はそのPDFのバージョンを確認することができ、興味深いのは、私が1.7の作業の多くを持っているということですPDFファイル、および1.5および1.6におよそ50/50で動作します。

私は、コマンドラインからexecできるGhostscriptを使用してバージョン1.4にすべての非実行可能なPDFファイルを変換することで問題を回避働きました。 GhostScriptのps2pdf14フォルダからlib使用します。

/:

私は、プロジェクトのペア( TCPDIする / <のhref = "HTTPSをリリースしましたV1.4上記PDFファイルをインポートするTCPDF 6(及びFPDF_TPLで動作FPDIとtcpdf_parser、それぞれ)に基づく/github.com/pauln/tcpdi_parser」REL = "nofollowを"> tcpdi_parser の、)(1.6まで試験これまでのところ、私は私がそれをテストするために1.7 PFDを見つけたら、それは1.7で動作することを確認してくださいよ!)任意の商用アドオンを必要とせずに。基本的なインストールと使用説明書は、 TCPDI README の中に見つけることができます。それを試してみると、Githubのトラッカーを経由して任意の問題を報告すること自由に感じなさいます。

Setasignは商用アドオンとしてPDF解析を提供していますFPDIにを。私たちは、何のトラブルがこれまでに新しいパーサーを使用して、バージョン1.7までのPDFファイルを解析んでした。

はsymfonyのために、私は> 1.4を変換するには、このLIBを使用しました https://packagist.org/packages/xthiago/pdf-version-converterする

あなたはAcrobatのPDFライターを持っている場合、あなたはPDF 1.4に互換性があるように/ savingAsを印刷しているPDFを作成するジョブ設定を操作することができます。私はこの製品を必要とする小さな理由で、1.4よりも後のバージョンに互換性のある商用版を入手するために100ユーロの価値は思えません。

私のチームは、コードの一部を削除していました。我々は、PDFに透かしを追加することからコードを停止しました。これは私たちのために、問題を解決しました。 PDF> = 1.5

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top