0

特殊文字を含む情報を PDF フォームに入力したい:

public class Main {
    public static void main(String[] args) throws IOException, DocumentException {
        PdfReader reader = new PdfReader("in.pdf");
        PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("out.pdf"));

        AcroFields form = stamper.getAcroFields();
        form.setField("sessionAddress", "ÕÄÖÜ õäöü šž");

        stamper.setFormFlattening(true);
        stamper.close();
        reader.close();
    }
}

上記のコードを使用すると、out.pdf( の後の部分Aadress:)に次の結果が表示されます。

ここに画像の説明を入力

ここで、代わりにすべての特殊文字を Unicode コードとして指定すると、次のようになります。

form.setField("sessionAddress", "\u00D5\u00C4\u00D6\u00DC \u00F5\u00E4\u00F6\u00FC \u0161\u017E");

ここに画像の説明を入力

私は何を間違っていますか?

私の知る限り、文字列は一連の文字を表します。上記の 2 つの文字列の内容は、Java コードでは同じであるべきではありませんか?

UTF-8 でエンコードされたデータでいっぱいのデータベースがあります。Java アプリケーションの残りの部分が既に行っているように、iTextPdf で直接動作させるにはどうすればよいですか (データベース、Java コード、API 要求/応答、およびフロントエンド JavaScript コードはすべてこのような文字列を含み、iTextPdf 以外はすべて動作します)。

重要な場合、上記のコードを含む Java ファイルは UTF-8 で保存されます。IntelliJ を使用しmainて、gradle プロジェクトでメソッドを実行しています。iTextPdf バージョン 5.5.13。ジャワ11。

4

0 に答える 0