Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在asp.net中使用itextsharp查找是否启动新页面_Asp.net_Itextsharp - Fatal编程技术网

如何在asp.net中使用itextsharp查找是否启动新页面

如何在asp.net中使用itextsharp查找是否启动新页面,asp.net,itextsharp,Asp.net,Itextsharp,我有一个数据集,其中有多个记录可用,我正在从中创建PDF。 每个记录的数据不固定,它可能包含任意数量的页面,现在我想在每个页面的末尾添加姓氏。每当我想用页脚做这件事时,每页都会显示相同的名字,但我想知道打印记录的人的名字 这是我的密码 @K.C Document Document=新文档(); //PdfWriter writer=PdfWriter(文档、响应、输出流); PdfWriter writer=PdfWriter.GetInstance(document,Response.Outp

我有一个数据集,其中有多个记录可用,我正在从中创建PDF。 每个记录的数据不固定,它可能包含任意数量的页面,现在我想在每个页面的末尾添加姓氏。每当我想用页脚做这件事时,每页都会显示相同的名字,但我想知道打印记录的人的名字

这是我的密码 @K.C

Document Document=新文档();
//PdfWriter writer=PdfWriter(文档、响应、输出流);
PdfWriter writer=PdfWriter.GetInstance(document,Response.OutputStream);
document.Open();
对于(int i=0;i
您使用

writer.PageEvent = new PDFFooter(ds.Tables["ab"].Rows[i]["lName"].ToString());
在循环中更新
PdfWriter
PageEvent

不幸的是,这种C#语法(就像在iText/Java中使用setter一样)具有误导性:

    public virtual IPdfPageEvent PageEvent {
        get {
            return pageEvent;
        }
        set {
            if (value == null) this.pageEvent = null;
            else if (this.pageEvent == null) this.pageEvent = value;
            else if (this.pageEvent is PdfPageEventForwarder) ((PdfPageEventForwarder)this.pageEvent).AddPageEvent(value);
            else {
                PdfPageEventForwarder forward = new PdfPageEventForwarder();
                forward.AddPageEvent(this.pageEvent);
                forward.AddPageEvent(value);
                this.pageEvent = forward;
            }
        }
    }
()

因此,上面引用的代码行不会替换当前的
PageEvent
实例,而是向其添加来解释您的评论:

每次页脚与上一页脚合并后打印

您必须首先清除现有页面事件:

writer.PageEvent = null;
writer.PageEvent = new PDFFooter(ds.Tables["ab"].Rows[i]["lName"].ToString());

(参见上文对
null
值的特殊处理)或使用单个
PageEvent
实现实例,在该实例中,您仅更改一个成员变量,而该变量又被用作页脚文本。

能否向我们展示一些您尝试过的代码?您正在使用页面事件,不是吗?可能您正在使用
PdfPTable
?你的问题不清楚。请详细说明。@MKL是的,我正在为此使用endOfPage事件,但每次页脚都与上一个页脚合并,然后打印。
writer.PageEvent = null;
writer.PageEvent = new PDFFooter(ds.Tables["ab"].Rows[i]["lName"].ToString());