2012-05-02 8 views
2

チャンクのテキストの改行処理について混乱します。私は線が全く同じ水平位置で始まっていることを期待している間に、次のコードチャンク/フレーズ内の改行処理

Paragraph para = new Paragraph(); 
    para.add(new Chunk(" A")); 
    para.add(new Chunk("\n B")); 
    para.add(new Chunk("\n C")); 
    document.add(para); 

は、得られたPDFドキュメントの最初の行は、わずかに右にシフトされる3行の段落を追加します。すべての文字 "A"、 "B"、 "C"の前に2つのスペースがあることに注意してください。私は最初のチャンクでも、改行を使用している場合

は、3行は完全に水平に出力ドキュメントに並んでいる:

Paragraph para = new Paragraph(); 
    para.add(new Chunk("\n A")); 
    para.add(new Chunk("\n B")); 
    para.add(new Chunk("\n C")); 
    document.add(para); 

そこで質問です:なぜチャンクテキストの改行文字の存在テキスト自体の水平位置に影響しますか?

私が使用しているiTextのバージョンは、5.2.1です。

+0

参考までに、この問題を調査している他の人は、次のURLを参照してください。http://itext.2136553.n4.nabble.com/newline-handling-inside-chunk-phrase-td4655550.htmlこれはiTextのいくつかのバージョンのバグです。 – searchengine27

+0

実際には、誰でもこの公式のバグがどこに列挙されているか知っていますか?またはこれが修正されたiTextのバージョン? – searchengine27

答えて

0

デフォルトでは、iTextは各 Paragraphの最初の行にインデントを設定します。このインデントスペースを0に設定します。 Paragraph.setFirstLineIndent(float)のAPIを参照してください。

+0

は機能しません。さらに、Paragraphクラスのソースコードを見ると、firstLineIndentのデフォルト値は0であるようです。 –

+0

あなたは正しいです、私は間違った仮定をしました。バグ、あるいは少なくとも奇妙で未確認の振る舞いのように見えます。 –

関連する問題