gpt4 book ai didi

java - 使用流避免临时文件

转载 作者:行者123 更新时间:2023-12-01 13:25:19 25 4
gpt4 key购买 nike

我正在尝试使用 Apache Library FOP 创建 PDF 文档。它运行良好,但我必须创建一个临时文件来存储中间文件(test.fop)。

这是我的功能:

@RequestMapping(value = "/pdf")
public void showPdfReport(OutputStream pdfOutStream) throws Exception
{
// Setup
FopFactory fopFactory = FopFactory.newInstance();
TransformerFactory factory = TransformerFactory.newInstance();

// Transformation XML to XML-FO
StreamSource xsltSource = new StreamSource(servletContext.getResourceAsStream("resources/xsl/pdfTemplate.fo"));
Transformer transformer = factory.newTransformer(xsltSource);
OutputStream fopOutStream = new BufferedOutputStream(new FileOutputStream(new File(
"C:/Temp/tests/test.fop")));
StreamSource xmlSource = new StreamSource(servletContext.getResourceAsStream("resources/xsl/test.xml"));
StreamResult fopResult = new StreamResult(fopOutStream);
transformer.transform(xmlSource, fopResult);

// Transformation XSL-FO to PDF
Source fopSrc = new StreamSource(new File("C:/Temp/tests/test.fop"));
Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, pdfOutStream);
Result res = new SAXResult(fop.getDefaultHandler());
transformer = factory.newTransformer();
transformer.transform(fopSrc, res);
}

是否可以将 test.fop 存储在流或任何缓冲区中而不是文件中?

最佳答案

有一个 example FOP 网站对此进行了准确解释。从 XSLT 转换发出的 SAX 事件直接送入 FOP。文件或内存中没有缓冲。

关于java - 使用流避免临时文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21832275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com