2010-06-11 45 views
35

Cách chuyển đổi tài liệu sang pdf bằng cách sử dụng java api. nơi tài liệu chứa các định dạng khác nhau, chẳng hạn như các bảng trong từ ms. khi chuyển đổi sang pdf bằng iText. nơi tài liệu thực tế trông khác với pdf được chuyển đổi. xin vui lòng cung cấp bất kỳ api không phải là một exe được cài đặt để chuyển đổi. phải là một mã nguồn mởCách chuyển đổi MS doc sang pdf

Trả lời

38

Đây là một nhiệm vụ khá khó khăn, bao giờ khó khăn hơn nếu bạn muốn kết quả hoàn hảo (không thể không sử dụng Word) như số lượng API chỉ làm tất cả cho bạn trong Java thuần túy và là nguồn mở là số không tôi tin (Cập nhật: Tôi sai, xem bên dưới).

tùy chọn cơ bản của bạn như sau:

  1. Sử dụng JNI/một dịch vụ web C#/etc kịch bản MS Office (chỉ lựa chọn cho kết quả 100% hoàn hảo)
  2. Sử dụng sẵn API Office Open kịch bản (90 +% hoàn hảo)
  3. Sử dụng Apache POI & iText (công việc rất lớn, sẽ không bao giờ hoàn hảo).

Update - 2016/02/11 Đây là một cắt giảm bản sao của bài viết trên blog của tôi về chủ đề này trong đó vạch ra các sản phẩm hiện có hỗ trợ Word-to-PDF trong Java.

Converting Microsoft Office (Word, Excel) documents to PDFs in Java

Ba sản phẩm mà tôi biết có thể làm cho tài liệu Office:

yeokm1/docs-to-pdf-converter đột xuất duy trì, tinh khiết Java, mã nguồn mở Ties cùng một số thư viện để thực hiện việc chuyển đổi.

xdocreport Tích cực phát triển, tinh khiết Java, mã nguồn mở Đó là Java API để kết hợp tài liệu XML được tạo ra với MS Office (docx) hoặc OpenOffice (odt), LibreOffice (odt) với một mô hình Java để tạo báo cáo và chuyển đổi nếu bạn cần định dạng khác (PDF, XHTML ...).

Snowbound Imaging SDK Closed Source, Pure Java vì tuyết dường như là một giải pháp Java 100% và chi phí hơn $ 2,500. Nó chứa các mẫu mô tả cách chuyển đổi tài liệu trong phần đánh giá tải xuống.

OpenOffice API mã nguồn mở, không tinh khiết Java - Yêu cầu Open Office được cài đặt OpenOffice là một bộ Văn phòng bản địa mà hỗ trợ một API Java. Điều này hỗ trợ đọc tài liệu Office và ghi tài liệu PDF. SDK chứa một ví dụ trong chuyển đổi tài liệu (ví dụ/java/DocumentHandling/DocumentConverter.java). Để viết các tệp PDF, bạn cần phải chuyển "writer_pdf_Export" writer chứ không phải là "MS Word 97". Hoặc bạn có thể sử dụng trình bao bọc API JODConverter.

JDocToPdf - Đã chết vào năm 2016-02-11 Sử dụng Apache POI để đọc tài liệu Word và iText để ghi tệp PDF. Hoàn toàn miễn phí, 100% Java nhưng có một số limitations.

+0

mlk, bạn có thể giải thích thêm về tùy chọn số 1 không? Tôi muốn gọi API do MS tạo cho tình huống của tôi, ngay cả khi nó liên quan đến việc sử dụng JNI, để có được khả năng hiển thị PDF tốt nhất có thể. – kwikness

+1

Tôi đã xem xét điều này một chút (http://www.suodenjoki.dk/us/productions/articles/word2pdf.htm). Tôi KHÔNG đề nghị điều này, Microsoft cũng đồng ý với điều này.Word không được thiết kế để tự động hóa. –

+1

http://support.microsoft.com/kb/257757/en-us Nếu tôi phải làm điều này, tôi sẽ sử dụng Open Office. –

0

tôi đã không cố gắng sử dụng nó cho MS Word, nhưng tôi đã thành công tốt đọc tài liệu MS Excel sử dụng Apache POI - http://poi.apache.org/

0

Nhìn vào kịch bản OpenOffice.org để thực hiện công việc cho bạn.

0

Tôi đồng ý với áp phích liệt kê OpenOffice là cơ sở xuất/nhập có độ trung thực cao của tài liệu từ/pdf với API Java và nó cũng hoạt động trên nhiều nền tảng. Các bộ lọc xuất/nhập OpenOffice khá mạnh mẽ và bảo toàn hầu hết định dạng trong quá trình chuyển đổi sang các định dạng khác nhau bao gồm PDF. DocmosisJODReports giá trị gia tăng để giúp cuộc sống dễ dàng hơn việc tìm hiểu trực tiếp API OpenOffice có thể gây khó khăn do phong cách của UNO api và các lỗi liên quan đến sự cố.

7

Bạn có thể sử dụng JODConverter cho mục đích này. Nó có thể được sử dụng để chuyển đổi tài liệu giữa các định dạng văn phòng khác nhau. chẳng hạn như:

  1. Microsoft Office để OpenDocument, và ngược lại
  2. Bất kỳ định dạng sang PDF
  3. Và hỗ trợ nhiều chuyển đổi hơn cũng
  4. Nó cũng có thể chuyển đổi MS Office 2007 văn bản sang PDF cũng như với hầu như tất cả các định dạng

Thông tin chi tiết về nó có thể được tìm thấy ở đây: http://www.artofsolving.com/opensource/jodconverter

0

unoconv, đó là công cụ python hoạt động trong UNIX. Trong khi tôi sử dụng Java để gọi trình bao trong UNIX, nó hoạt động hoàn hảo cho tôi. Mã nguồn của tôi: UnoconvTool.java. Cả JODConverter và unoconv được cho là sử dụng văn phòng mở/văn phòng miễn phí.

docx4j/docxreport, POI, PDFBox là tốt nhưng chúng thiếu một số định dạng trong chuyển đổi.

3

Check-out docs-to-pdf-converter on github. Một giải pháp gọn nhẹ được thiết kế đặc biệt để chuyển đổi tài liệu sang pdf.

Tại sao?

Tôi muốn một chương trình đơn giản có thể chuyển đổi tài liệu Microsoft Office thành PDF nhưng không có các phụ thuộc như LibreOffice hoặc các giải pháp độc quyền đắt tiền . Xem cách mã và thư viện chuyển đổi mỗi định dạng riêng lẻ nằm rải rác trên web, tôi quyết định kết hợp tất cả các giải pháp đó vào một chương trình duy nhất. Trên đường đi, tôi cũng quyết định thêm hỗ trợ ODT vì tôi cũng đã gặp phải mã này.

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