Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用java编程将doc、docx文件转换为pdf_Java_Apache Poi_Itext_Docx4j - Fatal编程技术网

如何用java编程将doc、docx文件转换为pdf

如何用java编程将doc、docx文件转换为pdf,java,apache-poi,itext,docx4j,Java,Apache Poi,Itext,Docx4j,我可以从docx文件中使用docx4j生成pdf。但是我需要将doc文件转换为pdf,包括图像和表格。 有没有办法在java中将doc转换为docx。或者(从文档到pdf)?您可以使用jWordConvert进行此操作 jWordConvert是一个Java库,可以读取和呈现Word文档 本机转换为PDF、转换为图像或打印 自动生成文档 有关详细信息,请访问以下链接 为了从word文档中提取文本,我从 public String getText(String document) { try

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

您可以使用jWordConvert进行此操作

jWordConvert是一个Java库,可以读取和呈现Word文档 本机转换为PDF、转换为图像或打印 自动生成文档

有关详细信息,请访问以下链接

为了从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 );
            }
        }
然后,从PDFBox用户指南中删除以下内容:


我确实希望这能为您指明正确的方向,如果不能将您完全分类的话。

docx4j包含org.docx4j.convert.in.Doc,它使用POI来读取.Doc,但它是一个概念证明,而不是产品代码。上次我检查时,POI对binary.doc的HWPF解析有一些限制


除了mqchen的评论之外,您还可以使用LibreOffice或OpenOffice将doc转换为docx。但是,如果您打算使用LibreOffice或OpenOffice,您也可以使用它将.doc和.docx直接转换为PDF。谷歌“jodconverter”。

您可以从终端()运行OpenOffice以使用它转换文件。这可能不是最好的解决方案,但这是一个相当简单的解决方案。我也需要这个解决方案,请问,你找到了吗?如果是,请分享codeOP说他想使用docx4j。谢谢,但我需要免费的源代码。谢谢,我需要doc文件包含图像和表格到docx。
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();