簡體   English   中英

使用pdfbox分割pdf,但丟失字體

[英]Splitting a pdf with pdfbox, but losing the font

我使用pdfbox API用Java編寫了一些代碼,該API將pdf文檔拆分為單獨的頁面,在頁面中查找特定的字符串,然后從帶有字符串的頁面中創建新的pdf。 我的問題是,保存新頁面時,我丟失了字體。 我只是做了一個快速的Word文檔來測試它,默認字體是calibri,所以當我運行該程序時,我看到一個錯誤框,上面寫着:“無法提取嵌入的字體...”,因此它將字體替換為其他默認字體。

我看過很多示例代碼,這些示例代碼顯示了在輸入要放置在pdf中的文本時如何更改字體,但是沒有什么可以設置pdf的字體。

如果有人熟悉這樣做的方法(或可以找到文檔/示例),我將不勝感激!

編輯:忘記包括一些示例代碼

if (pageContent.indexOf(findThis) >= 0){
                PDPage pageToRip = pages.get(i);
                >>set the font of pageToRip here
                res.importPage(pageToRip); //res is the new document that will be saved
            }

我不知道這是否有幫助,但我認為我會包括在內。

同樣,如果pdf是用calibri編寫並拆分的,則更改內容如下所示:

左:calibri,右:更改為

注意:這可能不是問題,它取決於需要處理的文件中使用的字體。 我嘗試了Calibri以外的其他方法,效果很好。

如何從PDF中提取字體

實際上,即使字體完全嵌入,也無法從PDF中提取字體。 為什么這樣做不可行有兩個原因:

•大多數字體受版權保護,因此使用提取程序是非法的。

•將字體嵌入PDF時,並非所有字體數據都包括在內。 顯然,包括了字體輪廓數據以及字體寬度表。 其他信息(例如有關連字的數據)在PDF中無關緊要,因此這些數據不會包含在PDF中。 我不知道任何字體提取工具,但是如果您遇到一種字體提取工具,上述原因應該清楚表明應避免使用這些實用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM