Extracted images are upside-down
"John van de Pol" <[email protected]> Tue, 2 Feb 2016 07:37:30 +0100
| Newsgroups | gmane.comp.java.lib.itext.general |
|---|---|
| Message-ID | <[email protected]> |
This is a multipart message in MIME format.
--===============4033163073304650114==
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_0001_01D15D8C.92B64B40"
Content-Language: nl
This is a multipart message in MIME format.
------=_NextPart_000_0001_01D15D8C.92B64B40
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: 7bit
Hi all,
I searched the iText mailinglist fort his problem.
I found several, but none of the provided solutions work for me.
I am making a program for a friend of mine wich must extract images from a
pdf.
All the images are upside down, they are NOT rotated!!
Here's the pdf:
www.jpproducties.nl/Documents/order 200047.pdf
<http://www.jpproducties.nl/Documents/order%20200047.pdf>
Here's the extracted image from the first page:
www.jpproducties.nl/Documents/test_1_0.png
Here's my codesnippet.
The class has 2 methods.
1 without _outputFilePrefix and _outputFolder, this one is the one i intend
to use.
The other method can be used to write the images to file.
Both methods give the images upside down.
public void RenderImage(ImageRenderInfo renderInfo)
{
try
{
PdfImageObject image = renderInfo.GetImage();
if (image != null)
{
if (_outputFilePrefix.Length == 0 ||
_outputFolder.Length == 0)
{
var drawingImage = image.GetDrawingImage();
_retList.Add(drawingImage);
}
else
{
var imageFileName = String.Format("{0}_{1}_{2}.{3}",
_outputFilePrefix, _currentPage, _imageCount, image.GetFileType());
var imagePath =
System.IO.Path.Combine(_outputFolder, imageFileName);
if (_overwriteExistingFiles ||
!File.Exists(imagePath))
{
var imageRawBytes = image.GetImageAsBytes();
File.WriteAllBytes(imagePath, imageRawBytes);
}
// Subtle: Always increment even if file is not
written. This ensures consistency should only some
// of a PDF file's images actually exist.
_imageCount++;
}
}
}
catch (Exception)
{
}
}
Thank in advance for your help.
Best Regards,
JohnvandePol
------=_NextPart_000_0001_01D15D8C.92B64B40
Content-Type: text/html;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns=3D"http://www.w3.org/TR/REC-html40"><head><meta =
http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dus-ascii"><meta name=3DGenerator content=3D"Microsoft Word 14 =
(filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
pre
{mso-style-priority:99;
mso-style-link:"HTML - vooraf opgemaakt Char";
margin:0cm;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New";}
span.E-mailStijl17
{mso-style-type:personal-compose;
font-family:"Calibri","sans-serif";
color:windowtext;}
span.HTML-voorafopgemaaktChar
{mso-style-name:"HTML - vooraf opgemaakt Char";
mso-style-priority:99;
mso-style-link:"HTML - vooraf opgemaakt";
font-family:"Courier New";
mso-fareast-language:NL;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri","sans-serif";
mso-fareast-language:EN-US;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DNL link=3Dblue =
vlink=3Dpurple><div class=3DWordSection1><p class=3DMsoNormal>Hi =
all,<o:p></o:p></p><p class=3DMsoNormal><o:p> </o:p></p><p =
class=3DMsoNormal>I searched the iText mailinglist fort his =
problem.<o:p></o:p></p><p class=3DMsoNormal>I found several, but none of =
the provided solutions work for me.<o:p></o:p></p><p =
class=3DMsoNormal><o:p> </o:p></p><p class=3DMsoNormal>I am making =
a program for a friend of mine wich must extract images from a =
pdf.<o:p></o:p></p><p class=3DMsoNormal>All the images are upside down, =
they are NOT rotated!!<o:p></o:p></p><p =
class=3DMsoNormal><o:p> </o:p></p><p class=3DMsoNormal>Here’s =
the pdf:<br><a =
href=3D"http://www.jpproducties.nl/Documents/order%20200047.pdf">www.jppr=
oducties.nl/Documents/order 200047.pdf</a><o:p></o:p></p><p =
class=3DMsoNormal><o:p> </o:p></p><p class=3DMsoNormal>Here’s =
the extracted image from the first page:<o:p></o:p></p><p =
class=3DMsoNormal>www.jpproducties.nl/Documents/test_1_0.png<o:p></o:p></=
p><p class=3DMsoNormal><o:p> </o:p></p><p =
class=3DMsoNormal>Here’s my codesnippet.<o:p></o:p></p><p =
class=3DMsoNormal>The class has 2 methods. <o:p></o:p></p><p =
class=3DMsoNormal>1 without _<span =
style=3D'color:black;mso-fareast-language:NL'>outputFilePrefix and =
_outputFolder, this one is the one i intend to =
use.<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'color:black;mso-fareast-language:NL'>The other method can be =
used to write the images to file.<o:p></o:p></span></p><p =
class=3DMsoNormal><span =
style=3D'color:black;mso-fareast-language:NL'>Both methods give the =
images upside down.</span><o:p></o:p></p><p =
class=3DMsoNormal><o:p> </o:p></p><p class=3DMsoNormal =
style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:blue;mso-fareast-lan=
guage:NL'>public</span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> </span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:blue;mso-fareast-lan=
guage:NL'>void</span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> RenderImage(</span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:#2B91AF;mso-fareast-=
language:NL'>ImageRenderInfo</span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> renderInfo)<o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> {<o:p></o:p></=
span></p><p class=3DMsoNormal style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> &n=
bsp; </span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:blue;mso-fareast-lan=
guage:NL'>try</span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'><o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> &n=
bsp; {<o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> &n=
bsp; </span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:#2B91AF;mso-fareast-=
language:NL'>PdfImageObject</span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> image =3D renderInfo.GetImage();<o:p></o:p></s=
pan></p><p class=3DMsoNormal style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> &n=
bsp; </span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:blue;mso-fareast-lan=
guage:NL'>if</span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> (image !=3D </span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:blue;mso-fareast-lan=
guage:NL'>null</span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'>)<o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> &n=
bsp; {<o:p></o:p></span></p><p =
class=3DMsoNormal style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> &n=
bsp; </span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:blue;mso-fareast-lan=
guage:NL'>if</span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> (_outputFilePrefix.Length =3D=3D 0 ||&nbs=
p;_outputFolder.Length =3D=3D 0)<o:p></o:p></span></p><p =
class=3DMsoNormal style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> &n=
bsp; {<o:p></o:p></s=
pan></p><p class=3DMsoNormal style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> &n=
bsp; &nb=
sp; </span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:blue;mso-fareast-lan=
guage:NL'>var</span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> drawingImage =3D image.GetDrawingImage();<o:p>=
</o:p></span></p><p class=3DMsoNormal style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> &n=
bsp; &nb=
sp; _retList.Add(drawingImage); &=
nbsp; <o:p></o:p></span></p><p =
class=3DMsoNormal style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> &n=
bsp; }<o:p></o:p></s=
pan></p><p class=3DMsoNormal style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> &n=
bsp; </span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:blue;mso-fareast-lan=
guage:NL'>else</span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'><o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> &n=
bsp; {<o:p></o:p></s=
pan></p><p class=3DMsoNormal style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> &n=
bsp; &nb=
sp; </span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:blue;mso-fareast-lan=
guage:NL'>var</span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> imageFileName =3D </span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:#2B91AF;mso-fareast-=
language:NL'>String</span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'>.Format(</span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:#A31515;mso-fareast-=
language:NL'>"{0}_{1}_{2}.{3}"</span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'>, _outputFilePrefix, _currentPage, _imageCount,=
image.GetFileType());<o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> &n=
bsp; &nb=
sp; </span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:blue;mso-fareast-lan=
guage:NL'>var</span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> imagePath =3D System.IO.</span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:#2B91AF;mso-fareast-=
language:NL'>Path</span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'>.Combine(_outputFolder, imageFileName);<o:p></o:p></span>=
</p><p class=3DMsoNormal style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> <o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> &n=
bsp; &nb=
sp; </span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:blue;mso-fareast-lan=
guage:NL'>if</span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> (_overwriteExistingFiles || !</span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:#2B91AF;mso-fareast-=
language:NL'>File</span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'>.Exists(imagePath))<o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> &n=
bsp; &nb=
sp; {<o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> &n=
bsp; &nb=
sp; </span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:blue;mso-fareast-lan=
guage:NL'>var</span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> imageRawBytes =3D image.GetImageAsBytes();<o:p=
></o:p></span></p><p class=3DMsoNormal style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> <o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> &n=
bsp; &nb=
sp; </span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:#2B91AF;mso-fareast-=
language:NL'>File</span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'>.WriteAllBytes(imagePath, imageRawBytes);<o:p></o:p></spa=
n></p><p class=3DMsoNormal style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> &n=
bsp; &nb=
sp; } <o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> &n=
bsp; &nb=
sp; </span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:green;mso-fareast-la=
nguage:NL'>// Subtle: Always increment even if&n=
bsp;file is not written. This ensures consi=
stency should only some</span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'><o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> &n=
bsp; &nb=
sp; </span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:green;mso-fareast-la=
nguage:NL'>// of a PDF file's images=
actually exist.</span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'><o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> &n=
bsp; &nb=
sp; _imageCount++;<o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> &n=
bsp; }<o:p></o:p></s=
pan></p><p class=3DMsoNormal style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> &n=
bsp; }<o:p></o:p></span></p><p =
class=3DMsoNormal style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> <o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> &n=
bsp; }<o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> &n=
bsp; </span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:blue;mso-fareast-lan=
guage:NL'>catch</span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> (</span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:#2B91AF;mso-fareast-=
language:NL'>Exception</span><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'>)<o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> &n=
bsp; {<o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> &n=
bsp; }<o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'background:white'><span =
style=3D'font-size:10.0pt;font-family:Consolas;color:black;mso-fareast-la=
nguage:NL'> }<o:p></o:p></=
span></p><p class=3DMsoNormal><o:p> </o:p></p><p =
class=3DMsoNormal>Thank in advance for your help.<o:p></o:p></p><p =
class=3DMsoNormal><o:p> </o:p></p><p class=3DMsoNormal>Best =
Regards,<o:p></o:p></p><p =
class=3DMsoNormal>JohnvandePol<o:p></o:p></p><p =
class=3DMsoNormal><o:p> </o:p></p></div></body></html>
------=_NextPart_000_0001_01D15D8C.92B64B40--
--===============4033163073304650114==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
--===============4033163073304650114==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
iText-questions mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/itext-questions
iText(R) is a registered trademark of 1T3XT BVBA.
Many questions posted to this list can (and will) be answered with a reference to the iText book: http://www.itextpdf.com/book/
Please check the keywords list before you ask for examples: http://itextpdf.com/themes/keywords.php
--===============4033163073304650114==--