HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了objective-c – 在特定页面中绘制现有PDF文档的内容大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我正在为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,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文档的内容所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: