DOCX Apache POI-包含文本的形状/图像/艺术字未转换为PDF

时间:2019-12-09 07:43:15

标签: pdf apache-poi docx pdf-conversion xwpf

我使用了以下代码:

    package com.allianz.re.gim.service.util;

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;

    import org.apache.poi.xwpf.usermodel.XWPFDocument;

    import fr.opensagres.poi.xwpf.converter.pdf.PdfConverter;
    import fr.opensagres.poi.xwpf.converter.pdf.PdfOptions;

    public class PDF {
        public static void main(String[] args) throws IOException {
            // TODO Auto-generated method stub
            String inputFile = "C:/TEMP/question.docx";
            String outputFile = "C:/TEMP/question.pdf";
            if ((args != null) && (args.length == 2)) {
                inputFile = args[0];
                outputFile = args[1];
            }
            System.out.println("inputFile:" + inputFile + ",outputFile:" + outputFile);
            FileInputStream in = new FileInputStream(inputFile);
            XWPFDocument document = new XWPFDocument(in);
            File outFile = new File(outputFile);
            OutputStream out = new FileOutputStream(outFile);
            PdfOptions options = null;
            PdfConverter.getInstance().convert(document, out, options);
        }
    }

使用的附属人

    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>4.0.1</version>
    </dependency>

    <dependency>
        <groupId>fr.opensagres.xdocreport</groupId>
        <artifactId>fr.opensagres.poi.xwpf.converter.pdf</artifactId>
        <version>2.0.1</version>
    </dependency>

输入:

下面的docx在文本上放置了一个矩形形状,该矩形的布局选项位于“文本后面”,您可以从图像中看到它

Input Docx

pdf输出,我只有ahs文字。矩形形状不存在。对于放置在文本后面的图像或放置在图像上方的艺术字,也会发生同样的情况:

PFD Output

使用这些依赖关系和代码片段时,我能够
1.转换docx中具有相同字体的图像。
2.用docx相同字体转换简单文本。

但是很少有以下缺点:
1。无法转换图像,在文本后面有布局选项(以在图像顶部显示文本)无法正常工作。仅在PDF中转换了文本。
2。对于其中包含一些文字的艺术字或形状也会发生相同的问题。仅测试被转换。

有人可以帮我吗?

0 个答案:

没有答案