2010-07-19 63 views
6

我正在寻找一种方法来减少用Quartz生成的PDF大小。我在CGPDFContext中使用CGContextDrawImage绘制图像。我害怕的是图像保存为位图而不是JPEG。有没有办法来检查这一点,并在编写PDF时控制这种方式?减小用Quartz2D生成的PDF文件的大小

我也尝试在将图像写入PDF上下文之前降低图像的缩小比例,但最终我得到了更大的文件(尽管像素的页面大小更小)。

谢谢!

+0

你能说出你正在绘制什么样的几个特征,图像来自哪里以及结果文件有多大?您是否将文件传递给外部PDF压缩工具并查看了差异? – 2010-09-19 16:41:27

+0

图像是相机图像,以JPEG格式存储,然后读取到UIImage对象。所以我在CGPDFContext中画一个UIImage.CGImage。对于单个页面,文件大小例如为1.2MB。如果我尝试缩减比例,我会达到3 MB。使用压缩工具(石英滤镜),它更像500KB。 – Kamchatka 2010-09-19 21:17:10

+0

你能提供代码吗? – vikingosegundo 2010-09-21 01:35:05

回答

1

没有用于设置CGPDFContext的图像压缩设置的公共API。

+0

我还尝试了另一个可用压缩设置的库。模式看起来很相似:与PDF页面的大小相比,图像的大小并不重要。 – Kamchatka 2010-09-22 04:33:08

+0

也许尝试减少你正在编写的CGImage的颜色深度? 16位图像的大小将减半_if CGPDFContext以其源格式存储图像 – rpetrich 2010-09-22 23:28:33

+0

我查看了该图像,但找不到任何API来减少CGImage的深度。你会知道该怎么做吗? – Kamchatka 2010-09-23 05:54:27

0

我不是sur,如果你需要减少在iPhone的PDF或如果它是可以接受的在PC/Mac上减少它们。

在PC/Mac上,Adobe Acrobat Pro(商业产品不被误认为与ADOBE READER)具有PDF优化。菜单“Adavanced”>“PDF Optimizer ...”。这可以缩减图像,字体等。因为还有一个command-line interface (using AutoBatch)。这不便宜,但它可能是最好的PDF压缩器。