[
https://issues.apache.org/jira/browse/PDFBOX-3133?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15041359#comment-15041359
]
Sridhar edited comment on PDFBOX-3133 at 12/4/15 12:24 PM:
-----------------------------------------------------------
Dear Tilman
I need one urgent help
Planning the following work around.
I am using the code given below. In that
job.print(attr) takes all the 20 sec in low end client machine
If I create a printable Image / JPG using APIs similar to command line
PDFToImage in Server ( which is very high end cluster and may finish all in < 1
sec ) and send
JPG Byte Stream to client side,
What should be the code or PDFBox API or Java.awt.print code to print JPG file
at client side?
I did a quick browse through on PDFBOx APIs or Java.awt.print APIs but could
not find, hence this request to you.
Requirement
---------------
PDF file Input to printable JPG PDFBox code sample
JPG bytestream to silent printing either PDFBox or Java.awt.print code
Code snippet for 1 and 2 will resolve our issue.
Code used
--------------
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;
}
Regards
Sridhar Sowmiyanarayanan
Tata Consultancy Services
Mailto: [email protected]
Website: http://www.tcs.com
was (Author: sridhar):
Dear Tilman
I need one urgent help
Planning the following work around.
I am using the code given below. In that
job.print(attr) takes all the 20 sec in low end client machine
If I create a printable Image / JPG using APIs similar to command line
PDFToImage in Server ( which is very high end cluster and may finish all in < 1
sec ) and send
JPG Byte Stream to client side,
What should be the code or PDFBox API or Java.awt.print code to print JPG file
at client side?
I did a quick browse through on PDFBOx APIs or Java.awt.print APIs but could
not find, hence this request to you.
Requirement
---------------
PDF file Input to printable JPG PDFBox code sample
JPG bytestream to silent printing either PDFBox or Java.awt.print code
Code snippet for 1 and 2 will resolve our issue.
Code used
--------------
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;
}
Regards
Sridhar Sowmiyanarayanan
Tata Consultancy Services
Mailto: [email protected]
Website: http://www.tcs.com
> 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: [email protected]
For additional commands, e-mail: [email protected]