[ 
https://issues.apache.org/jira/browse/PDFBOX-985?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andreas Lehmkühler resolved PDFBOX-985.
---------------------------------------

       Resolution: Fixed
    Fix Version/s: 1.8.0
         Assignee: Andreas Lehmkühler

This should work after resolving PDFBOX-1138.

Set to resolved
                
> PDF Printing Orientation
> ------------------------
>
>                 Key: PDFBOX-985
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-985
>             Project: PDFBox
>          Issue Type: Bug
>          Components: PDModel
>    Affects Versions: 1.5.0
>            Reporter: Roberto Mazzola
>            Assignee: Andreas Lehmkühler
>              Labels: print
>             Fix For: 1.8.0
>
>
> I try to print a PDF using the following code
> {code}
> // aDevice is the printer device Name
> // aData is a byte array of my PDF (stored on a DB)
> ....
>                       vPrintService = this.getPrintService(aDevice);
>                       vPrinterJob = java.awt.print.PrinterJob.getPrinterJob();
>                       vPrinterJob.setPrintService(vPrintService);
>                       vPDDocument = this.getPDDocument(aData);
>                       vPDDocument.silentPrint(vPrinterJob);
> --
> {code}
> {code: Suppors methods}         
> public PrintService getPrintService(String aDevice) throws Exception
> {
>       javax.print.PrintService[] vPrintServices = 
> java.awt.print.PrinterJob.lookupPrintServices();
>     boolean printerFound = false;
>     for(int i = 0; i < vPrintServices.length; i++)
>     {
>       if(vPrintServices[i].getName().trim().equals(aDevice.trim()))
>               return vPrintServices[i];
>     }
>        return null;
> }
> public PDDocument getPDDocument(GenericBean aData) throws Exception
> {
>    byte[] vPageData  =  (byte[])aData.getValueAtKey("Byte");
>    return PDDocument.load( new ByteArrayInputStream(vPageData) );
> }
> {code}
> But if my PDF is LANDSCAPE and the printer instead as PORTRAIT as default, 
> PORTRAIT wins and so the report is not well printed.
> Checking the code (based on 1.5.0 and also from lateast trunk) for class 
> PDPageable... probably I found the issue.. and I believe that the 
> implementation is not right (at least from my point of view).
> Get a look to the getPageFormat method.
> As first it get the page format from the job (PrinterJob)
>         PageFormat format = job.defaultPage();
> after it get the (optional) print  service from the job (Printer Job)
>      PrintService service = job.getPrintService(); // can be null
> If the printer service is not null and it have LANDSCAPE as orientation.. it 
> force LANDSCAPE as orientation in the page format otherwise it force it as 
> PORTRAIT
> But... in my mind, it should get the orientation from the PDF Page.. and not 
> from the printer job / print service.
> I can print documents with different orientation on the same printer and also 
> I can have in the same document pages with different orientation.
> Of couse I can make same mistake and read the code in the wrong way... (I 
> found this project yesterday....)
> Maybe the "findRotation" method on the PDPage should be invoked and 
> "checked".. or something else....
> It this a bug on PDFBox ?
> thanks
> Roberto

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to