0

第一次发帖,请多多包涵。基本上,我有一个使用 ABCpdf(通过 C# 项目)动态创建的 pdf 文档,但是表格行似乎是在彼此之上呈现的。我查看了所有文档等并搜索了答案,但没有找到与此相关的任何内容。

我提到了有关创建表的示例,这些示例使我达到了现在的水平,但我无法理解导致此问题的原因。下面是我如何构建表格的示例。提供的任何帮助将不胜感激。我为 ABCpdf 创建了一个包装器,以使其使用起来更快,代码效率更高,但看不到这会导致问题,因为它只是调用了与我逐行编写时相同的代码。

        PdfTable pdfTable = new PdfTable(_abcPdfWrapper.PdfDocument, 5, 3)   {HorizontalAlignment = 1};

        pdfTable.NextRow();
        pdfTable.NextCell();
        pdfTable.AddText(firstStageReference);

        pdfTable.NextCell();
        pdfTable.AddText(String.Format("{0:#,0.000}", materialWeight) + " Kg");
        pdfTable.NextRow();
        pdfTable.AddText(weighDepartmentMaterial.sMaterialCode ?? String.Empty);

        pdfTable.NextCell();
        pdfTable.AddText(weighDepartmentMaterial.sMaterialName ?? String.Empty);

        pdfTable.NextCell();
        pdfTable.AddText(String.Format("{0:#,0.000}", materialWeight) + " Kg");

        pdfTable.NextCell();
        pdfTable.AddText(weighDepartmentMaterial.Scale ?? String.Empty);

        pdfTable.NextCell();
        pdfTable.AddText(weighDepartmentMaterial.AddGroup ?? String.Empty);

这些行之间还有其他代码,但它们对表的构建没有任何意义,除了一个循环,其中包含从第 2 行开始的行,以循环遍历一系列原材料并为每个原材料创建一行。

4

1 回答 1

0

我最终解决了这个问题,只需将这两个函数添加到我的包装类中,然后在使用表对象之前和之后调用它们。

        public void PdfTableBegin()
    {
        PdfDocument.TopDown = false;
    }


    public void PdfTableEnd()
    {
        PdfDocument.TopDown = true;
    }
于 2011-09-05T09:37:35.703 回答