所以我正在为 iPad 实现一种特定类型的 PDF 编辑器,供个人使用。我已经实现了 PDF 查看器,现在我陷入了编辑部分。这是交易:我在 UIView 中显示文档的每一页,然后创建另一个视图,其中的页面大小完全相同。然后我让用户在视图上绘制
现在,假设我想在它绘制的 PDF 文件的确切页面中打印 UIVIiew。我知道有一种方法可以做到这一点,但是对于更大的文档来说需要很长时间。我是这样做的(简化代码以便更好地理解):
UIGraphicsBeginPDFContextToFile(file, pageSize, nil);
for (size_t currentPage = 1; currentPage <= pageCount; currentPage++) {
UIGraphicsBeginPDFPageWithInfo(pageSize, nil);
CGContextRef ctx = UIGraphicsGetCurrentContext();
//translates context, copies doc page to the new pdf, translates back
CGContextTranslateCTM(ctx, 0, pageSize.size.height);
CGContextScaleCTM(ctx, 1.0, -1.0);
CGPDFPageRef page = CGPDFDocumentGetPage (document, currentPage);
CGContextDrawPDFPage (ctx, page);
CGContextScaleCTM(ctx, 1.0, -1.0);
CGContextTranslateCTM(ctx, 0, -pageSize.size.height);
//custom drawing goes here
if(currentPage == desiredPage) [imageFromView drawInRect:pageSize];
}
UIGraphicsEndPDFContext();
这里的问题是此过程重新创建了整个 PDF,对于较大的文档,这可能需要几分钟才能完成。
我需要一个在 PDF 文档的页面中打印 UIView(用户绘制的)的解决方案,而无需重新创建整个文档。
非常感谢任何链接、提示和其他有用信息。提前致谢