2012-11-21 37 views
0

我正在研究用於編輯現有PDF文件中文本樣式的C#控制檯應用程序,例如將文本樣式更改爲粗體或斜體或添加font-family,更改文本顏色...在pdf文檔中編輯文本樣式

我用iTextSharp的庫,但遇到了以下問題:

  1. PDF文檔中的薄空間被修剪。
  2. 當從現有文檔中提取文本時,文本樣式完全被忽略(我的意思是字體,粗體,斜體......)
  3. 從PDF文件提取內容時,不會讀取特殊格式的數學,圖像和文本

是否有任何其他庫或任何建議如上所述編輯PDF文件? PDF文檔中

+0

這將是很難提取文本與文本格式,至於第一個任務和第三個任務,我可以建議你一個圖書館Spire.PDF爲.NET,它可以閱讀PDF圖像和文本甚至特殊文本,如草藥這是從右到左寫的。然而,據我所知,它不支持提取字體,粗體等文字。 – 2012-11-22 06:53:24

+0

似乎是一個有趣的工具,雖然它不是一個nopen源工具,我會試一試謝謝@michelle –

回答

1

你所遇到的問題,有些話......

1薄空間被修剪。

薄空間一般是通過水平座標移位產生的。不幸的是,同樣的技術用於字距調整,即使相鄰字符看起來更好。如果在解析頁面時遇到這樣的水平轉換,解析器必須啓發式地決定並且有時是錯誤的。如果您的文件存在,這種啓發式方法似乎失敗。

2當提取現有文檔的文本,該文本樣式完全忽略了(我的意思是字體,加粗,italic..etc)

就是說的RenderListener您使用的問題。與iText(夏普)捆綁在一起的聽衆目前專注於文本。他們可以很容易地擴展到也傳輸字體信息。

但是,您應該知道,PDF不知道粗體,斜體等。如果文檔質量好,xxx和xxx粗體是單個字體,並且在質量較差的文檔中,窮人可以通過以微小的偏移量打印兩次字形來生成粗體,或者可以通過適當的傾斜轉換矩陣生成傾斜的外觀。

3數學,圖像和特殊格式文本提取PDF文件

內容時,不看如果你有樣品爲此,請在這裏或在itext-questions mailing list提供給他們。可以肯定的是,您已經實現了在測試時監聽圖像事件的RenderListener

因此,1是一個普遍問題,可能有更好的算法,但無法以100%安全的方式解決。 2僅需要您基於現有文本中的一個實現適當的RenderListener;實際上在爲iText創建一個RichTextExtractionStrategy時有一些討論。但是,3必須更強烈地檢查。

從本質上講,iText(夏普)不是唯一具有文本解析能力的PDF庫,它們每個都有自己的優勢。它確實提供了一個框架,可以用來從文檔文本樣式中檢索儘可能多的信息。

我正在它的設計編輯 在現有的PDF文件中的文本樣式C#控制檯應用程序,例如更改文本 風格是在粗體或斜體或加FONT-FAMILY,更改文本 顏色等等。

考慮到同一字體系列中的不同字體或不同樣式可能具有明顯不同的寬度,這是一個相當大的成就。這可能會導致醜陋的外觀或需要重新排版文本,這是PDF不太適合的。

+0

這真的很有用@mkl ,非常感謝你..我發現了一個提取策略的實現,可以幫助我解決樣式問題。我會盡快向你發送我正在處理的樣本到itextsharp郵件列表,再次感謝 –