4

我正在尝试使用 table.SpacingBefore 在我的 PDF 文件中的表格前放置一些空格,但它不起作用。

我发现iTextSharp table.SpacingBefore not working 这是完全相同的问题,但解决方案似乎不起作用。

这是我的一些代码:

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 回答