Обновление текста PDF, не может заменить строку на арабское слово - itext Java - PullRequest
0 голосов
/ 31 марта 2019

Я читаю 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();
}
...