在iOS 11以及可能的早期版本中,我们看到生成的PDF文件[使用UIGraphicsBeginPDFContextToData()/ UIGraphicsEndPDFContext()]在屏幕和某些打印机上看起来很好,但在其他打印机上(例如HP ColorLaser) M551和HP LaserJet Enterprise M806)文本行显示为黑条。我们如何摆脱所有媒体和打印机的黑条?
注意:对于黑色文本,条形图仅为黑色。条形颜色看起来与预期的文本颜色相匹配。
答案 0 :(得分:0)
经过大量调查后,我发现问题只出现在UILabel文本中,其中UILabel作为子视图添加到UIView中,UIView的图层随后被渲染到PDF上下文中。解决方法是在渲染UIView之后,使用CTLineDraw()及其来自CoreText的支持例程将文本直接呈现到PDF上下文中。
更新:Apple建议先将页面绘制成位图,然后将位图绘制到PDF中。
答案 1 :(得分:0)
使用UITextField代替UILabel也可以。