Мне нужно преобразовать docx в pdf с помощью java. Я пробовал использовать docx4j, но, хотя это довольно хорошо, docx у меня намного сложнее (форматирование), чем то, что он может обрабатывать. Я решил посмотреть, может ли принтер PDF работать с ними, и хотя они не идеальны, они приемлемы. Теперь я столкнулся с проблемой автоматизации с помощью JAVA, и единственным решением, которое я нашел, был COM с MS Word (я попытался использовать Open Office API, он также не смог обработать форматирование docx).Преобразование Docx в PDF в java
Я нашел несколько сопоставлений COM для java, таких как jacob, и попробовал их, но я не могу найти соответствующие COM-команды для Word для печати. Код, я использую (укладываю несколько штук, которые я нашел через Интернет вместе) составляет:
String sInputDoc = "fi.docx";
boolean tVisible = false;
ActiveXComponent oWord = new ActiveXComponent("Word.Application");
oWord.setProperty("Visible", new Variant(tVisible));
Object oDocuments = oWord.getProperty("Documents").toDispatch();
Object oDocument = Dispatch.call((Dispatch)oDocuments, "Open", sInputDoc).toDispatch();
Dispatch oSelection = oWord.getProperty("Selection").toDispatch();
Dispatch oFind = oWord.call(oSelection, "Find").toDispatch();
Dispatch oWordBasic = (Dispatch) Dispatch.call(oWord, "WordBasic").getDispatch();
Dispatch.call(oWordBasic, "FilePrint");
Этот код, однако, только заставляет программу, чтобы попытаться сохранить файл, а не печатать (не уверен, почему).
Теперь могут возникнуть вопросы: как отправить операцию печати в Word? (Я сделал свое исследование, но большую часть времени комментарии в основном открытые слова и печать в формате pdf, но никогда не КАК на самом деле печатать) Если есть лучшие варианты, что это такое? Я рад работать со всем, что имеет бесплатную лицензию.
Заранее спасибо.
Обновление относительно docx4j: в наши дни в дополнение к конвергенции на основе открытого кода XSL FO с открытым исходным кодом существует отличная коммерческая альтернатива, отличная от FO. См. Далее http://www.docx4java.org/forums/pdf-output-f27/higher-fidelity-pdf-output-now-available-t2117.html – JasonPlutext