Am 18.02.2016 um 20:10 schrieb Stahle, Patrick:
Hi Tilman,

Like magic.... Thank you very much!!!!

Do I want to know what "resetContext - Tell if the graphic context should be 
reseted." Does?

Some streams change the current transformation matrix (CTM) and don't reset it at the end of the stream (and it isn't required). This results in the effect you were having. The CTM is about flippping, scaling, rotating, etc.

Tilman



Thanks,
Patrick

-----Original Message-----
From: Tilman Hausherr [mailto:[email protected]]
Sent: Thursday, February 18, 2016 1:39 PM
To: [email protected]
Subject: Re: Issue with PDPageContentStream setTextMatrix with PDF pages rotated

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.p
df - 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.p
df - 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.p
df - 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.p
df - 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.p
df - 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.p
df - 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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to