【问题标题】:PDF rendering with white lines on top/bottom, left/right edgesPDF 渲染在顶部/底部、左/右边缘带有白线
【发布时间】:2013-04-01 21:34:55
【问题描述】:

我在几个 iOS 应用程序中使用(优秀的)vfr-reader。它就像一个魅力,但我在渲染一些 PDF 文件时遇到了问题。

在 VFR-Reader 中,我在顶部和底部,和/或左右边缘看到白线,这对于整页照片来说非常烦人。

它们出现在渲染页面和 ThumbsViewController 中的页面缩略图中:

放大时白线变得(一点)变大:

(底部边缘,虽然在白色页面背景下很难看到)

我可以通过修改来改变它们的颜色

CGContextSetRGBFillColor(context, 1.0f, 1.0f, 1.0f, 1.0f); // White

在 ReaderContentPage.m/drawLayer 中。

我天真地尝试将 RGBFillColor 设置为黑色,但 PDF 中的所有文本页面(通常为白色背景)也会显示为全黑。

我认为问题在于某些纵横比/PDF 页面尺寸,由于某种原因不能完美地填充绘图区域,因此白色背景颜色“渗出”。

PDF 本身看起来不错,它们在 Safari 和 GoodReader 中呈现完美(没有白线)。

如果有任何提示如何解决这个问题,或者我应该调查的总体方向,我将不胜感激。

【问题讨论】:

  • 您有什么特别的原因要使用 VFR 吗?为什么不使用 Safari 或 GoodReader,因为它们工作正常?
  • 因为我需要一个开源 PDF 库来包含在我自己的应用程序中,而不是一个完整的、独立的 PDF 阅读器应用程序。
  • 如何在 UIWebView 中打开 pdf 文件?由于 Safari 可以读取它们,如果将它们加载到 UIWebView 中,您应该也可以这样做。
  • 不,我已经在使用 VFR,因为它可以做很多 UIWebView 中显示的 PDF 不能做的事情。
  • 你能发一个示例 PDF 文件让我看一下吗?

标签: ios pdf core-graphics pdfrenderer vfr-reader


【解决方案1】:

VFR 的作者通过邮件回复了我:

"我怀疑是PDF页面大小不完全匹配造成的 显示页面的 CATiledLayer 支持的 UView 的大小。什么时候 PDF 页面由 iOS 呈现,它在一个方面适合,因此离开 白色边框。在 ReaderContentPage.m 中,在 -drawLayer:inContext 中: 方法,尝试在此函数调用中将 true 更改为 false: CGPDFPageGetDrawingTransform(_PDFPageRef, kCGPDFCropBox, self.bounds, 0, 真)"

确实解决了这个问题!

(为了修复缩略图,我在 ReaderThumbRender.m 中修改了同一行)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-18
    • 2021-12-04
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-06
    • 1970-01-01
    相关资源
    最近更新 更多