java rtf,用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,但字体大小错误,样式错误,编码错误.也许你有类似的问题,你做了一些事情?也许有更好的解决方案?

解决方法:

根据这个post,Itext正在放弃RTF.

我使用的一个很好的解决方案是JODCoverter Library.它利用OpenOffice,我能够在过去将几千个RTF文档转换为PDF.

标签:java,pdf,pdf-generation,rtf

来源: https://codeday.me/bug/20190526/1158183.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值