我有一个基于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();
}
}
}