菜鸟教程小白 发表于 2022-12-12 19:58:53

ios - 将 shinobi 图表打印成 PDF


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

<p>我按如下方式打印 PDF:</p>

<pre><code>NSMutableData * pdfData=;
PDFPage1ViewController *pdf1 = ;
pdf1.array1 = array1;
pdf1.array2 = array2;
pdf1.array3 = array3;
pdf1.array4 = array4;
UIGraphicsBeginPDFContextToData(pdfData, CGRectZero,nil);
CGContextRef pdfContext=UIGraphicsGetCurrentContext();
UIGraphicsBeginPDFPage();
;
UIGraphicsEndPDFContext();
</code></pre>

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

<p>[编辑]</p>

<p>这段代码为我做了:</p>

<pre><code>UIGraphicsBeginImageContextWithOptions(pdf1.view.bounds.size, NO, 0.0);
;
UIImage *pdf1Image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageView *pdf1ImageView = [ initWithImage:pdf1Image];
;
</code></pre>

<p>虽然事件轮在 <code>drawViewHierarchyInRect</code> 之后停止旋转,并且显示当前正在呈现的页面的标签也停止更新。有谁知道如何解决这个问题?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您遇到此问题的原因是图表的系列部分在 openGLES 中呈现,因此不会作为 <code>renderInContext:</code> 的一部分呈现。</p>

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

<pre><code>UIGraphicsBeginPDFPage();
UIView *pdfPage = ;
;
UIGraphicsEndPDFContext();
</code></pre>

<p>在 ShinobiControls 博客 <a href="http://www.shinobicontrols.com/blog/posts/2014/02/24/taking-a-chart-snapshot-in-ios7" rel="noreferrer noopener nofollow">http://www.shinobicontrols.com/blog/posts/2014/02/24/taking-a-chart-snapshot-in-ios7</a> 上有更多详细信息。 </p>

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

<p>希望对你有帮助</p>

<p>山姆</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 将 shinobi 图表打印成 PDF,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/22259349/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/22259349/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 将 shinobi 图表打印成 PDF