2016-11-30 9 views
2

Я ищу лучший способ конвертировать docx файл pdf в Java, это то, что я пробовал:Как преобразовать .docx файл в формате .pdf в Java

File wordFile = new File("wordFile.docx"), target = new File("target.pdf"); 
IConverter converter; 
Future<Boolean> conversion = converter.convert(wordFile) 
.as(DocumentType.MS_WORD) 
.to(target) 
.as(DocumentType.PDF) 
.prioritizeWith(1000) // optional 
.schedule(); 

Проблема заключается в том, что Я не могу найти класс IConverter в своей программе ...

ответ

3

Вы, очевидно, можете использовать documents4j, поэтому я предлагаю вам внимательно прочитать документацию. Кажется, вы не включили documents4j библиотеки в свой проект (вам нужна хотя бы зависимость documents4j-api, но я предлагаю вам взглянуть на documents4j-local).

Вы можете добавить необходимую библиотеку непосредственно с помощью Maven (просто добавьте зависимость ниже) ИЛИ получите непосредственно jar.

<dependency> 
<groupId>com.documents4j</groupId> 
<artifactId>documents4j-api</artifactId> 
<version>1.0.2</version> 
<type>pom</type> 
</dependency> 
+0

Можете ли вы дать мне ссылку на скачивание файла document4j jar? –

+0

Я отредактировал свой ответ с запрошенной информацией. –

+0

: «DocumentType.MS_WORD» и «DocumentType.PDF» не работает –

0

Я хочу, чтобы вы попробовали этот код, так как он дает мне выходной файл PDF-конвертера. Я не уверен в точности.

InputStream is = new FileInputStream(new File("your Docx PAth")); 
      WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage 
        .load(is); 
      List sections = wordMLPackage.getDocumentModel().getSections(); 
      for (int i = 0; i < sections.size(); i++) { 
       wordMLPackage.getDocumentModel().getSections().get(i) 
         .getPageDimensions(); 
      } 
      Mapper fontMapper = new IdentityPlusMapper(); 
      PhysicalFont font = PhysicalFonts.getPhysicalFonts().get(
        "Comic Sans MS");//set your desired font 
      fontMapper.getFontMappings().put("Algerian", font); 
      wordMLPackage.setFontMapper(fontMapper); 
      PdfSettings pdfSettings = new PdfSettings(); 
      org.docx4j.convert.out.pdf.PdfConversion conversion = new org.docx4j.convert.out.pdf.viaXSLFO.Conversion(
        wordMLPackage); 
      //To turn off logger 
      List<Logger> loggers = Collections.<Logger> list(LogManager 
        .getCurrentLoggers()); 
      loggers.add(LogManager.getRootLogger()); 
      for (Logger logger : loggers) { 
       logger.setLevel(Level.OFF); 
      } 
      OutputStream out = new FileOutputStream(new File("Your OutPut PDF path")); 
      conversion.output(out, pdfSettings); 
      System.out.println("DONE!!"); 

Надеюсь, это решение будет хорошо для вашей проблемы. спасибо !!

+0

Я только что получил этот материал однажды прочитав www.docx4java.org/, и я надеюсь, что вы найдете здесь больше. –

+0

использовать docx4j банку и некоторые поддерживающие банки –

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

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