我正在点阵打印机中打印文本,并且正在使用 swing 的(JTextArea)及其打印方法。该方法打印了一个过大的 a4 页面,并且预定义的页面大小都不适合我。我希望能够只打印我发送到打印机的内容并停在那里,这样它就不会浪费试图填充 a4 页面的空白。
将文本发送到“lpt1”有效,但打印机用于打印的字体无用(我需要能够设置字体)。
如果需要,代码是这样的。它接受一个字符串 (s),用该字符串创建一个 JTextArea (ta),然后在其上使用 print 方法。
(defn print-string
"Uses JtextArea."
[s]
(let [ta (JTextArea. s)]
(.setFont ta (create-font (get-current-font) (get-current-font-size)))
(try
(.print ta nil nil false nil nil false)
(catch Exception _
(.print ta)))))
编辑:我正在添加一个 java 版本:
public static void print_string(String s) {
JTextArea ta = new JTextArea(s);
ta.setFont(create_font(get_current_font(), get_current_font_size()));
try {
ta.print(null, null, false, null, null, false);
} catch (Exception e) {
ta.print();
}
}