我正在建造一个标签打印机.它由一个标志和一些文字组成,而不是很难.我已经花了3天时间尝试将原始SVG徽标绘制到屏幕上,但SVG太复杂,使用了太多的渐变等.
所以我有一个高质量的位图徽标(作为JPG或PNG),我在ReportLab画布上绘制它.有问题的图像远大于85*123px.我这样做希望ReportLab会嵌入整个内容并相应地进行扩展.我是这样做的:
canvas.drawImage('logo.jpg', 22+xoffset, 460, 85, 123)
Run Code Online (Sandbox Code Playgroud)
问题是,我的假设不正确.它似乎在屏幕分辨率下将其缩小到85*123px,这意味着它在打印时看起来不太好.
ReportLab是否有任何用于画布或文档的DPI命令,因此我可以保持质量理智?
之前曾在ReportLab公司工作,我可以告诉您光栅图像在包含在PDF中时不会经历任何自动重新采样/缩减.您使用的85*123尺寸不是像素,而是点(pt),它是一个物理单位,如毫米或英寸.
我建议使用不同质量的图像打印PDF以确认这一点,或使用PDF查看器进行非常非常大的放大.在PDF查看器中它总是看起来有点模糊,因为图像被重新采样两次(一次在成像软件中,然后再次到PDF查看器可用的像素).
这就是我如何计算像素的大小来制作光栅图像,以便在给定的物理尺寸下打印得很好:
假设我希望图片宽2英寸,一英寸有72个点,所以我的代码宽度为144.我知道要打印的清晰分辨率是300dpi(每英寸点数),所以光栅图像是保存在600px宽.
我在写问题时想到的一个选择是:增加 PDF 的大小并让打印机整理内容。
如果我将所有数字乘以 5 并且打印机确实能够计算出结果,那么我的分辨率将接近 350DPI...但我只是做了一个假设。
| 归档时间: |
|
| 查看次数: |
3374 次 |
| 最近记录: |