我可以使用docx4j从docx文件生成pdf。但我需要将doc文件转换为pdf,包括图像和表格。 有没有办法在java中将doc转换为docx 。或(doc to pdf)?
答案 0 :(得分:2)
docx4j包含org.docx4j.convert.in.Doc,它使用POI来读取.doc,但它是概念证明,而不是生产就绪代码。最后我检查过,POI的HWPF解析二进制.doc是有限制的。
除了mqchen的评论之外,您还可以使用LibreOffice或OpenOffice将doc转换为docx。但是如果您打算使用LibreOffice或OpenOffice,您也可以使用它将.doc和.docx直接转换为PDF。 Google'jodconverter'。
答案 1 :(得分:1)
关闭POI unit tests,我想出了从word文档中提取文本的内容:
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 );
}
}
然后,将creation
的PDFBox用户指南抄下来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();
我希望能指出你正确的方向,如果不是你的话。
答案 2 :(得分:0)
您可以使用jWordConvert。
jWordConvert是一个可以读取和呈现Word文档的Java库 本地转换为PDF,转换为图像,或打印 文件自动。
详细信息可在以下链接中找到 http://www.qoppa.com/wordconvert/