使用Java将RTF转换为PDF

我们正在构建一个与其他系统部分交互的应用程序。我们正在从另一个系统中提取一些数据,这些数据作为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正在放弃RTF

。我使用的一个好的解决方案是JODCoverter库。它利用了OpenOffice,过去我能够将数千个RTF文档转换为PDF。

以上是 使用Java将RTF转换为PDF 的全部内容, 来源链接: utcz.com/qa/408204.html

回到顶部