嗨所以我正在尝试使用 FOP 将 xml 文件转换为 pdf 并且我一直遇到错误,现在我有错误
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xmlgraphics/io/ResourceResolver
at org.apache.fop.apps.FopConfParser.<init>(FopConfParser.java:122)
at org.apache.fop.apps.FopFactory.newInstance(FopFactory.java:132)
at run.ExampleFO2PDF.main(ExampleFO2PDF.java:62)
我在构建路径中有FOP库以及xmlgraphics和commons 日志记录和Avalon 框架
这是我要运行的代码
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.sax.SAXResult;
import javax.xml.transform.stream.StreamSource;
import org.apache.fop.apps.*;
import org.xml.sax.SAXException;
public class pdf{
public static void main(String[] args) throws SAXException, IOException, TransformerException
{
FopFactory fopFactory = FopFactory.newInstance(new File("."));
OutputStream out = new BufferedOutputStream(new FileOutputStream(new File("D:/temp/myfile.pdf")));
try {
Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, out);
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(); // identity transformer
Source src = new StreamSource(new File("D:/temp/test.xml"));
Result res = new SAXResult(fop.getDefaultHandler());
transformer.transform(src, res);
} finally {
//Clean-up
out.close();
}
}
}