pdfファイルをxelatexにインポートすると「pdf_link_obj():渡された無効なオブジェクト」エラーが表示されます
質問
PDFを使用してXelatexにインポートしようとしています \includepdf{xyz.pdf}
. 。ファイル xyz.pdf
Xerox 5755マシンとPDFバージョン1.3によって作成されたスキャンです。
私が得るエラーは次のとおりです。
** WARNING ** No valid name object found. ** WARNING ** Could not find a value in dictionary object. ** WARNING ** Didn't find "endobj". ** ERROR ** pdf_link_obj(): passed invalid object.
実行してPDFを正規化しようとしました pdftk xyz.pdf output xyz2.pdf
, 、そしてそれ します 問題を解決しますが、一部のPDFファイルのみで、それらのファイル間に明らかな関係はありません pdftk
修正とそうでないもの。常にいくつかのファイルが正規化されています pdftk
これは、未正常化されたファイルとまったく同じエラーを示し続けます。
この問題の解決策を検索してみて、このスレッドを思いつきました。 xelatexの問題includegraphics, 、これは、問題を使用して解決できることを示唆しています -output-driver=xdv2pdf
, 、または使用して pdf(la)tex
. 。残念ながら、XelatexのUnicodeサポートが必要なため、PDFlatexを使用できません。同様に、私はLinuxを使用しているので、MAC固有のものを使用できません xdv2pdf
.
私は、これらのPDFがXelatexによってロードされていない理由についての考えや入力について非常に義務付けられています。
敬具、
ブライアン
解決
Lutex(PDFTEXの後継者)もUnicodeをネイティブにサポートしています。使用してコンパイルを試してみるとどうなりますか lualatex
?
他のヒント
includegraphics {}を使用していて、PDF(win2pdfを使用してExcelからファイルを印刷することで作成)で同様の問題を攻撃しました。 Adobe ReaderでPDFを開き、コピーを保存しました。その後、コピーは includgraphics {}とxelatexコンパイラを使用して正常に組み込まれました。
DebianでXelatexを使用して同じ問題がありました。 LibreOfficeからエクスポートされたPDFは適切にインポートされましたが、プリンターによって作成されたPDFとしてスキャンが失敗しました。
この問題は、GhostScriptを使用してPDFを「再構成」して修正できます。 Linuxでは、これは次のとおりです。
gs -o repaired.pdf -sDEVICE=pdfwrite dPDFSETTINGS=/prepress corrupted.pdf
(ソース: https://superuser.com/a/282056, 、WindowsのGhostScriptコマンドもあります)
Xelatexを使用して「修理された」PDFをインポートすることは正常に機能しました。