iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 在iPad上将UIView转换为PDF作为向量 – 有时呈现为位图,有时作为向量大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个iPad应用程序,我试图从UIView生成一个PDF,它几乎工作完美。

代码真的很简单如下:

UIGraphicsBeginPDFContextToFile( filename,bounds,nil );
UIGraphicsBeginPDFPage();
CGContextRef pdfContext = UIGraphicsGetCurrentContext();
[view.layer renderInContext:pdfContext];
UIGraphicsEndPDFContext();

这工作真的很好与一个奇怪的异常。如果视图在渲染到PDF之前已经在屏幕上,则视图上的UILabels将作为精彩向量呈现到PDF。如果视图还没有在屏幕上(IE的控制器是initWithNib等,但没有推送到导航控制器或任何东西),那么文本将呈现为位图在’ipad’分辨率。

这就像渲染到屏幕的行为设置视图,当我后来呈现为一个pdf上下文作为向量。

有没有一些方法我可以调用属性我可以设置在视图或图层或其他地方模仿这种行为,而不必在屏幕上显示视图?

这是与UIViewPrintFormatter有关吗?

解决方法

我发现使它的标签被渲染为矢量化的唯一方法是使用UILabel的子类与以下方法

/** Overriding this CALayer delegate method is the magic that allows us to draw a vector version of the label into the layer instead of the default unscalable ugly bitmap */
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx {
    BOOL isPDF = !CGRectIsEmpty(UIGraphicsGetPDFContextBounds());
    if (!layer.shouldRasterize && isPDF)
        [self drawRect:self.bounds]; // draw unrasterized
    else
        [super drawLayer:layer inContext:ctx];
}

这对我来说是个伎俩:标签是无光泽的,可以在生成的PDF视图中选择,并且在呈现到屏幕时表现正常。

大佬总结

以上是大佬教程为你收集整理的ios – 在iPad上将UIView转换为PDF作为向量 – 有时呈现为位图,有时作为向量全部内容,希望文章能够帮你解决ios – 在iPad上将UIView转换为PDF作为向量 – 有时呈现为位图,有时作为向量所遇到的程序开发问题。

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

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