java - 从 JEditorPane 打印

标签 java swing printing

(我重写了原来的问题。问题是一样的。)

上面的示例代码不打印图像。它出现在窗口中但未打印。

public static void main(String[] args)  {

        final JEditorPane ed = new JEditorPane(
                "text/html",
                "<p>Test<br><img  src='http://www.google.es/images/logos/ps_logo2.png'></p>");

        JFrame f = new JFrame();
        f.setLayout(new BorderLayout());
        f.add(ed);

        JButton b = new JButton("Print");
        f.add(b,BorderLayout.SOUTH);
        b.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ae) {
                try {
                    ed.print();
                } catch (PrinterException ex) {
                    System.err.println(ex);
                }
            }
        });

        f.pack();
        f.setVisible(true);
    }

最佳答案

现在明白了。 “ secret ”是拦截图片加载过程并指示图片应该同步加载。

ed.setEditorKit(new HTMLEditorKit() {

            @Override
            public ViewFactory getViewFactory() {
                return new HTMLFactory() {

                    @Override
                    public View create(Element elem) {
                        View view = super.create(elem);
                        if (view instanceof ImageView) {
                            ((ImageView) view).setLoadsSynchronously(true);
                        }
                        return view;
                    }
                };
            }
        });

关于java - 从 JEditorPane 打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4197669/

相关文章:

java - 从远程服务器获取环境变量

c# - 从 C# 启动 java 程序时出错

java - 更改 IntelliJ IDEA 左边框背景​​颜色

java - 如何在沙箱中运行不受信任的 Java Swing 应用程序?

java - CUPS - Cups4j - 定义页面/媒体大小

java - OSX 上的 Elasticsearch——Java

java - 不断更新和更改 JLabel 中的文本

java - 对多个 out.setText(); 的任何建议

windows - 如何从 ruby​​ 将原始打印机代码写入 Windows 打印机共享?

windows - v4 打印驱动器的虚拟打印机驱动程序 INF 配置