我正在尝试使用 itext 读取文档并替换其中的字符串。但是一旦被操纵,所有的西班牙字符都会变成垃圾字符。以下是更改pdf的代码。
PdfReader reader = new PdfReader(src);
PdfDictionary dict = reader.getPageN(1);
PdfObject object = dict.getDirectObject(PdfName.CONTENTS);
if (object instanceof PRStream) {
PRStream stream = (PRStream) object;
byte[] data = PdfReader.getStreamBytes(stream);
String dataString = new String(data);
dataString = dataString.replace(sourceString, replacementString);
stream.setData(dataString.getBytes("UTF-8"));
}
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
stamper.close();
reader.close();
在实际的 pdf 中有一个字符串 ${address-line-one} 我将其替换为“20th Street”
这可行,但使用流中的这个西班牙语单词
Documentación 成为 Documentaci�n
和其他西班牙语单词一样。
我还在 java 控制台中打印了 bytes[] ,发现读取本身没有正确获取该字符。
有什么建议吗?