2012-03-30 36 views
16

Năm ngoái, tôi đã thực hiện một ứng dụng trong Java bằng cách sử dụng PDFBox để lấy văn bản thô trong một số tệp PDF và tôi cần phải chuyển ứng dụng đó sang C++ ngay bây giờ.Có thư viện C++ để trích xuất văn bản từ một tệp PDF như PDFBox cho Java không?

Tôi muốn biết phương án C++ tốt nhất để thực hiện những gì tôi cần.

tôi sẽ cung cấp một ví dụ trong trường hợp nó giúp:

Hầu hết các file này sẽ trông như thế này: http://www.jumbala.net/backup/league.pdf

Với PDFBox, sử dụng tập tin đó, mỗi dòng đọc trên trang 2 và hầu hết các trang 3 sẽ xuất tất cả các dữ liệu của một dòng, cách nhau bởi một khoảng trống thay vì giữ nó trong một lưới như bây giờ.

Vì vậy, các ngành có liên quan đầu tiên trong trang 2 sẽ trông như thế này:

FB 847 - Tremblay, Gérard 179,63 56 16167 90 268 s27 p3 669 s14 199 223 193 615 

hoặc một cái gì đó như thế kể từ khi có những thay đổi nhỏ theo thứ tự chúng xuất hiện, nhưng tôi không quan tâm về điều đó càng lâu càng các dòng tương tự xuất ra giống nhau vì tôi chỉ phân tích chúng và đặt các giá trị tôi cần vào các biến khác nhau.

Vì vậy, khi biết tất cả điều đó, có thư viện nào tôi có thể sử dụng trong chương trình C++ để nhận kết quả tương tự không?

Edit: Sau khi xem xét liên kết sacredFaith tại http://www.codeproject.com/Articles/7056/Code-to-extract-plain-text-from-a-PDF-file và cố gắng đó, tôi nhận được một kết quả lạ như ví dụ cho các tập tin ví dụ tôi đã đề cập trước đó:

http://www.jumbala.net/backup/league.pdf.txt

Các bộ phận tôi thực sự cần có những nhân vật lạ ngay từ đầu. Sử dụng phần mềm Adobe Acrobat Reader X và sử dụng Save As ... Text (truy cập), tôi nhận được kết quả sau:

http://www.jumbala.net/backup/league_good.pdf.txt

Đó là khoảng những gì tôi nhận được trong Java sử dụng PDFBox và những gì tôi muốn để có được như đầu ra trong C++.

+0

Có thể điều này có thể giúp http://stackoverflow.com/questions/3784554/creating-a-pdf-reader-in-c – grifos

+0

@grifos Tôi đã xem xét nó và tôi có thể xem chi tiết hơn một chút sau này, nhưng tôi muốn có một thư viện đã được thực hiện kể từ khi tôi không muốn đọc qua toàn bộ tài liệu kỹ thuật PDF. Tuy nhiên, liên kết tuyệt vời mà bạn đã đăng, nó có thể hữu ích sau này, cảm ơn! –

+0

Trong liên kết, họ cũng lấy về một thư viện C++ PoDoFo, cho phép bạn phân tích cú pháp thông tin pdf và trích xuất. – grifos

Trả lời

10

Xpdf là một ứng dụng C++/thư viện bao gồm các công cụ để trích xuất văn bản đơn giản từ một tập tin PDF.

+5

Tôi vừa tải xuống phiên bản biên dịch trước của Xpdf và .exe từ dòng lệnh hoạt động tuyệt vời, tôi nhận được kết quả mong muốn (và thậm chí tốt hơn sử dụng PDFBox nếu tôi sử dụng tùy chọn -layout). Tôi có một câu hỏi, mặc dù ... Có một nơi mà tôi có thể xem làm thế nào để gọi các phương pháp trong mã thay vì sử dụng .exe? Tôi sẽ tự nhìn, nhưng vì bạn có vẻ quen thuộc với thư viện, nó sẽ còn tốt hơn nếu bạn có thể cho tôi biết bắt đầu từ đâu. Cảm ơn rất nhiều! –

+0

Nhóm XPDF cung cấp các phiên bản thương mại của thư viện của họ cùng với sự hỗ trợ tùy chọn tại http://www.glyphandcog.com/XpdfText.html –

2

Tôi chưa bao giờ sử dụng sau, nhưng sau khi một số Googling Tôi thấy điều này:

http://www.codeproject.com/Articles/7056/Code-to-extract-plain-text-from-a-PDF-file

+0

Tôi sẽ xem qua, cảm ơn! Tôi sẽ đánh dấu câu trả lời của bạn là được chấp nhận nếu tôi có thể làm cho nó hoạt động theo cách tôi muốn! –

+0

Thật không may, tôi chỉ thử nó và nó không hoạt động theo cách tôi muốn nó (một số phần của văn bản trích xuất tốt, nhưng hầu hết các tài liệu được làm bằng các biểu tượng lạ) –

+1

Xin lỗi về người đàn ông đó! Có vẻ như bạn đã tìm thấy những gì bạn đang tìm kiếm nhờ có Charles! – sacredfaith

3

Vì đó là những gì bạn đang tìm kiếm: PoDoFo là thư viện C++ để phân tích cú pháp/đọc/sửa đổi hoặc tạo tệp pdf. Thư viện là nền tảng chéo.

Các vấn đề liên quan