java - Java 打印中的方向没有改变

标签 java swing

我想用横向打印来打印jpanel。我尝试了以下代码,但文本打印不正确。如果我删除了 pf.setOrientation(PageFormat.LANDSCAPE); 那么它将在纵向页面中打印。横向打印的步骤是什么?

if(arg0.getActionCommand().equals("print")){
            final PrinterJob job = PrinterJob.getPrinterJob();
             job.setJobName("Printing");

             job.setPrintable (new Printable() {    
                public int print(Graphics pg, PageFormat pf, int pageNum){
                    if (pageNum > 0){
                    return Printable.NO_SUCH_PAGE;
                    }
                    pf.setOrientation(PageFormat.LANDSCAPE);
                    Graphics2D g2 = (Graphics2D) pg;                
                    g2.translate(pf.getImageableX(), pf.getImageableY());
                    panel01.printAll(g2);
                    return Printable.PAGE_EXISTS;
                }
             });
             boolean ok = job.printDialog();
             if (ok) {
                 try { 
                      job.print();
                 } catch (PrinterException ex) {

                 }
        }

最佳答案

使用job.setPageable(yourImplementationOfPageableHere)。然后就可以实现

PageFormat getPageFormat(int pageIndex) 

为每个页面返回所需页面格式的接口(interface)方法。

关于java - Java 打印中的方向没有改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18591136/

相关文章:

java - IzPack错误: Invalid base directory on jenkins-ci

java - Android - 设置 ImageAdapter NullPointerException

java - 叠加几个 JProgressBars?

java - 动画对象在两点之间移动

java - 无法启动 Activity ComponentInfo android.view.InflateException : Binary XML file line #31

java - 实体的 Hibernate 和动态包装器

java - 面向对象的二维图形方法 : delegating JPanel clicks to painted objects

java - 仅使用直线和仿射变换来绘制多边形

java - JTextPane 不会换行

java - 在 JDialog 中创建 JTabbedPane 并使框架可用