我在iText复合模式下编写文档,当我的列文本宽度比页面宽时,它显示正常。
示例:
float[][] width =
{
new[] {_document.Left, _document.Right},
new[] {_document.Left, _document.Right}
};
这会导致我的表格与其上方的标题错位。
但是,如果我使用:
float[][] width =
{
new[] {_document.Left-67, _document.Right+55},
new[] {_document.Left-67, _document.Right+55}
};
然后表格与其标题正确对齐。 当班级打开时,我使用以下内容设置文档:
private void SetupDocument()
{
_document.SetMargins(5f, 5f, 5f, 5f);
_document.SetMarginMirroring(true);
_document.Open();
}
,文档类型为'字母'所以宽度是612。 那么为什么在使用左右边距的文档时,列文本会不对齐,但是当左边距为-62而右边距为662时,列文本是否正确?
编辑:使用宽度的方法部分,并打印数据。 _verticalAlign是510,因为我上面有一些手动格式化的字段 我使用了来自http://sourceforge.net/p/itextsharp/code/HEAD/tree/book/iTextExamplesWeb/iTextExamplesWeb/iTextInAction2Ed/Chapter04/ColumnTable.cs
的一般想法 column.AddElement(LocationNotes(fpoData));
int count = 0;
int status = 0;
while (ColumnText.HasMoreText(status))
{
if (count == 0)
{
column.SetSimpleColumn(
width[count][0],_document.Bottom,
width[count][1],_verticalAlign
);
count++;
}
else if (count > 0)
{
_verticalAlign = 760;
_document.NewPage();
count = 0;
CreateFooter(fpoData);
column.SetSimpleColumn(
width[count][0], _document.Bottom,
width[count][1], _verticalAlign
);
}
status = column.Go();
}