Please change this line
PDPageContentStream canvas = new PDPageContentStream(doc, page, true, true);
add a 5th param which should be "true". Does it work now?
Tilman
Am 18.02.2016 um 16:21 schrieb Stahle, Patrick:
Hi,
I am not sure if this is a bug or is working as designed. I am applying a text
stamp to existing PDF's at a particular location on the PDF. The problem only
occurs when the pdf page(s) are rotated. I have even tried taking a PDF that
was originally rotated and using PDF Editor and rotated it back to 0, but the
same issue still occurs. It seems like my Matrix I am setting is being scaled.
Here is some example code that reproduces the issue:
// Note: this is using PDFBox 2.x. Tried both lates SNAPSHOT and RC3
PDDocument doc = null;
PDFont font = PDType1Font.HELVETICA_BOLD;
float fontSize = 60.0F;
try {
doc = PDDocument.load(pdfIn);
PDPage page = null;
for (int i = 0; i <
doc.getNumberOfPages(); i++) {
page =
doc.getPage(i);
logger.debug(pdfOut.getAbsolutePath() +
" - page " + i + " rotation=" + page.getRotation() + ", mediaBox=" +
page.getMediaBox());
Matrix
posMatrix = new Matrix(1.0F, 0.0F, 0.0F, 1.0F, x, y);
logger.debug("Stamp
matrix=" + posMatrix);
PDPageContentStream canvas = new PDPageContentStream(doc, page, true, true);
canvas.saveGraphicsState();
canvas.setFont(font, fontSize);
canvas.beginText();
canvas.setNonStrokingColor(Color.RED);
canvas.setTextMatrix(posMatrix);
canvas.showText(text);
canvas.endText();
canvas.restoreGraphicsState();
canvas.close();
}
doc.save(pdfOut);
// Output
130 [main] DEBUG com.tycoelectronics.emcs.stamppdf.PDFBoxExamples.StampText -
/home/us083485/PDFBoxWork/ENG_PD_1725700-SAMT_F_1725700StampedPDFBox.pdf - page
0 rotation=270, mediaBox=[0.0,0.0,792.0,1224.0]
130 [main] DEBUG com.tycoelectronics.emcs.stamppdf.PDFBoxExamples.StampText -
Stamp matrix=[1.0,0.0,0.0,1.0,333.66,122.0]
166 [main] DEBUG com.tycoelectronics.emcs.stamppdf.PDFBoxExamples.StampText -
/home/us083485/PDFBoxWork/ENG_PD_1725700-SAMT_F_1725700StampedPDFBox.pdf - page
1 rotation=270, mediaBox=[0.0,0.0,792.0,1224.0]
166 [main] DEBUG com.tycoelectronics.emcs.stamppdf.PDFBoxExamples.StampText -
Stamp matrix=[1.0,0.0,0.0,1.0,333.66,122.0]
167 [main] DEBUG com.tycoelectronics.emcs.stamppdf.PDFBoxExamples.StampText -
/home/us083485/PDFBoxWork/ENG_PD_1725700-SAMT_F_1725700StampedPDFBox.pdf - page
2 rotation=270, mediaBox=[0.0,0.0,792.0,1224.0]
167 [main] DEBUG com.tycoelectronics.emcs.stamppdf.PDFBoxExamples.StampText -
Stamp matrix=[1.0,0.0,0.0,1.0,333.66,122.0]
168 [main] DEBUG com.tycoelectronics.emcs.stamppdf.PDFBoxExamples.StampText -
/home/us083485/PDFBoxWork/ENG_PD_1725700-SAMT_F_1725700StampedPDFBox.pdf - page
3 rotation=270, mediaBox=[0.0,0.0,792.0,1224.0]
168 [main] DEBUG com.tycoelectronics.emcs.stamppdf.PDFBoxExamples.StampText -
Stamp matrix=[1.0,0.0,0.0,1.0,333.66,122.0]
169 [main] DEBUG com.tycoelectronics.emcs.stamppdf.PDFBoxExamples.StampText -
/home/us083485/PDFBoxWork/ENG_PD_1725700-SAMT_F_1725700StampedPDFBox.pdf - page
4 rotation=270, mediaBox=[0.0,0.0,792.0,1224.0]
169 [main] DEBUG com.tycoelectronics.emcs.stamppdf.PDFBoxExamples.StampText -
Stamp matrix=[1.0,0.0,0.0,1.0,333.66,122.0]
170 [main] DEBUG com.tycoelectronics.emcs.stamppdf.PDFBoxExamples.StampText -
/home/us083485/PDFBoxWork/ENG_PD_1725700-SAMT_F_1725700StampedPDFBox.pdf - page
5 rotation=270, mediaBox=[0.0,0.0,792.0,1224.0]
170 [main] DEBUG com.tycoelectronics.emcs.stamppdf.PDFBoxExamples.StampText -
Stamp matrix=[1.0,0.0,0.0,1.0,333.66,122.0]
Now When I look at the stamped PDF the text is not in the position I would
expect (x=333.66, y=122.0), instead it is in the lower right hand corner and
the font size has been scaled down significantly. When I load it into a PDF
Editor to look at it the matrix for the text has been changed to the following:
Matrix=[0, 0.12, -0.12, 0, 1178.35999, 56.0392]
Font name and size is what it is supposed to be.
So it looks like some kind of scaling is going on. Note that the text is
rotated properly, just that the text size and position does not look correct to
me. If this is working as designed then any suggestion on how to mathematically
to get the text to show up not scaled would be appreciated. Also, I have some
iText code basically doing the same thing that does not show this behavior.
Thanks All for any help / suggestions,
Patrick
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]