【问题标题】:Swift: Getting better quality image when rendering PDFSwift:渲染 PDF 时获得更好质量的图像
【发布时间】:2019-02-08 18:24:18
【问题描述】:

我正在从几个情节提要视图中渲染 PDF,一切都运行良好...除了一个例外。即使原始图像没有边框,大型圆形图像也会出现窄而暗的边框。这是一个非常轻的图像,所以我明白为什么它可能无法完美渲染。我找到了一些较旧的解决方案,但到目前为止没有任何帮助。谢谢!

private func toPDF(views: [UIView]) {
        let pageWidth = 612
        let pageHeight = 792         
        let pdfData = NSMutableData()

        UIGraphicsBeginPDFContextToData(pdfData, CGRect(x: 0, y: 0, width: pageWidth, height: pageHeight), nil)
        let context = UIGraphicsGetCurrentContext()

        for view in views {
            UIGraphicsBeginPDFPage()
            view.layer.render(in: context!)
        }
}

【问题讨论】:

  • 您是否尝试过将页面宽度和高度乘以屏幕比例?
  • 我确实在较早的帖子中看到了该解决方案,尽管我承认它对我来说没有意义。我最终得到了一个仍然有边框并且只有所需大小的一小部分的 PDF。为了获得屏幕比例,我将 300 除以 72。然后我将页面宽度和高度乘以结果。
  • 我的意思是像素不是英寸。做width * UIScreen.main.scale。顺便说一句,您应该发布您是如何得出 pageWidth 值的。
  • 页面宽度和高度为 US Letter - 612 x 792 磅。我会玩规模,但我不明白我想要完成什么。如果我缩放文档,我的 PDF 将不再是正确的大小......对吗?

标签: swift pdf render


【解决方案1】:

解决方案很简单。我使用的是具有透明背景的 PNG,这导致了 PDF 中的边框,如下所示。当我将 PNG 更改为纯白色背景时,边框消失了。

【讨论】:

猜你喜欢
  • 2013-03-24
  • 1970-01-01
  • 2013-11-03
  • 2017-01-09
  • 1970-01-01
  • 1970-01-01
  • 2010-11-19
  • 2011-04-27
  • 2022-07-30
相关资源
最近更新 更多