2013-03-26 2 views
1

Я могу создать pdf-файл из docx-файла с помощью docx4j. Но мне нужно преобразовать файл doc в pdf, включая изображения и таблицы. Есть ли способ конвертировать документ в docx в java. или (doc to pdf)?Как преобразовать doc, docx файлы в pdf в java programatically

+1

Вы можете запустить OpenOffice с терминала (http://dag.wieers.com/home-made/unoconv/), чтобы использовать его для конвертирования файлов. Это может быть не лучшее решение, но это довольно просто. – mqchen

ответ

0

Вы можете использовать jWordConvert для этого.

jWordConvert это библиотека Java, которая может читать и оказывать документы Word, изначально конвертировать в PDF, чтобы преобразовать в изображение, или автоматически печатать документы.

Подробности можно найти на следующей ссылке http://www.qoppa.com/wordconvert/

+0

OP сказал, что он хотел использовать docx4j для этого. – hd1

+0

Спасибо, но мне нужен бесплатный источник. – user2211381

1

списывание выключить 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(); 

Я надеюсь, что вы укажете в правильном направлении, если не будете полностью сортировать.

+1

Спасибо, мне нужен файл doc, содержащий изображения и таблицы для docx. – user2211381

2

docx4j содержит org.docx4j.convert.in.Doc, который использует POI для чтения .doc, но это доказательство концепции, а не готового к производству кода. Последнее, что я проверил, было ограничено анализом HWPF POI двоичного .doc.

В дополнение к комментарию mqchen вы можете использовать LibreOffice или OpenOffice для преобразования doc в docx. Но если вы собираетесь использовать LibreOffice или OpenOffice, вы также можете использовать его для конвертирования как .doc, так и .docx напрямую в PDF. Google «jodconverter».

 Смежные вопросы

  • Нет связанных вопросов^_^