分析
iText API を調べると、次のようになります。
PdfContentByteは、ユーザーが配置したページのテキストおよびグラフィック コンテンツを含むオブジェクトです。適切なフォントエンコーディングを適用する方法を知っています。
チャンクは、ドキュメントに追加できるテキストの最小の重要な部分です。ほとんどの要素は、1 つ以上のチャンクに分割できます。チャンクは、特定のフォントを持つ文字列です。他のすべてのレイアウト パラメータは、このテキストのチャンクが追加されるオブジェクトで定義する必要があります。
PdfContentByte と Chunk (要素) は、別の目的で作成されます。それらには、共通点もインターフェイスもスーパークラスもありません (Object ofc を除く)。
質疑応答
最初の理由もそうですか?
begin を使用してテキストの書き込みを開始し、 end を使用してテキストの書き込みを終了し、現在のフォントを無効にします。
beginText と endText を使用していますか?
いいえ、Chunk や Paragraph などの要素は begin と end を使用しません。StringBuffer を使用してテキスト値を保持します。
「不均衡な開始終了テキスト演算子」例外が発生するのはなぜですか?
PdfContentByteの beginText() および endText() ソースを見ると、テキストがまだ終了していないときにテキストを開始しようとしたり、まだ開始されていないときにテキストを終了しようとすると、この例外が発生することがわかります。
要素を追加する前に document.open() を呼び出し、ドキュメントを終了するときに document.close() を呼び出したことを確認してください。