Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 打印页面宽度大于高度的jpanel数据_Java_Swing_Printing_Desktop Application_Jpanel - Fatal编程技术网

Java 打印页面宽度大于高度的jpanel数据

Java 打印页面宽度大于高度的jpanel数据,java,swing,printing,desktop-application,jpanel,Java,Swing,Printing,Desktop Application,Jpanel,在我的桌面应用程序中,我需要在点阵打印机上打印jPanel数据,其中纸张大小应为10x6。在java中,我们有一个宽度不应大于高度的限制。但我怎样才能通过跨越这个极限来完成我的任务呢。如果我将页面格式设置为高度小于宽度,则将其视为A4纸张,并将纸张底部送入 如果我没有指定页面格式,它可以很好地打印,但会提供大量的边距(上、下、左、右)。我无法更改边距。如果只设置页边距,则将页面视为A4,并在底部提供提要 我需要将数据打印在预打印页面上并对齐。有没有其他方法可以做到这一点。我可以使用横向吗?如果可

在我的桌面应用程序中,我需要在点阵打印机上打印jPanel数据,其中纸张大小应为10x6。在java中,我们有一个宽度不应大于高度的限制。但我怎样才能通过跨越这个极限来完成我的任务呢。如果我将页面格式设置为高度小于宽度,则将其视为A4纸张,并将纸张底部送入

如果我没有指定页面格式,它可以很好地打印,但会提供大量的边距(上、下、左、右)。我无法更改边距。如果只设置页边距,则将页面视为A4,并在底部提供提要

我需要将数据打印在预打印页面上并对齐。有没有其他方法可以做到这一点。我可以使用横向吗?如果可以,如何控制文本流(从底部到顶部-X轴)

这是我的密码

PrinterJob job = PrinterJob.getPrinterJob();
PageFormat pageFormat = job.defaultPage();
pageFormat.setOrientation(PageFormat.LANDSCAPE);
job.setPrintable(this,pageFormat);
try {
          job.print();
     } catch (PrinterException ex) {
      System.out.println(ex);
     }
油漆方法

    public int print(Graphics g, PageFormat pf, int page) throws PrinterException {

        if (page > 0) { 
            return NO_SUCH_PAGE;
        }
        g.setFont(new java.awt.Font("Sans Serif", java.awt.Font.PLAIN, 10));
        Graphics2D g2d = (Graphics2D)g;
        AffineTransform old = g2d.getTransform();
        if (pf.getOrientation() == PageFormat.LANDSCAPE) {
            g2d.rotate( -Math.PI / 2, 0, 0);
            g2d.translate( -pf.getImageableWidth(), 0);
        }
        else {
            g2d.rotate(Math.PI / 2, 0, 0);
            g2d.translate(0, -pf.getImageableHeight());
        }
        jPanel1.printAll(g2d);
        g2d.setTransform(old);
        //g2d.translate(70, 30);
        return PAGE_EXISTS;
    }

提前感谢。

将PageFormat的方向设置为横向,并旋转内容。在print()方法中,旋转并平移内容

Graphics2D g2d = (Graphics2D) g;
AffineTransform old = g2d.getTransform();
if (contentOrientation == ORIENTATION_DOWN_UP) {
    g2d.rotate( -Math.PI / 2, 0, 0);
    g2d.translate( -w, 0);
}
else {
    g2d.rotate(Math.PI / 2, 0, 0);
    g2d.translate(0, -h);
}
//paint all your content here
g2d.setTransform(old);

将PageFormat的方向设置为横向并旋转内容。在print()方法中,旋转并平移内容

Graphics2D g2d = (Graphics2D) g;
AffineTransform old = g2d.getTransform();
if (contentOrientation == ORIENTATION_DOWN_UP) {
    g2d.rotate( -Math.PI / 2, 0, 0);
    g2d.translate( -w, 0);
}
else {
    g2d.rotate(Math.PI / 2, 0, 0);
    g2d.translate(0, -h);
}
//paint all your content here
g2d.setTransform(old);

修改后,它几乎在页面底部打印,并将纸张输送到下一页的中间,同时它仅打印面板内容的一半。修改后,它几乎在页面底部打印,并将纸张输送到下一页的中间,同时它仅打印面板内容的一半。