You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@pdfbox.apache.org by Gyenes István <gi...@mve.hu> on 2013/11/21 11:19:16 UTC
PDDocument getPrintable endless loop - resolved
*Dear Everibody!*
*I found a solution!**
**
**The print method is same:*
PDDocument pdf =
PDDocument.load("c:\\Java\\nb74_projects\\lpu\\AISB08.pdf");
PrintService[] ps = PrinterJob.lookupPrintServices();
int x=0;
for (x=0; x<ps.length; x++) System.out.println(ps[x].getName());
for (x=0; x<ps.length; x++) if
(ps[x].getName().compareTo("Canon Generic PCL6 Driver")==0) break;
PrinterJob pj = PrinterJob.getPrinterJob();
pj.setPrintService(ps[x]);
PrintRequestAttributeSet pset = new HashPrintRequestAttributeSet();
pset.add(MediaTray.MIDDLE);
pj.setPrintable(new LpuPrintable123(pdf.getPrintable(0)));
pj.print(pset);
*But I use an own Object: LpuPrintable, and this Object print only one
page:*
public class LpuPrintable123 implements Printable{
private Printable po;
public Printable getPo() {
return po;
}
public void setPo(Printable po) {
this.po = po;
}
public int print(Graphics graphics, PageFormat pageFormat, int
pageIndex) throws PrinterException {
if (pageIndex<1) {
System.out.println(pageIndex);
return po.print(graphics, pageFormat, pageIndex);
}
return Printable.NO_SUCH_PAGE;
}
public LpuPrintable123(Printable po) {
super();
this.po = po;
}
}
*It is may be help for others!*
*Stephen Gyenes*
2013.11.21. 9:02 keltezéssel, Gyenes István írta:
> Dear Gilad Denneboom,
>
> thank you advices, I modify my code, but it still not working.
> The print command looping and newer end. Not one page send to printer,
> unending page number is sending.
> This is my code now:
> PDDocument pdf =
> PDDocument.load("c:\\Java\\nb74_projects\\lpu\\AISB08.pdf");
> PrintService[] ps = PrinterJob.lookupPrintServices();
> int x=0;
> for (x=0; x<ps.length; x++) if
> (ps[x].getName().compareTo("Canon Generic PCL6 Driver")==0) break;
> PrinterJob pj = PrinterJob.getPrinterJob();
> pj.setPrintService(ps[x]);
> PrintRequestAttributeSet pset = new
> HashPrintRequestAttributeSet();
> pset.add(MediaTray.TOP);
> pj.setPrintable(pdf.getPrintable(0));
> System.out.println("print start");
> pj.print(pset);
> System.out.println("this message never appear");
>
> Anybody know how should I print one page from a pdf to a specified tray?
>
>
>
>
>
> 2013.11.20. 16:53 keltezéssel, Gilad Denneboom írta:
>> Not sure why it's happening, but why not add a break command when you
>> find
>> the printer you want to print to (after you sent the print command, of
>> course)?
>> Also, Java arrays are zero-based, so the initial value of x should
>> probably
>> be 0, not 1.
>>
>>
>> On Wed, Nov 20, 2013 at 4:26 PM, Gyenes István <gi...@mve.hu> wrote:
>>
>>> Hi All!
>>>
>>> I'm new in BDFBox.
>>> I try to print one page to specified tray, but it is make an endless
>>> printing loop. I do something wrong or it is a bug in the library?
>>> My source code is:
>>> PDDocument pdf =
>>> PDDocument.load("c:\\Java\\nb74_projects\\lpu\\AISB08.
>>> pdf");
>>> PrintService[] ps = PrinterJob.lookupPrintServices();
>>> for (int x=1; x<ps.length; x++) {
>>> System.out.println(ps[x].getName());
>>> if (ps[x].getName().compareTo("Canon Generic PCL6
>>> Driver")==0) {
>>> PrinterJob pj = PrinterJob.getPrinterJob();
>>> pj.setPrintService(ps[x]);
>>> PrintRequestAttributeSet pset = new
>>> HashPrintRequestAttributeSet();
>>> pset.add(MediaTray.TOP);
>>> pj.setPrintable(pdf.getPrintable(0));
>>> pj.print(pset);
>>> }
>>> }
>>>
>>> Big thanks for any help!
>>> Stephen Gyenes
>>>
>
>