Я могу создать pdf-файл из docx-файла с помощью docx4j. Но мне нужно преобразовать файл doc в pdf, включая изображения и таблицы. Есть ли способ конвертировать документ в docx в java. или (doc to pdf)?Как преобразовать doc, docx файлы в pdf в java programatically
ответ
Вы можете использовать jWordConvert для этого.
jWordConvert это библиотека Java, которая может читать и оказывать документы Word, изначально конвертировать в PDF, чтобы преобразовать в изображение, или автоматически печатать документы.
Подробности можно найти на следующей ссылке http://www.qoppa.com/wordconvert/
OP сказал, что он хотел использовать docx4j для этого. – hd1
Спасибо, но мне нужен бесплатный источник. – user2211381
списывание выключить POI unit tests, я придумал это, чтобы извлечь текст из текстового документа:
public String getText(String document) {
try
{
ZipInputStream is = new ZipInputStream(new FileInputStream(document));
try
{
is.getNextEntry();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try
{
IOUtils.copy(is, baos);
}
finally
{
baos.close();
}
byte[] byteArray = baos.toByteArray();
ByteArrayInputStream bais = new ByteArrayInputStream(byteArray);
HWPFDocument doc = new HWPFDocument(bais);
extractor = new WordExtractor(doc);
extractor.getText();
}
finally
{
is.close();
}
}
catch (IOException e)
{
throw new RuntimeException(e);
}
}
И затем, списывание от руководство по PDFBox для creation:
PDDocument pdDoc = new PDDocument();
PDPage page = new PDPage();
pdDoc.addPage(page);
PDFont font = PDType1Font.HELVETICA_BOLD;
PDPageContentStream contentStream = new PDPageContentStream(document, page);
contentStream.beginText();
contentStream.setFont(font, 12);
contentStream.moveTextPositionByAmount(100, 700);
contentStream.drawText(getText(documentPath));
contentStream.endText();
contentStream.close();
pdDoc.save("foo.pdf");
pdDoc.close();
Я надеюсь, что вы укажете в правильном направлении, если не будете полностью сортировать.
Спасибо, мне нужен файл doc, содержащий изображения и таблицы для docx. – user2211381
docx4j содержит org.docx4j.convert.in.Doc, который использует POI для чтения .doc, но это доказательство концепции, а не готового к производству кода. Последнее, что я проверил, было ограничено анализом HWPF POI двоичного .doc.
В дополнение к комментарию mqchen вы можете использовать LibreOffice или OpenOffice для преобразования doc в docx. Но если вы собираетесь использовать LibreOffice или OpenOffice, вы также можете использовать его для конвертирования как .doc, так и .docx напрямую в PDF. Google «jodconverter».
Вы можете запустить OpenOffice с терминала (http://dag.wieers.com/home-made/unoconv/), чтобы использовать его для конвертирования файлов. Это может быть не лучшее решение, но это довольно просто. – mqchen