Я читаю pdf и обновляю текст pdf. Кажется, он работает нормально, когда я заменяю его английским словом, но когда я заменяю его арабским словом, это не работает.
В моем случае PdfObject
всегда будет иметь тип Indirect
, поэтому dict.get(PdfName.CONTENTS).isArray()
будет false
во всех случаях
public static void manipulatePdf(String src, String dest) throws IOException, DocumentException {
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 eredeti = "اختبارات";
String arabicWord = new String(eredeti.getBytes());
stream.setData(new String(data).replace("testing", arabicWord ).getBytes("ISO-8859-6"));
}
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
stamper.close();
reader.close();
}