无法通过点阵打印机上的java打印设置自定义页面大小
我们正在尝试通过点阵式打印机上的java打印。我们已经创建了具有自定义大小的纸张对象。但当它进入打印机时,它不接受自定义大小。它需要11英寸或12英寸的尺寸。下面是我们正在使用的代码。请提出解决办法无法通过点阵打印机上的java打印设置自定义页面大小,java,printing,graphics2d,page-size,dot-matrix,Java,Printing,Graphics2d,Page Size,Dot Matrix,我们正在尝试通过点阵式打印机上的java打印。我们已经创建了具有自定义大小的纸张对象。但当它进入打印机时,它不接受自定义大小。它需要11英寸或12英寸的尺寸。下面是我们正在使用的代码。请提出解决办法 PrinterJob job = PrinterJob.getPrinterJob(); // Get a PrinterJob. PageFormat format = job.defaultPage(); // Get the default page f
PrinterJob job = PrinterJob.getPrinterJob(); // Get a PrinterJob.
PageFormat format = job.defaultPage(); // Get the default page format, then ask the user to customize it.
Paper paper = format.getPaper(); // Note: Custom size of paper should be supported by attach Printer.
paper.setSize((PaperWidth*72),
(PaperHeight*72)); // Set Custom size of the Paper.
paper.setImageableArea(MarginLeft*72, MarginTop*72,
paper.getWidth() - MarginRight*72 - MarginLeft*72,
paper.getHeight()- MarginBottom*72 - MarginTop*72);
System.out.println(paper.getHeight());
format.setPaper(paper); // Set the paper.
PageFormat pf = job.validatePage(format);
Book bk = new Book(); // Set up a book, with exact no. of pages to be printable.
bk.append(new TestClass(), pf, numPages);
job.setPageable(bk); // Pass the book to the PrinterJob
////// OR set printable without book.
//// job.setPrintable(new TestClass(),format);
if (job.printDialog()) // Put up the dialog box
{
try
{
job.print(); // Print the job if the user didn't cancel printing.
}
catch (PrinterException ex)
{
}
我想您可能会发现打印对话框破坏了您的设置…我对打印对话框进行了注释,但输出也相同。好的,在validatePage调用之前和之后验证纸张大小,确保从页面格式检索纸张对象检查validatePage之前和之后的大小。是一样的。你试过用不同的打印机打印吗?我倾向于使用PDF输出选项(如果可用)进行打印测试。您是否在
作业之前转储了页面格式信息。打印
,并在可打印文件中转储。您可能会发现dot amtrix打印机无法处理自定义页面大小。。。