• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 将 shinobi 图表打印成 PDF

[复制链接]
菜鸟教程小白 发表于 2022-12-12 19:58:53 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我的应用中有几个 shinobicharts,我想打印成 PDF 文件。其他一切,如普通 View 、标签和图像都可以正常工作,甚至显示网格、图例和网格标签。唯一缺少的是系列。所以基本上我会在 PDF 文件中打印一个空图表。

我按如下方式打印 PDF:

NSMutableData * pdfData=[NSMutableData data];
PDFPage1ViewController *pdf1 = [self.storyboard instantiateViewControllerWithIdentifier"DF1"];
pdf1.array1 = array1;
pdf1.array2 = array2;
pdf1.array3 = array3;
pdf1.array4 = array4;
UIGraphicsBeginPDFContextToData(pdfData, CGRectZero,nil);
CGContextRef pdfContext=UIGraphicsGetCurrentContext();
UIGraphicsBeginPDFPage();
[pdf1.view.layer renderInContext:pdfContext];
UIGraphicsEndPDFContext();

来自 PDF1PageViewController 的完全相同的代码在普通的 viewController 中绘制漂亮的图表,不会错过系列。 数组包含应显示的数据。

[编辑]

这段代码为我做了:

UIGraphicsBeginImageContextWithOptions(pdf1.view.bounds.size, NO, 0.0);
[pdf1.view drawViewHierarchyInRect:pdf1.view.bounds afterScreenUpdates:YES];
UIImage *pdf1Image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageView *pdf1ImageView = [[UIImageView alloc] initWithImage:pdf1Image];
[pdf1ImageView.layer renderInContext:pdfContext];

虽然事件轮在 drawViewHierarchyInRect 之后停止旋转,并且显示当前正在呈现的页面的标签也停止更新。有谁知道如何解决这个问题?



Best Answer-推荐答案


您遇到此问题的原因是图表的系列部分在 openGLES 中呈现,因此不会作为 renderInContext: 的一部分呈现。

您可以使用几个选项进行调查。首先是在iOS7的UIView上增加了一些快照方法。如果您的应用程序只能限制在 iOS7 上,那么 snapshotViewAfterScreenUpdates: 将返回一个 UIView,它是内容的快照。我认为以下(未经测试的)代码将起作用:

UIGraphicsBeginPDFPage();
UIView *pdfPage = [pd1.view snapshotViewAfterScreenUpdates:YES];
[pdfPage.layer renderInContext:pdfContext];
UIGraphicsEndPDFContext();

在 ShinobiControls 博客 http://www.shinobicontrols.com/blog/posts/2014/02/24/taking-a-chart-snapshot-in-ios7 上有更多详细信息。

如果不能将您的应用程序限制在 iOS7 上,那么您仍然可以实现您想要的结果,但它有点复杂。幸运的是,ShinobiControls 博客 (http://www.shinobicontrols.com/blog/posts/2012/03/26/taking-a-shinobichart-screenshot-from-your-app) 上有一篇博文描述了如何从图表创建 UIImage。这可以很容易地适应呈现到您的 PDF 上下文中,而不是在帖子中创建的图像上下文中。这篇文章附带了一个额外的代码片段,可在 github 上找到:https://github.com/ShinobiControls/charts-snippets/tree/master/iOS/objective-c/screenshot .

希望对你有帮助

山姆

关于ios - 将 shinobi 图表打印成 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22259349/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap