现出现这样的问题。
在程序中设置纸张大小为中一刀格式,当用到的打印机是默认打印机时打印效果正常,但当用到的打印机是非默认的打印机,打出来的是A4格式。
各位大侠,请问这是什么原因引起的?谢谢

解决方案 »

  1.   

    可我在程序中重新指定了Paper格式
      

  2.   


    public void run() {
                        pane.showStatus(Catalog.getString("Printing") + "...");
                        Dimension dimension = null;
                        if(getOrientation() == 1) {
                            dimension = new Dimension((int) (getPageWidth() * 72D),
                                                      (int) (getPageHeight() * 72D));
                        } else {
                            dimension = new Dimension((int) (getPageHeight() * 72D),
                                                      (int) (getPageWidth() * 72D));
                        }
                        try {
                            Enumeration enum = getStylePages();
                            PrinterJob printerjob = null;
                            if(printerjob == null) {
                                printerjob = StylePrinter.getPrinterJob();
                            }
                            Paper paper = new Paper();
                            PageFormat pageformat = printerjob.defaultPage();
                            if(dimension == null) {
                                dimension = new Dimension((int) paper.getWidth(),(int) paper.getHeight());
                            }
                            paper.setSize(dimension.width, dimension.height);
                            Margin margin=sheets[0].getMargin();
                            paper.setImageableArea(margin.left, margin.top, dimension.width,dimension.height);                        pageformat.setPaper(paper);
                            System.out.print(pageformat.getOrientation());
                            pageformat.setOrientation(getOrientation());                        StyleBook sb = new StyleBook(enum);
                            printerjob.setPageable(sb);
                            printerjob.validatePage(pageformat);                        if(printerjob.printDialog()) {
                                try {
                                    printerjob.print();
                                } catch(Exception exception) {
                                    ReportLog.print(exception, 4);
                                }
                            }