0

初めてのポスターですのでご容赦ください。基本的に、ABCpdfを使用して(C#プロジェクトを介して)オンザフライで作成しているpdfドキュメントがありますが、テーブルの行は互いに重なり合ってレンダリングされているようです。私はすべてのドキュメントなどを見て答えを探しましたが、これに関連するものは何も見つかりませんでした。

テーブルの作成例を参考にして、今のところまでたどり着きましたが、何が原因なのかわかりません。以下は、テーブルを作成する方法の例です。どんな助けでも大歓迎です。ABCpdfのラッパーを作成して、コードをより速く効率的に使用できるようにしましたが、すべてを1行ずつ記述した場合と同じコードを呼び出すだけなので、これが問題の原因となることはわかりません。

        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

最終的に、これら2つの関数をラッパークラスに追加し、テーブルオブジェクトを使用する前後に呼び出すことで、この問題を解決しました。

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


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