我已經成功地使用iText庫生成PDF,但我遇到了一個奇怪的問題。當我在我自己的系統上下載PDF文件時,它看起來不錯;我會把它描述爲規則和正確的。但是,當我通過電子郵件將PDF文件發送給我的朋友時,它具有不同的佈局,我將其描述爲不規則。當我在網上掃描PDF時(沒有下載),它也看起來不規則。所以我想知道:我做錯了什麼,如果是的話,我該如何解決這個問題?使用iText創建的PDF在不同的系統上看起來不同
-2
A
回答
0
假設您正在創建一個包含特殊字符的PDF。假設您正在使用您在系統上找到的特定字體混合英文和中文文本。
假設您沒有嵌入該字體的子集。這意味着PDF包含您在文檔中使用的特殊字符的Unicode值,但PDF不知道如何顯示相應的字形。
現在,當你在你自己的機器上打開這個PDF文件時,它看起來很完美。爲什麼?由於您的PDF爲Unicode值和,您需要在您自己的系統上需要的字體。
然而,當你的朋友收到的文件,並打開PDF,他們有Unicode字符,但不是字體。他們的PDF閱讀器將使用與您想到的不同的字體。因此,內容可能看起來不同(我使用的詞是混雜)。將PDF放在某些在線存儲上然後在瀏覽器中查看PDF時也是如此:如果該在線存儲將PDF作爲圖像提供,則該圖像中的文本看起來會混亂,因爲在線服務沒有訪問您的系統上的字體。
如何解決這個問題? 嵌入(字體的一個子集)!
我不知道你正在使用的iText的版本,你不同意任何代碼,但是當你創建iText的5 BaseFont
或iText的7 FontProgram
/PdfFont
,您可以使用參數來指示字體是否應嵌入文檔中。
不用擔心iText會嵌入完整字體,以防萬一您有巨大的中文字體。在這種情況下,iText將會對字體進行子集化,並只添加文檔中使用的字形。
相關問題
- 1. 網頁在不同的操作系統上看起來不同?
- 2. 相同的類在不同的頁面上看起來不同
- 3. 「新聞系統」在不同的系統上的行爲不同
- 4. 字體看起來不同,在相同的系統,相同的瀏覽器,不同的分辨率
- 5. Nav在不同的頁面上看起來不同,爲什麼?
- 6. 不同系統上的SWT
- 7. 在不同的文件系統上使用相同的文件
- 8. 相同的佈局在三星Galaxy Tab上看起來不同
- 9. DLL依賴關係 - 在不同的系統上有所不同?
- 10. iText的TextRenderInfo不同的行爲不同的PDF
- 11. 徽標看起來不同後上傳
- 12. 使用iText創建PDF
- 13. 使用curses庫爲不同的操作系統創建GUI
- 14. IONIC字體大小看起來不同在不同的設備
- 15. 如何使用不同的佈局不同tabhosts在android系統
- 16. 在不同系統上的css3箭頭
- 17. 創建從不同進口同一類的兩個對象使他們看起來不同類別
- 18. 相同的編譯器在不同的操作系統上創建不同的行爲
- 19. 半透明貼圖在不同的Android手機上看起來不同
- 20. 爲什麼dp,px,mm在不同的Android手機上看起來不同
- 21. Tumblr主題在不同的屏幕分辨率上看起來不同
- 22. Groovy/POI在不同系統上返回不同的迭代器
- 23. Android:AlertDialog在片段中看起來不同
- 24. 使用不同名稱的系統類?
- 25. 使用IPC爲不同的系統
- 26. QString在相同的編譯(但不同的系統)上返回不同的sting
- 27. 的Android iText的PDF創建
- 28. 使用iText合併不同寬度的pdf文檔
- 29. 如何在yii中創建兩個不同的登錄系統
- 30. 使用不帶路徑的itext創建PDF
它是如何不規則?除非您提供更多細節,否則我們無法幫助您。 – sorifiend
第一次猜測:你沒有嵌入任何字體。 PDF代表* Portable *文檔格式,這意味着您查看PDF的位置(或在哪個操作系統上)無關緊要;它應該總是看起來一樣。主要的例外是使用非嵌入式字體。創建您的PDF作爲PDF/A文件來解決這個問題。第二個猜測:你的朋友使用一個破碎的PDF查看器;許多在網上找到的「PDF掃描儀」並不真正起作用。第三個猜測:你正在使用一個過時的iText版本。 –
*「我做錯了什麼事情」* - 很有可能。 *「,如果是這樣,我該如何解決這個問題?」* - 您應該先提供一些信息,說明您實際做了什麼,即將關鍵代碼添加到問題中並共享樣本結果PDF。 – mkl