[ 
https://issues.apache.org/jira/browse/PDFBOX-3133?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15027238#comment-15027238
 ] 

Sridhar commented on PDFBOX-3133:
---------------------------------

Thanks John 

Slow performance observed and indicated in bug report is with 300 dpi in both 
PDFPageable() and PDFPrintable() constructors.  
Even with 300 dpi, which would have forced to use rasterization algorithm, the 
printout is slow 14 to 20 secs in 3 GB system ( redirection to MS XPS  file) 
and also actual  pritout in thermal printer with 2 GB system took 24 to 34 secs.
Another note: compared to 0 dpi in PDFPageable() and PDFPrintable() ctors, it 
took more time, indicating that it would not have used rasterization. 
With 600 dpi got outofMemory Exception in 3 GB machine.

Code snippet below
------------------------

   public void run() {  

         PDDocument pdDocument=new PDDocument();
         FileInputStream is = null ;
         File f = null ;
         try {
          f = new File("Test.pdf" ) ;
          is = new FileInputStream(f) ;
          pdDocument = PDDocument.load(is);     
          printWithPaper(pdDocument, "SLEEK") ;
     }

private static void printWithPaper(PDDocument document,  String receiptType) 
{
       PrinterJob job = PrinterJob.getPrinterJob();     
        job.setPageable(new PDFPageable(document, Orientation.AUTO, true, 300) 
) ;    
        Book book = new Book();         
        book.append(new PDFPrintable(document, Scaling.ACTUAL_SIZE, true, 300), 
getPageFormat("SLEEK") ,  document.getNumberOfPages()); 
        job.setPageable(book);  
        PrintRequestAttributeSet attr = new HashPrintRequestAttributeSet();
        job.print(attr);
}
        private static PageFormat getPageFormat(String receiptType) {
        PageFormat pageFormat = new PageFormat();
        pageFormat.setOrientation(PageFormat.PORTRAIT);
        Paper paper= pageFormat.getPaper();


        if ("SLEEK".equalsIgnoreCase(receiptType)) {
           paperWidth = 3.14;
            paperHeight = 50;
        }
        else if {
        //........

        } 
        paper.setSize(paperWidth * 72.0, paperHeight * 72.0);
        paper.setImageableArea(0, 0, paper.getWidth(), paper.getHeight());
        pageFormat.setPaper(paper);
        return pageFormat;
    }   


> PDFBox 2.0.0-RC2 and earlier 2.0.0 SNAPSHOT Versions print performance is 
> poor with systems having low RAM < 3GB and lower number of fonts.
> -------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: PDFBOX-3133
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-3133
>             Project: PDFBox
>          Issue Type: Improvement
>          Components: PDModel
>    Affects Versions: 2.0.0
>         Environment: MS Windows Systems with low RAM < 3GB and number of 
> fonts were less < 592 (or if desired fonts in PDF to be printed are not 
> available in local system ) 
>            Reporter: Sridhar
>            Assignee: John Hewson
>              Labels: performance
>             Fix For: 2.0.0
>
>
> PDFBox 2.0.0-RC1, SNAPSHOTS and RC2 versions print takes 15+ seconds.
> Steps to reproduce
> -------------------------- 
> Use Windows System with < 3 GB RAM
> Use Systems with less number of fonts or without specific fonts in PDF file  
> to be printed.
> Printing PDF file 
> Took 14 to 20 seconds in system with 3 GB RAM which had 522 foints
> Took 24 to 34 seconds in system with 2 GB RAM which had 90 fonts
> Took only 2.5 seconds in system with 8 GB RAM which had 1025 fonts. 
> Doubt
> -------- 
> Not browsed the code, but following is the doubt as causing performance issue.
> Though the code caches fonts by storing fonts in local .pdfbox.cache file 
> first time and caching fonts for subsequent times.
> Not clear whether the code updates the pdfbox fonts cache file if new fonts 
> are found in new PDF file to be printed, while printing subsequent times. 
> If the fonts in PDF file to be printed is not available in the .pdfbox.cache 
> file stored in local system/local system what is the behaviour?  Will the 
> code download fonts and update cache for subsequent times or is it limited by 
> fonts available in local system?  Looks like later is the case and 
> performance got hit either due to RAM or not constantly updating fonts cache 
> or due to un availability of fonts in local system.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: dev-h...@pdfbox.apache.org

Reply via email to