Ну, кажется, вы наткнулись на разницу между текстовым режимом и композитным режимом :
- текстовый режим => вызов
ColumnText.AddText()
с использованием «встроенных» объектов Chunk и Phrase.
- составной режим => вызов
ColumnText.AddText()
с использованием объектов-контейнеров, таких как Paragraph, Image и т. Д.
Когда вы находитесь в текстовом режиме , вы добавляете пробел между «абзацами», устанавливая ColumnText
свойства.
Когда вы находитесь в составном режиме , вы добавляете пространство между «контейнерными» объектами, как обычно, т.е. как если бы вы не использовали ColumnText
.
Вот пример, показывающий разницу между двумя режимами:
int status = 0;
string paragraph ="iText ® is a library that allows you to create and manipulate PDF documents. It enables developers looking to enhance web- and other applications with dynamic PDF document generation and/or manipulation.";
using (Document document = new Document()) {
PdfWriter writer = PdfWriter.GetInstance(document, STREAM);
document.Open();
ColumnText ct = new ColumnText(writer.DirectContent);
ct.SetSimpleColumn(36, 36, 400, 792);
/*
* "composite mode"; use AddElement() with "container" objects
* like Paragraph, Image, etc
*/
for (int i = 0; i < 4; ++i) {
Paragraph p = new Paragraph(paragraph);
// space between paragraphs
p.SpacingAfter = 0;
ct.AddElement(p);
status = ct.Go();
}
/*
* "text mode"; use AddText() with the "inline" Chunk and Phrase objects
*/
document.NewPage();
status = 0;
ct = new ColumnText(writer.DirectContent);
for (int i = 0; i < 4; ++i) {
ct.AddText(new Phrase(paragraph));
// Chunk and Phrase are "inline"; explicitly add newline/break
ct.AddText(Chunk.NEWLINE);
}
// set space between "paragraphs" on the ColumnText object!
ct.ExtraParagraphSpace = 6;
while (ColumnText.HasMoreText(status)) {
ct.SetSimpleColumn(36, 36, 400, 792);
status = ct.Go();
}
}
Итак, теперь, когда вы обновили свой код и используете композитный режим с AddElement()
, p.SpacingAfter = 0
WILL , удалите интервалы между абзацами. Или установите все, что вы хотите вместо Paragraph.Leading
.