これが以前に投稿された場合は申し訳ありません
経費のリストをPDF文書で印刷する必要があります。リストは任意の数のページに拡張できます。
datarowオブジェクトを反復処理してリストを作成しています。重要なことの1つは、現在のページが終了するときはいつでも、ページの最後に現在の合計を印刷する必要があるということです。PdfPageEventHandlerを実装するクラスを以下のように作成しました
public class PaymentPageEventHandler : iTextSharp.text.pdf.PdfPageEventHelper
{
PdfContentByte cb;
private string subTotal = "";
public string GetSubtotal
{
set{
value = subTotal;
}
get
{
return subTotal;
}
}
public override void OnEndPage(PdfWriter writer, Document document)
{
// base.OnEndPage(writer, document);
cb = writer.DirectContent;
float[] iOuterTblWidth = { 10, 40F, 8, 12, 10 }; column widths of the table.
PdfPTable pdftbl = new PdfPTable(iOuterTblWidth);
PdfPCell cell = new PdfPCell();
cell.Colspan = 4;
cell.AddElement(new Chunk("Sub-Total"));
cell.HorizontalAlignment = 0;
pdftbl.AddCell(cell);
cell = new PdfPCell();
cell.AddElement(new Chunk(GetSubtotal));
cell.HorizontalAlignment = 2;
pdftbl.AddCell(cell);
}
}
上記のonEndPAgeイベントは、2つの列を書き込もうとします。上記のコードは呼び出されますが、行はpdfページに表示されません。
私は上記のクラスを以下のように呼んでいます
PaymentPageEventHandler ppem = new PaymentPageEventHandler();
ppem.GetSubtotal = "123"; // test value to print as running total
writer.PageEvent = ppem; // assigning event to writer object
PdfContentByte変数cbを明示的に呼び出して書き込む必要があります。もしそうなら、どのように私はセルをpdfに書くべきですか?
誰かがこれについて私を助けることができますか?