PDF рендеринг с белыми линиями сверху / снизу, слева / справа по краям

Я использую (отлично) vfr-ридер в нескольких приложениях для iOS. Это работает как шарм, но у меня проблемы с рендерингом некоторых файлов PDF.

В VFR-Reader я вижу белые линии сверху и снизу и / или слева и справа по краям, что очень раздражает на полностраничных фотографиях.

Они появляются на визуализированной странице и миниатюрах страниц в ThumbsViewController:

Миниатюры страниц с белыми линиями слева и справа

Белые линии становятся (немного) больше при увеличении:

(нижний край, хотя его трудно увидеть на белом фоне страницы)

увеличено

и я могу изменить их цвет, изменив

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

в ReaderContentPage.m / drawLayer.

Я наивно пытался установить RGBFillColor на черный, но тогда все текстовые страницы (обычно на белом фоне) в PDF также будут выглядеть черными.

Я предполагаю, что проблема заключается в некоторых аспектных соотношениях / размерах страницы PDF, которые по какой-то причине не полностью заполняют область рисования, поэтому белый фоновый цвет "кровоточит".

Сами PDF-файлы выглядят хорошо, они отлично отображаются (без белых линий) в Safari и GoodReader.

Буду признателен за любую подсказку, как это исправить, или за общее направление, которое я должен исследовать.

1 ответ

Решение

Автор VFR ответил мне по электронной почте:

"Я подозреваю, что это вызвано тем, что размер страницы PDF не совсем соответствует размеру UView с поддержкой CATiledLayer, который показывает страницу. Когда страница PDF отображается в iOS, она соответствует аспекту, оставляя белые границы. В ReaderContentPage.m, в -drawLayer:inContext: метод, попробуйте изменить истину на ложь в этом вызове функции: CGPDFPageGetDrawingTransform(_PDFPageRef, kCGPDFCropBox, self.bounds, 0, true)"

что действительно исправило проблему!

(Чтобы исправить эскизы, я изменил ту же строку в ReaderThumbRender.m)

Другие вопросы по тегам