将XML转换为PDF

时间:2019-07-24 10:26:25

标签: java xml pdf itext

我有一个基于XFA的PDF,基本上是一个模板PDF。我被要求以编程方式填写该可编辑PDF的某些字段。到目前为止,我已使用itextpdf将template.pdf转换为其相应的XML。现在,我希望编辑该XML文件并将其转换回PDF。我了解到我们可以使用apache FOP,但是我只有1个对应的XML文件,而没有FOP要求的.xsl文件。请为我指出正确的方向。

谢谢。

这是我用来将PDF转换为XML的代码。

import com.itextpdf.text.pdf.*;
import com.itextpdf.text.pdf.codec.Base64;
import org.junit.Test;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.*;
import java.util.Map;
import java.util.Set;


public class ConversionClass {

    public static void main(String[] a){
        pdfToXfa();
    }
    @Test
    public static void pdfToXfa() {
        try {
            PdfReader reader = new PdfReader("template.pdf");
            FileOutputStream os = new FileOutputStream("template_xml.xml");
            XfaForm xfa = new XfaForm(reader);
            org.w3c.dom.Document doc = xfa.getDomDocument();
            Transformer tf = TransformerFactory.newInstance().newTransformer();
            tf.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
            tf.setOutputProperty(OutputKeys.INDENT, "yes");
            tf.transform(new DOMSource(doc), new StreamResult((os)));
            reader.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

0 个答案:

没有答案
相关问题