将PDF文件导入XeLaTeX会产生“pdf_link_obj():传递无效对象”错误

时间:2010-11-05 20:59:55

标签: pdf latex pdftk xelatex

我正在尝试使用\includepdf{xyz.pdf}将PDF导入XeLaTeX。文件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.

我已经尝试通过运行pdftk xyz.pdf output xyz2.pdf来规范化PDF,并且 解决了问题 - 但仅针对某些PDF文件,这些文件之间没有明显的关系{{1}修复和它没有。总有一些使用pdftk规范化的文件继续显示与非标准化文件完全相同的错误。

我已尝试搜索此问题的解决方案并提出此主题:XeLaTeX problems with includegraphics,这表明问题可以通过使用pdftk解决,或者使用{{ 1}}。唉,我不能使用PdfLaTeX因为我需要XeLaTeX的unicode支持。同样,我正在使用Linux,因此我无法使用特定于Mac的-output-driver=xdv2pdf

对于XeLaTeX未能加载这些PDF的原因,以及 - 更好的 - 如何“修复”这些PDF,我非常感激任何想法和意见。

亲切的问候,

布赖恩

3 个答案:

答案 0 :(得分:2)

Luatex(Pdftex的继任者)本身也支持Unicode。当您尝试使用lualatex进行编译时会发生什么?

答案 1 :(得分:0)

I had the same issue using XeLaTeX on Debian. PDFs exported from LibreOffice were imported properly, while including scans as PDFs which were created by my printer failed.

I could fix this issue by "re-compilig" the PDF with Ghostscript. On Linux this would be done with:

gs -o repaired.pdf -sDEVICE=pdfwrite dPDFSETTINGS=/prepress corrupted.pdf

(source: https://superuser.com/a/282056, there's also the Ghostscript command for Windows)

Importing the "repaired" PDF with XeLaTeX worked fine.

答案 2 :(得分:0)

我正在使用\ includegraphics {}并使用pdf(使用Win2pdf从Excel打印文件创建)遇到了类似的问题。我用Adobe Reader打开了pdf并保存了一份副本。然后使用\ includgraphics {}和xelatex编译器成功合并了该副本。