Thanks a lot, everything works fine now!

Greetings,
Chris



Am 17.12.2009 um 09:45 schrieb Andreas Lehmkühler:

> Hi Chris,
> 
> 
> Gesendet: Do, 17. Dez 2009 Von: Christoph 
> Mäschig<[email protected]>
> 
>> Hi!
>> 
>> I encountered a strange problem. I used PrintImageLocations.java as source
>> for my image extraction function,
>> which is supposed to extract the image and it's position as well as it's
>> width and height in the PDF source document.
>> 
>> Everything works fine except the calculation of width and height.
>> 
>> I use the following code:
>> 
>>                  PDXObjectImage image = (PDXObjectImage) xobject;
>>                  PDPage page = getCurrentPage();
>>                  Matrix ctm = getGraphicsState()
>>                          .getCurrentTransformationMatrix();
>>                  double rotationInRadians = (page.findRotation() * Math.PI) 
>> / 180;
>> 
>>                  AffineTransform rotation = new AffineTransform();
>>                  rotation.setToRotation(rotationInRadians);
>>                  AffineTransform rotationInverse = rotation.createInverse();
>>                  Matrix rotationInverseMatrix = new Matrix();
>>                  rotationInverseMatrix
>>                          .setFromAffineTransform(rotationInverse);
>>                  Matrix rotationMatrix = new Matrix();
>>                  rotationMatrix.setFromAffineTransform(rotation);
>> 
>>                  Matrix unrotatedCTM = ctm.multiply(rotationInverseMatrix);
>>                  float xScale = unrotatedCTM.getXScale();
>>                  float yScale = unrotatedCTM.getYScale();
>> 
>>                  float img_width = xScale / 100f * image.getWidth(); 
>>                  float img_height = yScale / 100f * image.getHeight();
>> 
>> 
>> But for some reason, the calculated Width and height are not correct, the
>> scaling factor is somehow strange and
>> xScale and yScale differ, even when the image is scale proportional.
>> 
>> Does anybody know what I've to do?
> The PrintImageLocations example is using some old code from the 
> "Do"-operator. Have a look at the improved implementation at  [1]. IMHO we 
> should fix that example.
> 
> BTW: the mentioned code is in the Invoke- and the BeginInlineImage-operator. 
> Furthermore we have to use that code in the PrintImageLocations example, too. 
> I think we should unify the code.
> 
>> Thanks a lot in advance!
>> Chris
> 
> BR
> Andreas Lehmkühler
> 
> [1] 
> http://svn.apache.org/repos/asf/pdfbox/trunk/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/Invoke.java
> 



--
Christoph Mäschig
Creative Director / Geschäftsführer
[email protected]



                



Nerdindustries GbR | Im Tale 27 | 20251 Hamburg | fon: +49 (0)170 544 31 65 | 
www.nerdindustries.com

Reply via email to