我们正在构建一个与其他系统部分交互的应用程序。我们正在从其他系统中提取一些数据,这些数据以 RTF 文档的形式返回。但我们必须阻止用户编辑这个文件,所以我们考虑用 iText 将其转换为 PDF。代码片段:
// moving the rtf data into input stream to be used in RTF parser
ByteArrayInputStream rtfInputStream = new ByteArrayInputStream(rtfStream.toByteArray());
// set headers
resp.setHeader("Cache-Control", "no-store");
resp.addHeader("Content-Type", "application/pdf");
resp.addHeader("Content-Disposition", "inline; filename=Karta.pdf");
resp.setStatus(HttpServletResponse.SC_OK);
// pdf output stream
ByteArrayOutputStream pdfStream = new ByteArrayOutputStream();
Document pdfDoc = new Document();
PdfWriter pdfWriter = PdfWriter.getInstance(pdfDoc, pdfStream);
pdfDoc.open();
RtfParser rtfParser = new RtfParser(null);
rtfParser.convertRtfDocument(rtfInputStream, pdfDoc);
pdfDoc.close();
pdfWriter.close();
resp.getOutputStream().write(pdfStream.toByteArray());
rtfInputStream.close();
pdfStream.close();
is.close();
PDF 已创建,但字体大小错误、样式错误且编码错误。也许您遇到了类似的问题并且您解决了一些问题?也许有更好的解决方案?
itext 根据此放弃 RTFpost。
我用过的一个很好的解决方案是JODCoverter 库。它利用 OpenOffice,我过去能够将数千个 RTF 文档转换为 PDF。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)