我正在通過機場將複雜的搖擺應用程序UI打印到物理打印機。我已經有Mac & Windows機器都打印到同一臺打印機。從Mac打印看起來很棒。從窗口打印看起來很不錯 - 一切都非常像素化,包括字體和圖形線條。從Mac和Windows上的swing打印 - postscript支持在哪裏?
一些挖掘顯示可用PrintServices是不同的平臺。
DocFlavor flavor = DocFlavor.INPUT_STREAM.POSTSCRIPT;
PrintRequestAttributeSet attrs = new HashPrintRequestAttributeSet();
PrintServiceLookup.lookupPrintServices(flavor, attrs);
從mac執行時,上面返回一個單元素數組。從窗口,它返回一個空數組。這導致我相信Windows正在向打印機發送一個72 DPI圖像,而不是PostScript數據。
這是不同的Windows JVM實現嗎?是否有任何解決方法可以在Windows上打印?我意識到我可以生成自己的350dpi光柵化圖像並將其發送給打印機,但這些內容會進入數百頁,如果可能的話,我真的很想避開那條路徑。
我偶然發現了這個問題,我知道這是一個古老而你可能意識到了這一點,但是第二行代碼是不必要的, `lookupPrintServices`允許第二個參數爲`null`,以防你不需要設置屬性。 – 2017-11-13 13:55:06