我在用iText7。
我的类在服务器上处理pdf文件(这是一个带有西里尔符号的模板)。
我先看了这份文件。其次,我编辑了一些信息,并试图将其保存在本地机器上,但我遇到了一个问题。我的新文本显示不正确。
如果我用ttf字体创建了一个新的pdf文件并将其添加到新创建的pdf文件中,那么所有操作都很好,但是如果我修改了我的模板,文本是不正确的(仅针对Cyrillic符号)。
我正在尝试使用一个来自官方网站的简单例子- http://developers.itextpdf.com/examples/stamping-content-existing-pdfs/clone-replacing-pdf-objects
下面是我代码的相关部分:
PdfDocument document = new PdfDocument(new PdfReader(template), new PdfWriter(dest));
PdfPage page = document.getFirstPage();
PdfDictionary dictionary = page.getPdfObject();
PdfObject object = dictionary.get(PdfName.Contents);
if (object instanceof PdfStream) {
PdfStream stream = (PdfStream) object;
byte[] data = stream.getBytes(true);
stream.setData(new String(data).replace("user_fio", "Петров А.А.").getBytes("utf-8"));
}
document.close();我正在尝试使用地区:http://www.oracle.com/technetwork/java/javase/javase7locales-334809.html
但结果是“?”或者类似的东西。
我做错了什么?谢谢!
发布于 2017-09-11 12:24:53
PDF不是wysiwyg格式。你不能希望简单地替换内容流中的信息,并且有一个好看的pdf。这有两个原因
摘要:- PDF不是可编辑的格式!
如果您希望执行类似于您的usecase的操作,请考虑以下选项:
https://stackoverflow.com/questions/46155409
复制相似问题