Currently I use PDAnnotHandlers GetPrintAppearanceProc to provide the appearance for printing. When the user rotates the page, in Acrobat, the appearance rotates with the page as desired (I have not set the NoRotate flag in the annotation.). However, in the print preview dialog and in the subsequent printout, the appearance is not automatically rotated.
I would take this to mean that I need to manually rotate the appearance in GetPrintAppearanceProc, however I'm not sure how to determine when to do this given that I only have a PDAnnot object and an ASFixedRect. Am I missing some way of doing this? Any guidance would be appreciated.
Calling PDPageRotate returns the rotation of the page prior to opening the print dialog. If I change the orientation in that dialog the value of PDPageRotate is unchanged. Is there another way of doing this? Thanks!
Sent from my iPad
I looked into the spec a bit more. Currently I don’t define the Matrix dictionary entry for the XObject stream (thus it should be an identity?). Also, my draw command for the form is "q %d 0 0 %d 0 0 cm /image Do Q" where image is just an image XObject that I want to paint. Is there something else I should be doing? Also, is there a more succinct reference for these types of commands other than culling the spec itself? Thanks again.
Actually, I looked a bit closer at my code and realized I had blindly copied and pasted while ignoring the sprint I had filling in values. In reality it is:
"q width 0 0 height 0 0 cm /imodel Do Q"
You are suggesting I replace the second pair of 0’s with the width and height as well? My understanding (and please do correct me if I’m wrong) is that the statement I have above scales the image object where as changing the second pair would cause them to be translated? Assuming I understand correctly, I tried "q width 0 0 height width height cm /imodel Do Q” and got no image on the page. I assume that I probably translated the image off of the page? Hopefully I’ve put in enough detail that you can spot the flaw in my logic here.