0

我正在点阵打印机中打印文本,并且正在使用 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();
  }
}
4

0 回答 0