我想创建一个将在Swing应用程序中打印的HTML的小预览。基本上,它将以PageFormat类的大小(即可打印页面的大小)显示页面,但大小为页面的1/4或更小。创建预览的打印的HTML页面
到目前为止,我已经试过如下:
//Create components
JDialog frame = new JDialog(new JFrame("Test"), "Test", true);
JPanel panel = new JPanel(){
@Override
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.scale(0.5,0.5);
super.paintComponent(g2);
}};
PageFormat pf = new PageFormat();
Dimension dimension = new Dimension();
dimension.setSize(pf.getImageableWidth(), pf.getImageableHeight());
panel.setPreferredSize(dimension);
panel.add(new JEditorPane("text/html", "<i>Testing, testing, one two three</i>"));
//Finalize everything
frame.setContentPane(panel);
frame.pack();
frame.setVisible(true);
不幸的是,这将创建一个JPanel是完整的页面大小,但缩放的JEditorPane到屏幕因为尺寸的左上四分之一JPanel似乎也没有扩展。另外,如果您单击JEditorPane,它将以全尺寸显示。我怎样才能得到我想要的效果?另外,这并不一定是一个可编辑的HTML页面,所以如果有一些巧妙的解决方案不涉及直接显示HTML,我可以接受。
调用setMaximumSize()代替setPreferredSize()将JPanel缩小为JLabel大小的4倍。调用两者都会产生与描述相同的情况。我不确定为什么将pf.getImageableWidth()分配给int(通过'Double.inValue()')会产生任何影响。此外,重点是在实际打印项目之前创建此预览。 – Thunderforge