#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 не заменял файлы изображений на моем устройстве, поэтому старые файлы (с низким разрешением) все еще использовались, полностью удалив приложение с устройства и выполнив чистую сборку, я устранил свои проблемы.