2012-05-31 20 views
4

我在尋找的是一個C#解決方案,用於將商業應用程序中的PDF文檔數據導入到我們的數據庫中。我們的客戶將希望導入任何文檔。通常我會把它寫成完全不可能的,但是他們正在導入的文檔將會以他們自己的佈局佈局。C#解決方案用於渲染PDF和OCR生成的圖像?

我的計劃是將PDF渲染爲靜態圖像,然後允許用戶設置自己的模板,使用OCR在PDF中的預定義像素偏移處基本拉出文本。對於表格,它們定義表格的位置以及列和行大小的一系列更多值。然後,我們可以將該模板應用於該文檔類型。

所以,我真正想要的是兩個庫:一個將PDF轉換爲圖像,另一個轉換爲OCR這些圖像。

要求:

  • 是純C#或有支持的C#包裝到本地DLL。
  • 不支持進程 - 在這種情況下不允許基本上只創建命令行參數並啓動外部可執行文件的包裝。
  • 就FOSS而言,允許我們通過支付許可費來免除正常的FOSS許可要求(即公佈我們的源代碼)。

我們當然不介意爲商業解決方案支付費用,但我們寧可不要爲每個軟件的單獨分配付費。

我知道這是一個相當具體的需求集合 - 可能足以讓一些人認爲這個問題太本地化了,但我希望有人可以建議一種方法和一些對我有幫助的庫,以及其他人在未來。

的東西,我已經研究過的PDF方:

  • iTextSharp的 - 文件是一本書,你必須購買,而不是一個良好的開端。似乎沒有太多有用的文檔將PDF轉換爲公有領域的圖像。許可證是不透明的,看起來我們必須爲每個分配給我們的客戶付費。
  • Docotic.Pdf - 僅供參考,對我們無用。
  • pdftohtml - 再次,不會產生圖像。對於C#端口來說也是一團糟。
  • PdfFileParser - 仍然不是我們所需要的。
  • GhostScript - 幾乎完全是我們想要的,但需要分支到一個程序。

對於OCR方面,我可能會最終使用Tesseract,因爲Apache許可證是寬容的,它有很好的評論。如果有其他選擇,我也會對此感興趣。

+0

使用PDF IFilter,您可以讀取PDF數據並將其放入數據庫中。示例Foxit提供了一個IFilter組件來閱讀PDF文檔。 – robertpnl

+0

'iTextSharp'許可證是Affero GNU Public License。 – Oded

+0

@ Robert-PaulHoving這不是一個真正包含文本的PDF解決方案嗎?這些PDF可能只是一個巨大的掃描圖像的包裝。我還需要能夠抓住特定位置的東西(像素偏移) - IFilter是否支持這一點? – Polynomial

回答

0

我想你可能想給Docotic.Pdf一次機會。

該庫可以提取文本塊,單詞甚至單個字符及其邊界矩形。請查看extraction of words from PDFs的樣本。

另外,Docotic.Pdf可以從PDF創建圖像並在System.Drawing.Graphics上繪製頁面。請看Draw and print Pdf樣品組。

聲明:我是圖書館的開發人員之一。

+0

我沒有意識到Docotic.Pdf有這個功能。現在調查。如果它運作良好,你可能已經讓自己成爲一種銷售! :) – Polynomial

+0

我玩過它,結果看起來很有希望。但是,繪製頁面時創建的輸出圖像分辨率較差,幾乎不可讀。這是一個已知的問題,還是我做錯了什麼? – Polynomial

+0

忽略以前,我只需要放大! – Polynomial

2

我想爲此任務推薦Amyuni PDF Creator .Net

1號方案:
如果你的PDF文件被明確定義(沒有缺少的字體信息等),你可以直接通過該方法GetObjectsInRectangle指定的矩形區域中提取從PDF文本。您還應該使用選項acGetRectObjectsOptimize

在返回它們之前優化文本對象。也就是說,將文本 彼此接近的對象組合成單個文本對象。

第二個場景:
如果有涉及到的圖像,還包含文本,使整個頁面到一個圖像,然後應用OCR可能是一個更好的選擇。您可以通過使用方法ExportToTiffExportToJPegRasterizePageRange與Amyuni PDF Creator .Net進行此操作。

從文檔:

IacDocument.RasterizePageRange方法
的RasterizePageRange方法頁面內容轉換成彩色或灰度圖像。當 歸檔文檔或執行OCR時,有時最好將所有頁面存儲爲圖像而不是複雜文本和圖形 操作。

然後你可以使用我們的OCR add-in與正方體OCR整合,最後我們再次陷入一號方案(GetObjectsInRectangle)。爲了將OCR應用於文件,您可以使用方法OCRPageRange

無效OCRPageRange(INT起始頁,詮釋尾頁,String語言, acOCROptions選項)

關於授權許可,Amyuni PDF造物主的.Net提供了一個(每個應用程序)免版稅許可協議。

平時免責聲明適用

相關問題