itextsharp columntext border不是页面

时间:2015-07-10 19:16:51

标签: c# itextsharp

我在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();
            }

0 个答案:

没有答案