2012-01-17 103 views
5

我正在構建標籤打印機。它由一個標誌和一些文字組成,並不難。我已經花了3天的時間試圖讓原始SVG標誌畫到屏幕上,但SVG太複雜,使用太多的漸變等。如何提高ReportLab圖像質量?

所以我有一個高質量的位圖徽標(作爲JPG或PNG)我正在ReportLab畫布上繪製它。有問題的圖像比85 * 123px大得多。我希望ReportLab能夠嵌入整個事物並相應地擴展它。我是這樣做的:

canvas.drawImage('logo.jpg', 22+xoffset, 460, 85, 123) 

問題是,我的假設是不正確的。它似乎將屏幕分辨率縮小到85 * 123像素,這意味着打印時看起來不太好。

ReportLab是否有任何用於畫布或文檔的DPI命令,以便我可以保持質量清晰?

回答

1

我在寫問題時想到的一個選擇是:增加PDF的大小並讓打印機將事情排除。

如果我只是將所有數字乘以5並且打印機確實設法弄清楚了,我會接近350DPI ......但我做了一個相當的假設。

8

以前曾在ReportLab公司工作過,我可以告訴你,光柵圖像在包含在PDF中時不會經歷任何自動重採樣/縮小。您使用的85 * 123尺寸不是像素,而是像毫米或英寸這樣的物理單位的點(pt)。

我會建議使用不同質量的圖像打印PDF以確認這一點,或者使用PDF查看器進行非常非常遠的縮放。在PDF查看器中,它總是顯得有些模糊,因爲圖像被重新採樣兩次(一次在成像軟件中,然後再次轉換爲PDF查看器可用的像素)。

這是我將如何計算,以使像素什麼規模的光柵圖像爲它在給定的物理尺寸的打印效果不好:

假設我要的照片爲2英寸寬,也有72分一英寸,所以我的代碼中的寬度應該是144.我知道打印時的清晰分辨率是300dpi(每英寸點數),因此光柵圖像保存在600px寬。