我正在尝试使用ABCpdf(版本11)从我生成的.aspx页面创建pdf。我正在关注他们的https://www.websupergoo.com/helppdfnet/default.htm?page=source%2F5-abcpdf%2Fdoc%2F1-methods%2Fchainable.htm示例代码,这非常有效。
我正在生成的.aspx页面有一个表,其中包含可变行数和其他内容。当表只有几行时,它很有效,因此页面很短,pdf只有一页,但当页面很长,表中有大量行时,它只保存第一页作为pdf。我试图调试代码并看到它应该添加页面的行永远不会执行,因为theDoc.Chainable(theID)总是返回false。
Dim theID As Integer
theID = theDoc.AddImageUrl(HttpContext.Current.Request.Url.AbsoluteUri)
'Chain
While True
theDoc.FrameRect() ' add a black border
If Not theDoc.Chainable(theID) Then
Exit While
End If
theDoc.Page = theDoc.AddPage()
theID = theDoc.AddImageToChain(theID)
End While
为什么.Chainable总是假的?什么使它成为真或假?如果我强行使它成为真,那么我得到一个空白页作为第二页,所以我需要知道为什么该属性被返回为false。
你们有没有遇到过这个问题?任何帮助表示赞赏。
我发现了这个问题。以及解决它的方法!
这个问题与ABCpdf无关,它是页面(.aspx)打印的方式。我按Ctrl + P启动打印预览以查看是否呈现所有页面并看到页面在第一页之后被切断。这也可能是原因.Chainable总是错误的。所以,我添加了以下css和瞧!它按预期工作。
@media print {
#form1 { overflow:visible !important;}
}
其中form1是主窗体的ID。