我正在编写一个使用Python的报告室库生成PDF文件的程序。基本上,我有两个要求:
到目前为止,我已经生成了pdf,并将颜色设置为CMYK / RGB。但我无法更改pdf文件的DPI。reportlab是否提供将dpi设置为指定的任何函数。
此外,在生成pdf之后,可以在Linux终端上运行以转换DPI的任何程序也可以被接受。
发布于 2013-05-29 15:23:43
PDF的由规范没有本机新闻部-它大部分是基于向量的(什么不是矢量图,通常是什么,你在那里的栅格化)。也就是你嵌入的图像将被光栅化(除非你的图像是矢量/svg)。另一只手上的pdf渲染器确实有“dpi”设置。例如,您可以在adobe阅读器中更改默认的'dpi‘(或每英寸pt-pi/point)(我见过的大多数呈现器都支持此操作)。

如果你想要打印300+ ' dpi‘,并且你有所有基于向量的内容,不要担心--印刷品店只是调整它们末端的dpi,然后’砰!‘即时300+ dpi (理论上他们可以选择无限高的渲染dpi --基于向量的技术的荣耀)。
如果你的图像是光栅化的,那么你会想做一些前期的数学来将dpi转换成点,其中点与现实世界的测量相关,而不管你看的是什么媒体。为了让事情变得更简单,它是1:1的关系(请参阅这里,drawImage(),通常,如果您想在打印机上使用300 dpi,并且您知道您想要拉伸300个点,并且您的图像当前设置为600 dpi,那么您知道您需要将图像的尺寸嵌入到它当前大小的1/2 (可以由drawImage()控制,其中它可以接受宽度/高度)。或者,如果你有一个较小的图像,并试图放大尺寸,这将就像在气球表面画,然后充气-它会被拉伸/扭曲的方式,你不会想(也是更好地开始大和缩小)。
(来源:PostScript参考,第12页)
光栅输出设备的分辨率是测量沿两个线性维的每单位距离的像素数。分辨率通常--但不一定--水平和垂直方向相同。制造商在设备技术和价格/性能权衡方面的决定创造了具有特色的分辨率范围: ·计算机显示器的分辨率相对较低,通常为每英寸75至110像素。 ·点阵打印机通常在每英寸100到250像素之间。 ·喷墨和激光扫描干法印刷技术能够达到每英寸300至1400像素的中等分辨率输出。 ·摄影技术允许每英寸2400像素或更高的分辨率。较高的分辨率产生了更好的质量和结果输出的fidelity,但以更高的成本实现。随着技术的进步和计算成本的降低,产品的分辨率越来越高。
阅读此回复:以前的图像质量问题
这里还有一条关于这个主题的旧帖子:关于reportlab listserv的前一个线程
HTH
https://stackoverflow.com/questions/16804196
复制相似问题