如何以编程方式将doc,docx文件转换为pdf

时间:2013-03-26 11:57:18

标签: java apache-poi itext docx4j

我可以使用docx4j从docx文件生成pdf。但我需要将doc文件转换为pdf,包括图像和表格。 有没有办法在java中将doc转换为docx 。或(doc to pdf)?

3 个答案:

答案 0 :(得分:2)

docx4j包含or​​g.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/