
我已经实现了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,pageSize.size.height); CGContextScaleCTM(ctx,1.0,-1.0); CGpdfpageRef page = CGpdfdocumentGetPage (document,currentPage); CGContextDrawpdfpage (ctx,page); CGContextScaleCTM(ctx,-1.0); CGContextTranslateCTM(ctx,-pageSize.size.height); //custom drawing goes here if(currentPage == desiredPage) [imageFromVIEw drawInRect:pageSize];}UIGraphicsEndPdfcontext(); 这里的问题是此过程重新创建整个pdf,对于较大的文档,这可能需要几分钟才能完成.
我需要一个解决方案,在pdf文档的页面中打印UIVIEw(用户绘制的),而无需重新创建整个文档.
任何链接,提示和其他有用的信息非常感谢.提前致谢
解决方法 在iOS上只有CGpdf,这不支持可变性,因为Mac的pdfdocument部分支持.您必须编写自己的解决方案来获取未修改页面的pdf流,并将它们与您正在创建的新页面合并.我开始了一个用于DTpdfdocument包装器的开源项目,该包装器模仿Mac上的那个,但到目前为止我在移动或修改页面时没有做任何工作:https://github.com/Cocoanetics/DTPDF
或者您可以使用许多可用的pdf框架之一. PSpdfKit是第一个浮现在脑海中的人.
总结以上是内存溢出为你收集整理的objective-c – 在特定页面中绘制现有PDF文档的内容全部内容,希望文章能够帮你解决objective-c – 在特定页面中绘制现有PDF文档的内容所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)