2013-03-14 47 views
1

我正在用java写一个java打印程序。我想发送一个PDF文件到打印机中的不同纸盒,我需要控制页面的愤怒。我不喜欢将printdialogbox命令打印出来。该方案是一个无声的打印机程序,所以我跑我面对一些问题,当我运行这段代码这个打印程序自动静音打印机程序

PageFormat format = job.defaultPage(); 
format.setOrientation(PageFormat.PORTRAIT); 
printRequestAttributeSet.add(printerTray); 
printRequestAttributeSet.add(Sides.ONE_SIDED); 

PageFormat pf = job.defaultPage(); 
Paper paper = new Paper(); 
double margin = 36; // half inch 
paper.setImageableArea(margin, margin, paper.getWidth() - margin*2, paper.getHeight() - margin*2); 
pf.setPaper(paper);`enter code here` 

job.setPrintable(new MyPrintable(), pf); 

PdfReader pdfReader = new PdfReader(); 
PDDocument document = pdfReader.loadPdf(pdfPath); 

job.setPageable(document); 
int firstno; 
int LastNo; 

printRequestAttributeSet.add(new PageRanges(firstno, LastNo)); 

//job.printDialog(printRequestAttributeSet); 

job.print();// 

。我无法设置AttributeSet,因此它不会发送到我想发送的托盘,而是自动发送。

+4

在那里有问题吗? – Dukeling 2013-03-14 10:49:09

+0

它的一个新问题。我在运行此代码时遇到了一些问题。我无法设置AttributeSet。所以它不发送我想发送的托盘。它会自动发送 – CrazyGuy 2013-03-14 10:57:39

+1

@ vkmss1986对于StackOverflow的问题,请尽可能多地提供详细信息。这包括您的问题的预期行为,相反情况的描述以及迄今为止尝试解决问题的内容。如果您看到任何错误或堆栈跟踪,请将它们发布。没有足够的信息,我们只能猜测你真正的问题是什么。 – cyroxx 2013-03-14 11:27:49

回答

0

我认为它可能是简单的:

job.print(printRequestAttributeSet); 

Reference

+0

我也这么做过。当我发送打印请求时抛出一个错误,说零包含。 – CrazyGuy 2013-03-14 11:09:46

+1

你能发布完整的错误信息吗? – cyroxx 2013-03-14 11:11:16

+0

程序中没有编程错误。我将使用printdialogbox添加工作代码。 printRequestAttributeSet.add(printerTray); \t \t printRequestAttributeSet.add(Sides.ONE_SIDED); \t \t PdfReader pdfReader = new PdfReader(); \t \t PDDocument document = pdfReader.loadPdf(pdfPath); \t \t \t \t job.setPageable(document); \t \t int firstno = 0; \t \t int LastNo = 0; \t \t \t \t printRequestAttributeSet.add(new PageRanges(firstno,LastNo)); \t \t \t \t job.printDialog(printRequestAttributeSet); \t \t \t \t job.print(printRequestAttributeSet); – CrazyGuy 2013-03-14 11:22:53