Как я могу создать PDF с более высоким разрешением на iOS?

#objective-c #ios #pdf #quartz-2d

#objective-c #iOS #PDF #quartz-2d

Вопрос:

Я создаю PDF-файл, который будет использоваться в качестве почтового вложения, внутри моего приложения. Который отлично работает, но я понятия не имею, как создать что-либо, кроме PDF с разрешением 72 dpi.

Я начинаю так

 CGRect mediaBox = CGRectMake(0, 0, 595, 842);
CGContextRef context = CGPDFContextCreateWithURL([NSURL fileURLWithPath:path], amp;mediaBox, NULL);
  

Я рисую все на Quartz внутри контекста, все работает хорошо, но, увеличивая mediabox, я могу изменить только размер страницы.
Я уверен, что упускаю из виду что-то очевидное, но я не могу найти, где указать dpi?

Комментарии:

1. PDF — это векторный формат. Такого понятия, как «dpi», не существует, если только вы не имеете в виду встроенные растровые изображения. Координаты указаны с плавающей запятой, поэтому, если вам нужно что-то меньшее, чем точка, просто укажите это таким образом. Возможно, я что-то упускаю…

2. @Николас Я имел в виду рисование (растровых) изображений в контексте PDF, перечитывая мой вопрос, я понимаю, что в этом отношении все было почти ясно, мои извинения

3. Итак, в CGImage на самом деле также нет понятия разрешения (в UIImage есть, но это не поможет вам с PDF). Это должно сработать, если вы просто создадите изображение с нужными вам размерами, а затем с помощью CGContextDrawImage добавите изображение в контекст PDF в прямоугольнике нужного вам размера; изображение будет соответствующим образом масштабировано. (Я не могу протестировать это прямо сейчас, поэтому я не публикую это в качестве ответа.)

4. @Nicholas это в значительной степени то, что я пытался, нарисовать растровое изображение с высоким разрешением внутри прямоугольника на странице, но оно выглядит очень неровным и с низким разрешением… Должно быть, я что-то упускаю, я посмотрю еще раз завтра, спасибо за помощь

5. @Nicholas хорошо, сейчас я чувствую себя довольно глупо ;), по-видимому, (старые) изображения с низким разрешением, которые по какой-то причине не заменялись на устройстве … сначала все исправил clean. Спасибо за помощь.

Ответ №1:

Xcode не заменял файлы изображений на моем устройстве, поэтому старые файлы (с низким разрешением) все еще использовались, полностью удалив приложение с устройства и выполнив чистую сборку, я устранил свои проблемы.