Pdf生成用于动态内容

时间:2011-10-31 06:52:31

标签: iphone objective-c ios4 pdf-generation quartz-graphics

我在我的应用程序中生成pdf报告,当页面内容超过一页时如何填充内容,实际上在这种情况下我试图通过给CGContextBeginPage()创建一个新的页面; 但它显示错误,如

:CGContextEndPage:不要嵌套对此函数的调用 - 结果将不是您所期望的。 * *** :CGContextBeginPage:不要嵌套对此函数的调用 - 结果将不是您所期望的。

有人可以告诉我如何在这种情况下创建pdf。

1 个答案:

答案 0 :(得分:0)

在布局内容时,您应该有一个存储当前Y位置的变量,将此值增加内容的高度(以及任何填充)。

每次要渲染某些文本或图像等时,请在渲染前检查页面上是否有足够的空间,如果没有结束当前页面并开始新的页面。通过查看当前的Y位置,添加内容高度并与页面矩形进行比较来检查空间。

您获得的错误是由于您嵌套PDF页面调用,操作系统需要以下方法......

CGContextBeginPage
... render content for page 1
CGContentEndPage

CGContextBeginPage
... render content page 2
CGContentEndPage

但是,您的代码很可能将这些代码嵌套如下......

CGContextBeginPage
... render content for page 1
CGContextBeginPage
... render content for page 2
CGContextEndPage
CGContextEndPage