特殊文字を含む情報を 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。