2009-12-14 37 views
13

Tôi đang cố chuyển đổi PDF sang HTML theo chương trình. Cho đến nay tôi đã sử dụng pdftohtml nhưng người dùng của chúng tôi không hài lòng với kết quả.Trình chuyển đổi PDF sang HTML tốt cho Ruby on Rails là gì?

Đây là những gì tôi cần:

  • Tôi đang sử dụng Ruby on Rails, nhưng bất kỳ công cụ làm việc trên Unix sẽ làm việc như tôi có thể gọi nó từ dòng lệnh. Nhưng tất nhiên là một gem hay plugin đẹp sẽ là hoàn hảo.

  • Tôi muốn nó được mã nguồn mở

  • Nó cần phải có khả năng xử lý hình ảnh

  • Nó sẽ được tốt đẹp nếu có một tùy chọn để loại bỏ các hình ảnh nếu cần

  • Cần phải ổn định

  • Cần phải trả về html với bố cục gần với bản gốc pdf (Tôi đã thử pdftohtml và kết quả không phải là tốt trong rất nhiều trường hợp)

+0

Có lý do cụ thể nào bạn cần đầu ra html không, chứ không phải cái gì khác? Là một trong những câu trả lời cho biết, pdf và html là các mô hình tài liệu khác nhau đáng kể. Nếu chúng ta biết yêu cầu cơ bản, chúng ta có thể đề xuất các lựa chọn thay thế tốt hơn ... – Stobor

+0

Logic hiện tại là lấy pdf và hiển thị nó dưới dạng HTML. Có một số giải pháp đã được phát triển trong công ty của tôi, nhưng kết quả cuối cùng không tốt đến mức họ muốn cải thiện nó – marcgg

Trả lời

10

Dưới đây là một vài chi tiết thay thế cho pdftohtml/xpdf:

  • Adobe có một PDF trực tuyến miễn phí sang HTML hoặc văn bản conversion service. Có thể mất một hoặc hai phút để lấy lại tài liệu, nhưng tôi nghi ngờ rằng tùy chọn này sẽ cho bạn kết quả tốt nhất.
  • Có một viên đá quý ruby ​​pdf-reader sẽ cho phép bạn truy cập vào phần bên trong của tệp PDF. Điều này sẽ liên quan đến một số phát triển/mở rộng về phía bạn, nhưng bạn có thể sử dụng nó để phân tích cú pháp tệp PDF và tạo HTML đẹp mắt. Điều này có thể dễ dàng hơn nếu bạn biết loại tệp nào mà người dùng của bạn đang chuyển đổi trước đó (chẳng hạn như nếu họ đang làm việc với biểu mẫu được chuẩn hóa).
  • Bạn có thể có nhiều tùy chọn hơn nếu trước tiên bạn sử dụng ghostscript (gem được tìm thấy ở đây) để chuyển đổi PDF sang định dạng khác. Đá quý có thể tạo ra hình ảnh (png, jpg, vv) từ tệp PDF nhưng bạn có thể có may mắn chuyển đổi nó thành tệp PostScript vì dường như có một bộ chuyển đổi "PostScript-to- [insert format here]".
+1

Về các tài liệu PDF không chuyển đổi thành HTML tốt, tôi khuyên bạn nên thử nghiệm một vài tài liệu với dịch vụ chuyển đổi trực tuyến của Adobe. Nếu họ vẫn đi ra ngang tầm, tôi sẽ không dành quá nhiều thời gian nghiên cứu các lựa chọn thay thế vì tôi sẽ tưởng tượng rằng các bộ chuyển đổi của Adobe sẽ là tốt nhất trên mạng. – bta

3

Nếu vẫn thất bại, bạn có thể biến mỗi trang thành một hình ảnh (sử dụng Imagemagick hoặc tương tự) và hiển thị các hình ảnh, a la http://books.google.com hoặc http://safari.oreilly.com. Nó sẽ là một con heo băng thông, nhưng bạn sẽ nhận được sự trung thực với bản gốc.

+0

Đó là một giải pháp thú vị, tôi sẽ xem xét – marcgg

+0

Đây là cách tôi làm khi tôi cần chuyển đổi PDF độc đáo với các định dạng khác. – wesgarrison

+0

Giải pháp này không phải là rất tốt nếu bạn cần phải phân tích cú pháp văn bản từ tệp PDF. – lacostenycoder

0

Hãy thử sử dụng poppler hoặc xpdf. Nhưng nó cần một số phép thuật và ràng buộc.

+0

Ý của bạn là gì? – marcgg

+0

poppler có thể hiển thị pdf cho một thứ khác. một trong những mục tiêu có thể được chấp nhận cho Bạn. –

2

Tôi đã dành một thời gian làm việc trong một dự án nghiên cứu liên quan đến việc sử dụng tệp PDF làm đầu vào. Những gì bạn đang yêu cầu chỉ là một nhiệm vụ thực sự khó khăn, và không có phần mềm nào sẽ làm điều đó một cách hoàn hảo. Trong khi HTML có một số cấu trúc, như <p>, PDF hoàn toàn là thuyết trình. Một tài liệu HTML sẽ nói, "đây là một đoạn văn. Đây là một hình ảnh." và bản trình bày được diễn giải từ đó. Một tài liệu PDF về cơ bản sẽ nói: "nhân vật này nên được trả lại ở vị trí X, Y. Chracter tiếp theo sẽ được trả lại ở vị trí ..." vv Vì vậy, ngay cả việc xây dựng các đoạn trong số đó có thể khó.

Tôi đã làm việc trong Java, vì vậy tôi không nghĩ rằng chương trình cụ thể mà tôi đã sử dụng sẽ được sử dụng nhiều cho bạn.Ngoài ra, tôi nhớ lại rằng một số trình tạo PDF ghép một hình ảnh thành các hình ảnh nhỏ hơn và hiển thị chúng cạnh nhau - đó là một nỗi đau lớn.

Có cách nào có thể để bạn có thể làm việc với định dạng khác hoặc giảm kỳ vọng của mình không? Bạn có thể làm điều hình ảnh mà Wayne gợi ý, nhưng sau đó nó không phải là thực sự HTML (và nó không thể truy cập được - đó có phải là mối quan tâm của bạn không?). Đó có thể chỉ là thứ bạn sống cùng.

0

bạn có thể thử http://www.pdf-to-html-word.com/pdf-to-html hoạt động thực sự tốt. Tôi đã trả tiền cho nó sau khi kiểm tra chức năng của nó. Bạn có một chuyến đi miễn phí để kiểm tra nó. Hoặc sử dụng Acrobat Pro và Lưu dưới dạng HTML với CSS. Điều đó cũng hoạt động. Nhưng đó là một nỗi đau trong một ** để làm với một loạt các tập tin.

0

Sau khi sử dụng pdftohtml trong một thời gian và trở thành không hài lòng với kết quả hiển thị của phiên bản html, Tôi đang xem xét sử dụng một trong hai google API ứng dụng tài liệu hoặc API Scribd (yêu thích của tôi ngay bây giờ)

http://www.scribd.com/developers/api

cuối cùng, tôi có lẽ sẽ sử dụng pdftohtml chỉ đơn giản là trích xuất nội dung văn bản của file pdf và api Scribd để hiển thị các tập tin gốc trên trang người dùng

0

tôi vừa mới phát hành một ruby gem để chuyển đổi tài liệu với mở văn phòng không đầu (thông qua poyconverter hoặc jodconverter). nó cũng tích hợp vài librairies khác (pdftools và netpbm) để trích xuất các hình ảnh văn bản dans từ các tệp pdf.

Bạn có thể tìm thấy nó ở đây https://github.com/itkin/proselytism.git

Hãy để thêm bộ chuyển đổi của riêng bạn và báo cáo cho tôi một số vấn đề

5

Đối với chuyển đổi PDF sang HTML, pdf2htmlEX có vẻ như một công cụ khá tốt (xem xét tất cả các ví dụ/mẫu):

https://github.com/coolwanglu/pdf2htmlEX

+1

Trong thử nghiệm giới hạn của tôi, nó tạo ra kết quả đáng kinh ngạc. – jshkol

+0

Đây là công cụ gr8, nhưng làm cách nào để hợp nhất với đường ray? – BMW

+0

@BMW là một nơi tốt để bắt đầu là wiki dự án: https://github.com/coolwanglu/pdf2htmlEX/wiki/Quick-Start. Tôi nghĩ bạn có thể dễ dàng cắm nó vào ứng dụng đường ray bằng cách sử dụng lệnh 'system'. –

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