用java写了一个打印机,遇到打印纸张输出的问题,打印纸张有A4或者A5,当设置A5纸张的时候需要横向打印输出
下面贴出部分代码,用于解决当打印纸张为A5纸张时,文件横向打印
DocPrintJob jon = printService.createPrintJob();
// 设置纸张大小,也可以新建MediaSize类来自定义大小
// 文件类型
DocFlavor flavor = DocFlavor.INPUT_STREAM.JPEG;
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
DocAttributeSet das = new HashDocAttributeSet();//打印属性设置
switch (paperSize){
case "A4":
pras.add(MediaSizeName.ISO_A4); //A4默认
das.add(OrientationRequested.PORTRAIT);//(文件的)竖向的;纵向打印格式的
break;
case "A5":
pras.add(MediaSizeName.ISO_A5); //A5横向打印
das.add(OrientationRequested.LANDSCAPE);//(文件的)横向打印格式
break;
default:
pras.add(MediaSizeName.ISO_A4); //A4默认
das.add(OrientationRequested.PORTRAIT);//(文件的)竖向的;纵向打印格式的
}
Doc doc = new SimpleDoc(swapStream,flavor,das);
jon.print(doc,pras);