我正在尝试使用ABCpdf(版本11)从正在生成的.aspx页面创建pdf。我正在跟踪https://www.websupergoo.com/helppdfnet/default.htm?page=source%2F5-abcpdf%2Fdoc%2F1-methods%2Fchainable.htm中的示例代码,效果很好。
我正在生成的.aspx页面具有一个表,该表具有可变数量的行以及其他内容。当表只有几行并且结果是页面很短并且pdf只有一页时,它的效果很好,但是当页面很长且表中有很多行时,它只会保存第一页作为pdf。我尝试调试代码,发现应该添加页面的行始终不会执行,因为Doc.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始终为假?是什么将其设置为真或假?如果我强制将其设置为true,则将获得空白页作为第二页,因此我需要知道为什么将该属性返回为false。
你们中有人遇到过这个问题吗?任何帮助表示赞赏。
答案 0 :(得分:0)
我发现了问题。 以及解决方法!
该问题与ABCpdf无关,这是页面(.aspx)的打印方式。我按Ctrl + P启动打印预览,以查看是否渲染了所有页面,并看到页面在第一页之后被剪切掉了。这也可能就是.Chainable始终为假的原因。因此,我添加了以下CSS和voila!它按预期工作。
@media print {
#form1 { overflow:visible !important;}
}
其中form1是主表单的ID。