gpt4 book ai didi

java - 如何打印 JTextPane 的内容

转载 作者:行者123 更新时间:2023-12-01 13:16:31 26 4
gpt4 key购买 nike

我有应该打印 JTextPane 控件内容的代码,但页面上没有打印任何内容。页面空白。这是我的代码:

 @Override
public void actionPerformed(ActionEvent arg0) {
// kod za printanje sadrzaja iz JTextPane-a
/*
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintable(new Editor());
boolean ok = job.printDialog();
if(ok){
try{
job.print();
}
catch(PrinterException pex){
JOptionPane.showMessageDialog(new Editor(), "Greška pri printanju dokumenta!", "Poruka", JOptionPane.INFORMATION_MESSAGE);
}
*/
try{
//System.out.println(tekst1.getText());
// PrintRequestAttributeSet attr_set = new HashPrintRequestAttributeSet();
// attr_set.add(MediaSizeName.ISO_A4);
tekst1.setContentType("text/html");


tekst1.print();
}
catch(Exception pex){
pex.printStackTrace();
}


}
};

谁能帮帮我吗?

最佳答案

由于您已将内容类型定义为 text/html,因此请在设置 HTML 编辑器套件后尝试。

jTextPane.setEditorKit(new HTMLEditorKit());

或者您可以通过将内容类型设置为 text/pain 来尝试不使用任何编辑器套件

jTextPane.setContentType("text/plain");

或删除内容类型。

//jTextPane.setContentType("text/html");

有关详细信息,请参阅方法的 Java 文档 JEditorPane.setContentType()

<小时/>

带有屏幕截图的示例代码:

注意:将打印文件另存为 Microsoft XPS Document Writer

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextPane;
import javax.swing.text.html.HTMLEditorKit;

public class PrintJTextPane {
public static void main(String[] args) {
JFrame jframe = new JFrame();
jframe.setSize(500, 200);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

final JTextPane jTextPane = new JTextPane();

jTextPane.setEditorKit(new HTMLEditorKit());

JButton btn = new JButton("Print");
btn.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent arg0) {
try {
jTextPane.setContentType("text/html");

boolean done = jTextPane.print();
if (done) {
JOptionPane.showMessageDialog(null, "Printing is done");
} else {
JOptionPane.showMessageDialog(null, "Error while printing");
}
} catch (Exception pex) {
JOptionPane.showMessageDialog(null, "Error while printing");
pex.printStackTrace();
}
}
});

jframe.add(btn, BorderLayout.SOUTH);

jframe.add(jTextPane);
jframe.setVisible(true);
}
}

C1

C2

C3

关于java - 如何打印 JTextPane 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22428725/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com