4

table.SpacingBefore を使用して PDF ファイルの表の前にスペースを入れようとしていますが、うまくいきません。

iTextSharp table.SpacingBefore が機能しないことがわかりまし たが、これはまったく同じ問題ですが、解決策が機能していないようです。

これが私のコードの一部です:

header.SpacingBefore = 150f;
Paragraph paragraph = new Paragraph();
paragraph.Leading = 0f;
doc1.Add(paragraph);
doc1.Add(header);

結果は次のとおりです。

結果1

空でない段落の追加

Paragraph paragraph = new Paragraph(" TEXT ");

これを生成します:

ここに画像の説明を入力

4

1 に答える 1

10

次のスクリーンショットをご覧ください。

ここに画像の説明を入力

ファイル Spacing1.pdf (他のファイルの下に表示) は、説明した方法で作成されます。「間隔」機能により、ページ上の異なる要素間にいくらかのスペースを作成できるため、設計上、「前の間隔」は無視されます。他の要素がない場合、スペースは追加されません。これはあなたの例の場合です。テーブルは最初の要素であるため、「前に間隔」を追加する必要はありません。同じ理由で、テーブルがページの最後の要素である場合、「後の間隔」は無視されます。

Paragraphテーブルを追加する前にオブジェクトを追加することで、ファイル Spacing2.pdf (中央に表示) が作成されます。ご覧のとおり、Paragraphと の間に余分なスペースが追加されていPdfPTableます。あなたはそうではないと言います。私の場合、スクリーンショットを見ると、その存在が非常に明確です。どのバージョンの iTextSharp を使用していますか?

あなたの要件の分析は間違っていると思います。前後に間隔を空けたくありません。間隔が必要です。それが、spacing3.pdf で行ったことです (右側の他のウィンドウの上に示されています)。

Paragraphテーブルを追加する前に以下を追加して、この間隔を導入しました。

document.Add(new Paragraph(100, "\u00a0"));

この100段落の が先頭です。追加されるスペースの量を定義します。は"\u00a0"、単一の「改行なしスペース」文字を含む文字列です。

それがあなたが求めていることだと思います。それは「前の間隔」とは異なるものです。

于 2013-08-19T14:49:38.237 に答える