Как я могу преобразовать документ Word PDF?

Как я могу преобразовать документ Word PDF, где документ содержит различные вещи, такие как таблицы. При попытке использовать iText, оригинал документа кажется другим преобразованному PDF. Существует ли API с открытым исходным кодом / библиотека, вместо того, чтобы обратиться к исполняемому файлу, который я могу использовать?

45
задан Rob 2 May 2019 в 07:18
поделиться

5 ответов

Это довольно сложная задача, еще сложнее, если вы хотите идеальных результатов (невозможно без использования Word), поэтому количество API-интерфейсов, которые просто делают все это за вас на чистой Java и имеют открытый исходный код, я считаю равным нулю ( Обновление: я ошибаюсь, см. Ниже ).

Ваши основные варианты следующие:

  1. Использование JNI / веб-службы C # и т. Д. Скрипта MS Office (единственный вариант для 100% идеальных результатов)
  2. Использование доступных API-скриптов Open Office (90 +% идеально)
  3. Используйте Apache POI и iText (очень большая работа, никогда не будет идеальной).

Обновление - 11 февраля 2016 г. Вот сокращенная копия моего сообщения в блоге на эту тему, в котором описаны существующие продукты, поддерживающие преобразование Word в PDF на Java.

Преобразование документов Microsoft Office (Word, Excel) в PDF-файлы на Java

Три известных мне продукта могут отображать документы Office:

yeokm1 / docs-to-pdf-converter Поддерживается нерегулярно, чистая Java , Открытый исходный код Связывает вместе несколько библиотек для выполнения преобразования.

xdocreport Активная разработка, чистая Java, открытый исходный код Это Java API для объединения XML-документа, созданного с помощью MS Office (docx) или OpenOffice (odt), LibreOffice (odt), с моделью Java для создания отчета и его преобразования, если вам нужно, в другой формат (PDF, XHTML ...).

Snowbound Imaging SDK Закрытый исходный код, чистая Java Snowbound представляет собой 100% Java-решение и стоит более 2500 долларов. Он содержит образцы, описывающие, как конвертировать документы в пробной загрузке.

OpenOffice API Открытый исходный код, не чистая Java - требуется установленный Open Office OpenOffice - это собственный пакет Office, который поддерживает Java API. Это поддерживает чтение документов Office и написание документов PDF. SDK содержит пример преобразования документа (examples / java / DocumentHandling / DocumentConverter.java). Чтобы писать PDF-файлы, вам нужно передать писатель "writer_pdf_Export", а не "MS Word 97". Или вы можете использовать API-оболочку JODConverter .

JDocToPdf - Мертвые по состоянию на 11 февраля 2016 г. Использует Apache POI для чтения документа Word и iText для записи PDF. Полностью бесплатный, 100% Java, но имеет некоторые ограничения .

46
ответ дан 26 November 2019 в 21:23
поделиться

Я согласен с теми, кто перечисляет OpenOffice как средство импорта/экспорта документов word / pdf с Java API, которое также работает на разных платформах. Фильтры импорта/экспорта OpenOffice довольно мощные и сохраняют большинство форматирования при преобразовании в различные форматы, включая PDF. Docmosis и JODReports добавляют ценность, чтобы сделать жизнь проще, чем изучение API OpenOffice напрямую, которое может быть сложным из-за стиля UNO api и ошибок, связанных с крахом.

1
ответ дан 26 November 2019 в 21:23
поделиться

Я не пробовал использовать его для MS Word, но у меня был хороший успех при чтении документов MS Excel с использованием Apache POI - http://poi.apache.org/

0
ответ дан 26 November 2019 в 21:23
поделиться

Изучите сценарий OpenOffice.org, который сделает эту работу за вас.

0
ответ дан 26 November 2019 в 21:23
поделиться

Для этой цели можно использовать JODConverter. Его можно использовать для преобразования документов между разными офисными форматами. такие как:

  1. Microsoft Office в OpenDocument и наоборот
  2. Любой формат в PDF
  3. И поддерживает множество других преобразований
  4. Он также может конвертировать документы MS office 2007 в PDF почти во все форматы

Подробнее об этом можно прочитать здесь: http://www.artofsolving.com/opensource/jodconverter

8
ответ дан 26 November 2019 в 21:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: