2016-12-22 4 views
1

私は2つの文字列と空白行を列に表示する必要があります。以下は私が使用しているスニペットです。Chunk.NewLineの高さを調整します.ItextSharp C#

Pharse heading = new Pharse("Header"); 
Pharse footer= new Pharse("Footer"); 

Paragraph label = new Paragraph(); 
label.Add(heading); 
label.Add(Chunk.NEWLINE); 
label.Add(footer); 

ただし、空白行の高さが大きすぎることがわかりました。どうすれば減らすことができますか?

答えて

1

あなたが望むものを達成するには、さまざまな方法があります。私が一番簡単な方法だと思うものから始めましょう。あなたはParagraphを持っていて、それはいくつかの余分なスペースを続けることにしたい場合は、SpacingAfter機能を使用することができます

Paragraph label1 = new Paragraph("Header"); 
label1.SpacingAfter = 15; 
Paragraph label2 = new Paragraph("Footer"); 
document.Add(label1); 
document.Add(label2); 

をあなたが見ることができるように、私は2つのオブジェクトにlabelを分割します。実際には、Paragraphオブジェクトにはいずれも、の先頭にが含まれています。この先導は、行間のスペースを定義し、Paragraphのすべての行で同じです。これは、フォントサイズに基づいて絶対距離と相対距離の(組み合わせた)表現で表すことができます。質問headingfooterは1行で構成されている場合Reduce paragraph line break height on iTextSharp

にクリス・ハースの答えを参照してください、あなたは大手の値を減らすことによってChunk.NEWLINEで撮影したスペースを減らすことができます。例:

Phrase heading = new Phrase("Header"); 
Phrase footer= new Phrase("Footer"); 
Paragraph label = new Paragraph(); 
label.Leading = 12; 
label.Add(heading); 
label.Add(Chunk.NEWLINE); 
label.Add(footer); 

この方法の欠点は、テキストの2行の間の距離も縮小されることです。例えば、headingがかなり長いテキストで構成されている場合、行は分割され、それらの行の間の距離も縮小されます。

また、両方のソリューションを組み合わせて使用​​することもできます。たとえば、Paragraphheading、新しいラインチャンク、およびfooterの3つの部分に分割します。新しいラインチャンクを別のParagraphにラップして、小さな先頭に付けます。

注: PDFでのすべての測定はユーザー単位で表しています。デフォルトでは、1インチに72のユーザー単位があります。換言すれば、12ユーザユニットの先頭は1/6インチである。

関連する問題