[
https://issues.apache.org/jira/browse/PDFBOX-2119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14026787#comment-14026787
]
John Hewson edited comment on PDFBOX-2119 at 6/11/14 1:18 AM:
--------------------------------------------------------------
Woa there! A lot of hard work has gone into improving the printing API in 2.0
recently and you patch just deletes it all... the orientation feature had only
recently been added and the old (and incorrect approach) of having
getPageFormat() set the paper size and imageable area was removed. This patch
needs to be reverted, the new APIs are needed!
The key issue is misunderstanding what Pageable#getPageFormat() does in PDFBox
2.0 - is _no longer responsible_ for setting the paper size, nor is it
responsible for setting the _imageable area_, unless the user happens to have
the exact size paper and printer that was used in the PDF file (e.g. if it's a
poster they'll need a poster printer). Note that the imageable area is
_printer-specific_, it's the margins which a given printer is physically able
to print within, as no printer can print to the edge of the page. It is _not_
the size of the PDF image we want to print. You can see that it makes no sense
for PDFBox to be trying to set the imageable area given that it is
printer-specific! Likewise the paper format returned from getPageFormat() is
_not_ the paper format of the original PDF file, it is the actual paper which
the current job will print to - once again, PDFBox should not be choosing this.
The only thing that getPageFormat() should be doing is returning the
paper/layout information that has been passed to it from some other source, so
it does seem like calling printerJob.defaultPage() might not quite the right
thing to do... some thought will have to go into what the solution is. The only
property of the PageFormat which PDFBox should modify is the orientation,
because that is just metadata, it doesn't actually affect physical printing it
just tells print-preview how to display the page.
In conclusion: the existing 2.0 APIs were correct except for maybe
printerJob.defaultPage(), now they're broken again :(
was (Author: jahewson):
Woa there! A lot of hard work has gone into improving the printing API in 2.0
recently and you patch just deletes it all... the orientation feature had only
recently been added and the old (and incorrect approach) of having
getPageFormat() set the paper size and imageable area was removed. This patch
needs to be reverted, the new APIs are needed!
The key issue is misunderstanding what Pageable#getPageFormat() does in PDFBox
2.0 - is _no longer responsible_ for setting the paper size, nor is it
responsible for setting the _imageable area_, unless the user happens to have
the exact size paper and printer that was used in the PDF file (e.g. if it's a
poster they'll need a poster printer). Note that the imageable area is
_printer-specific_, it's the margins which a given printer is physically able
to print within, as no printer can print to the edge of the page. It is _not_
the size of the PDF image we want to print. You can see that it makes no sense
for PDFBox to be trying to set the imageable area given that it is
printer-specific! Likewise the paper format returned from getPageFormat() is
_not_ the paper format of the original PDF file, it is the actual paper which
the current job will print to - once again, PDFBox should not be choosing this.
The only thing that getPageFormat() should be doing is returning the
paper/layout information that has been passed to it from some other source, so
it does seem like calling printerJob.defaultPage() is not quite the right thing
to do... some thought will have to go into what the solution is. The only
property of the PageFormat which PDFBox should modify is the orientation,
because that is just metadata, it doesn't actually affect physical printing it
just tells print-preview how to display the page.
In conclusion: the existing 2.0 APIs were correct except for
printerJob.defaultPage(), now they're broken again :(
> Possible printing bug for V2.00
> -------------------------------
>
> Key: PDFBOX-2119
> URL: https://issues.apache.org/jira/browse/PDFBOX-2119
> Project: PDFBox
> Issue Type: Bug
> Affects Versions: 2.0.0
> Environment: Window 7 Professional SP1, JRE 8.
> Reporter: You Liang
> Assignee: Andreas Lehmkühler
> Labels: pdfbox, printer, printing
> Fix For: 1.8.6, 2.0.0
>
>
> Printing seems to be using the window default printer paper size instead of
> selected printService papersize.
> Etc my default Printer is an A4 Printer, and the printer that i had choosen
> to print is a receipt printer.
> When i print to the receipt printer, it will print out a blown up version of
> the original pdf, and when i change my default printer to the receipt
> printer.. everything work fine.
--
This message was sent by Atlassian JIRA
(v6.2#6252)