我一直在嘗試在PDF中嵌入所有丟失的字體,以避免在因字體替換而打印或渲染時出現「驚喜」。pdf嵌入字體被pdftops忽略
所以我用BergamoStd字體創建了一個包含「Bergamo Std」文本的文檔。 之後,使用PDF Creator生成沒有嵌入字體的pdf:BergamoStd.pdf
使用C#/ iText我將字體嵌入到pdf中。 (BergamoStd-embedded.pdf) 我可以正確渲染嵌入式pdf,不管字體是否存在於系統中。 Adobe閱讀器,qpdfview,evince渲染pdf沒有問題,acrobat閱讀器告訴字體嵌入以及pdffonts。
qpdf沒有報告這個pdf有什麼不好。
如果我使用ghostscript(9.07)從嵌入式pdf生成ps文件,我得到一個可以渲染和打印的ps,並且該字體也嵌入在該ps文件中。 pdf2ps當然會獲得與ghostscript相同的資源。 即使xpdf在Windows中也會生成一個有效的ps文件,並且嵌入字體。
但如果我使用poppler-utils(v0.24)中的pdftops來生成ps文件,我會得到一個沒有嵌入字體的小ps文件。
更進一步;即使系統中存在bergamoStd.ttf文件,pdftops也無法在.ps中嵌入字體,無論輸入pdf是否嵌入字體。
任何人都可以解釋爲什麼pdftops不能嵌入這種字體? 我錯過了什麼?
我的測試文件可用here如果您不想按照之前描述的步驟生成自己的文件。
TIA。
你究竟事後嵌入使用iTextSharp的字體? – mkl
我跟着你提到的相同的itext示例(使用itextSharp),因爲字體不是TrueType,而是使用PdfName.FONTFILE3。所以我需要指定所需的子類型,因爲我遵循[this iText post](http://itext-general.2136553.n4.nabble.com/OTF-and-PFM-fonts-not-embedding-in-existing- PDF-td2167028.html)。通過這種方式,pdf足夠接近正確性,許多工具報告沒有什麼不好,但是pdftops可以,而@VadimR解釋了原因。 – Nomada