4

我在几个 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 中呈现完美(没有白线)。

我很感激任何提示如何解决这个问题,或者我应该调查的一般方向。

4

1 回答 1

4

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

“我怀疑这是由于 PDF 页面大小与显示该页面的支持 CATiledLayer 的 UView 的大小不完全匹配造成的。当 iOS 呈现 PDF 页面时,它会在一个方面进行匹配,从而留下白色边框。在 ReaderContentPage .m,在 -drawLayer:inContext: 方法中,尝试在此函数调用中将 true 更改为 false:CGPDFPageGetDrawingTransform(_PDFPageRef, kCGPDFCropBox, self.bounds, 0, true)"

这确实解决了这个问题!

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

于 2013-04-05T15:51:17.307 回答