2010-11-05 70 views
4

我試圖導入PDF到XeLaTeX使用\includepdf{xyz.pdf}。文件xyz.pdf是由Xerox 5755機器和PDF版本1.3創建的掃描。導入PDF文件到XeLaTeX給「pdf_link_obj():通過無效的對象」錯誤

我得到的錯誤是:

 
    ** 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文件,與那些無明顯關係文件pdftk修復程序和它沒有。總是有一些文件用pdftk標準化,這些文件繼續顯示與非標準化文件完全相同的錯誤。

我試圖尋找解決這一問題,並想出了這個線程:XeLaTeX problems with includegraphics,這表明該問題可以通過使用-output-driver=xdv2pdf來解決,或者通過使用pdf(la)tex。唉,我不能使用PdfLaTeX,因爲我需要XeLaTeX的unicode支持。另外,我正在使用Linux,因此我無法使用特定於Mac的xdv2pdf

對於爲什麼這些PDF未能被XeLaTeX加載以及— —如何「修復」這些PDF,我會非常感激。

親切的問候,

布賴恩

+0

得到了同樣的問題。我嘗試了xelatex -no-pdf latexdoc.tex,然後xdvipdfmx -V 5 latexdoc.xdv使用較新版本的PDF,但它沒有解決問題。 – jeje 2010-12-20 17:18:04

+0

@jeje:你有沒有試過Luatex? – 2010-12-20 22:13:37

回答

2

LuaTEX等程序(繼任者Pdftex提供)還支持Unicode本身。當您嘗試使用lualatex進行編譯時會發生什麼?

0

我在Debian上使用XeLaTeX時遇到了同樣的問題。從LibreOffice導出的PDF已正確導入,但包含由我的打印機創建的PDF作爲掃描失敗。

我可以通過用Ghostscript「重新編譯」PDF來解決這個問題。

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

(來源:https://superuser.com/a/282056,另外還有Ghostscript的命令適用於Windows) 在Linux上,這將有做

導入與XeLaTeX的 「修復」 PDF工作得很好。

0

我正在使用\ includegraphics {},並使用pdf(使用Win2pdf從Excel打印文件創建的)創建了類似的問題。我用Adobe Reader打開PDF並保存了一份副本。然後使用\ includgraphics {}和xelatex編譯器成功合併副本。

相關問題