我正在使用PostScript語言描述統一排列的點的頁面。這些點是600dpi
,這意味着每英寸有600個點。我使用一位來表示PostScript中的每個點,空白爲1
,黑點爲0
。點的單元的打印PostScript文件時出現紋理條紋
我的PostScript文件:
%% SetPageSize
/setPageSize {<</PageSize [595 842] >> setpagedevice} def
setPageSize
%% Dot Code
gsave
/mm {2.834645 mul} def
1 mm 1 mm translate
5.76 5.76 scale
48 48 1 [48 0 0 -48 0 48]
{<
fff7ff7ff7ff
ffffffffffff
ffffffffffff
fdffffffffff
ffffffffff7f
ffffffffffff
ffffffffffff
ffffffffffff
fffff7ffffff
fffffffdffff
ffffffffffff
ffffffffffff
7ff7ff7ff7ff
ffffffffffff
ffffffffffff
ffffffffffff
ffffffffffff
ffffffffffff
fffefffffeff
ffffffffffff
f7ffffff7fff
ffffffffffff
ffffffffffff
ffffffffffff
7ff7ff7ff7ff
ffffffffffff
ffffffffffff
fffffffdffff
fffff7ffffff
ffffffffffff
ffbfffffffff
ffffffffffff
fffffffffff7
ffffffffffff
ffffffffffff
ffffffffffff
7ff7ff7ff7ff
ffffffffffff
ffffffffffff
ffffffffffff
f7ffffffffff
ffffffffffff
fffffffffffb
ffffffffffff
ffffffff7fff
7fffdfffffff
ffffffffffff
ffffffffffff
>}
image
grestore
上面的代碼表示的點的一個單位,這是在600dpi的
2.03mm*2.03mm
。translate
用於用戶空間移動到所需的位置,例如:假定一個單元是在
(1mm, 1mm)
的位置。它的正確單位是
(3.03mm, 1mm)
。其上位單位爲
(1mm, 3.03mm)
。
scale
用於將輸出dpi的改變爲600。因子由72*48/600 = 5.76
計算。矩陣
48 48 1 [48 0 0 -48 0 48]
是垂直和水平掃描像素。image
結構最後表示點的二進制值,它以十六進制表示。
這些點可以用GhostScript或Adobe-Illustrator打開,並在顯示器上顯示得非常清晰。
採樣點在AI中縮放4800%。
然而打印點出現紋理條紋。我使用的打印機是噴墨打印機Cannon ip2780和激光打印機FX DocuPrint CP105b。
600dpi(激光)打印結果。垂直紋理條紋不如800dpi明顯。
打印800dpi(激光)的結果。垂直紋理條紋更明顯。行2,4,6比行1,3,5輕。但點的密度應該相同。
有人可以幫助解釋打印機的奇怪行爲是如何發生的嗎?或者我編寫點的單位的方式是錯誤的。
我可以使用
translate
經常移動的用戶空間,尤其是位置是浮點值(不精度不夠)?我可以使用
scale
手動將dpi更改爲600.有沒有更改輸入dpi的方法?
在此先感謝!
我唯一的猜測是你正在與內置的半色調機器作鬥爭。後記主要是爲了從實際的點中抽象出來。我不知道如何解決這個問題。 –