我该如何在iOS上创建更高dpi的PDF?

6

我正在创建一个PDF文件,作为我的应用程序中要使用的邮件附件。虽然它运行良好,但是我不知道如何创建除了72dpi PDF之外的任何内容。

我开始的步骤如下:

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

请在上下文中完成所有Quartz绘制工作,这样做可以确保一切正常。但是,如果我增加介质框(mediabox),我只能改变页面的大小。
我确定我忽略了一些明显的东西,但我找不到指定dpi的地方在哪里?


PDF是一种矢量格式。除非您指的是嵌入的位图,否则不存在“dpi”的概念。坐标是浮点数,因此如果您想要比一个点更小的东西,只需以这种方式指定即可。也许我漏掉了什么... - Nicholas Riley
@Nicholas 我的意思是在PDF上下文内绘制(位图)图像,重新阅读我的问题后我意识到在这方面并不是很清楚,抱歉。 - Pieter
CGImage实际上也没有分辨率的概念(UIImage有,但这不能帮助您处理PDF)。如果您只是创建一个具有所需尺寸的图像,然后使用CGContextDrawImage将该图像绘制到PDF上下文中大小为所需大小的矩形中,它会按比例缩放图像。 (我现在无法测试这一点,这就是为什么我不会将其发布为答案的原因。) - Nicholas Riley
@Nicholas,这就是我试图做的。在页面内部的矩形框中绘制高DPI位图,但它看起来非常像素化和低分辨率...我一定是漏掉了什么,明天我会再试一试,感谢您的帮助。 - Pieter
@Nicholas 好的,我现在感觉有点傻;) 显然,由于某种原因,(旧的)低分辨率图像没有被替换到设备上...首先进行清理就解决了一切。感谢您的帮助。 - Pieter
好吧,如果这能让你感觉好受些的话,你可以怪 Xcode:-) 很高兴你解决了它。 - Nicholas Riley
1个回答

0

Xcode没有在我的设备上替换图像文件,因此仍在使用旧的(低分辨率)文件,将应用程序完全从设备中删除,并进行干净的构建,解决了我的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接