It can't be done in a reliable way without changing the library. I'll get back to you next week with some kind of solution.
Paulo > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On > Behalf Of Petter Nyström > Sent: Thursday, April 27, 2006 12:15 PM > To: [email protected] > Subject: RE: [iText-questions] Far cry for help with JPEG in PDF > > On Mon, 17 Apr 2006, Paulo Soares wrote: > > > You shouldn't be messing with PRStream. Create a new > PdfStream with the > > right filters to replace the old PRStream. Don't forget to > kill the old > > PRStream with PdfReader.killIndirect(). > > I have been pondering this and trying to do things the right > way as hinted > at by Paulo Soares, but I haven't managed to get it working > out. The code > I have that works (but requires a hack in the iText library > in its full > version) looks something like this in a very condensed form: > > void foo (PRStream image) > { > File file = new File("someimage.cmyk"); > FileInputStream stream = new FileInputStream(file); > byte[] data = new byte[file.length()]; > > stream.read(data, 0, file.length()); > image.setData(data); > } > > If I am not to mess with the PRStream but instead make a new > PdfStream, my > problem revolves around how to set up the new PdfStream in a > manner so it > has all the properties of the old one. I can copy the > PdfDictionary values > easily enough, but I also need to make sure it has the same > positions etc. > within the document. Since the one and only thing I wish to > do is really > to replace the stream data, the suggested solution seems like > a lot more > work to me. Work that I can't even get right at the moment. > But I still > want to do this "the right way" and absolutely don't want to > resort to > hacking the iText library. So I am interested in how to set > up this new > PdfStream object in such a way that it will completely > replace the old > one. Answers are appreciated, as usual. > > Regards, > > Petter Nyström > > P.S. I see how a few same people answer dozens of questions > on this list > every day, and I would just like to say that your efforts are > noticed and > greatly appreciated! =) D.S. > > >> -----Original Message----- > >> From: [EMAIL PROTECTED] > >> [mailto:[EMAIL PROTECTED] On > >> Behalf Of Petter Nyström > >> Sent: Monday, April 17, 2006 1:14 PM > >> To: [email protected] > >> Subject: Re: [iText-questions] Far cry for help with JPEG in PDF > >> > >> It seems my problem is indeed with that setData() uses some sort of > >> compression filter on the data, which is not desirable when > >> dealing with > >> JPEG. I added a simple method setDataRaw() in > >> com/lowagie/text/pdf/PRStream.java like this: > >> > >> public void setDataRaw (byte[] data) > >> { > >> this.offset = -1; > >> bytes = data; > >> setLength(bytes.length); > >> } > >> > >> And calling this instead of setData() when dealing with > JPEG fixes my > >> problem. What I am asking for now is, I guess, if there are > >> any official > >> way of achieving the same effect as I have with my method. (I > >> see that > >> this result is also achieved with setData() if the > >> Document.compression > >> field is false, but I'm not sure that is the correct way > >> either.) Because > >> I don't really want to make my own changes in the iText > >> library since that > >> makes upgrading so much more difficult in the future. > >> > >> Any word on this? > >> > >> Regards, > >> > >> Petter Nyström > >> > >> On Mon, 17 Apr 2006, Petter Nyström wrote: > >> > >>> Good evening list! > >>> > >>> This problem might not have anything to do with Itext as > >> such. It's mostly a > >>> cry out to see if anyone on this list have an idea for a > >> solution to my > >>> problem. I hope that is okay. > >>> > >>> My problem then, is this: I extract images from PDF > >> documents using Itext. > >>> Sometimes, this is a JPEG/JFIF image. (I treat any image > >> with a DCTDecode > >>> filter as a JPEG. Is that incorrect?) I then convert > >> extracted images into > >>> TIFF and perform some image processing before they are > >> turned back into their > >>> internal PDF format, e.g. JPEG or raw CMYK etc.. The image > >> format conversions > >>> are made with the ImageMagick API. > >>> > >>> I then proceed to replace the data of the images in the PDF > >> with the data of > >>> the images that has gone through conversion and image > >> processing. For this I > >>> use the setData() method in the PRStream object of the > >> images I find in the > >>> PDF, and a PdfStamper to write a new PDF. > >>> > >>> The unfortunate result is that JPEG images in the new PDF > >> document appear > >>> garbled, while other image formats I have been working with > >> come through > >>> fine. > >>> > >>> My premier theory to explain this is that the JPEG image > >> generated by > >>> ImageMagick is somehow not compatible with what is standard > >> within the PDF. > >>> So while ImageMagick can make sense out of a JPEG come from > >> a PDF, a PDF > >>> cannot make sense out of a JPEG come from ImageMagick. > >>> > >>> My secondary theory is that there could be some problem > >> with how I do the > >>> replacement. Should I have to apply some filters to the > >> data before I call > >>> the setData() method? > >>> > >>> Obviously I have tried a whole lineup of approaches but > >> always with the same > >>> dissapointing result. So this mail is a hope that someone > >> out there has a > >>> clue as to what might go wrong and what one might do to > >> stop it from doing > >>> so. If you have one such clue, please let me know of it! > >>> > >>> Regards, > >>> > >>> Petter Nyström > >>> > >>> > >>> ------------------------------------------------------- > >>> This SF.Net email is sponsored by xPML, a groundbreaking > >> scripting language > >>> that extends applications into web and mobile media. Attend > >> the live webcast > >>> and join the prime developer group breaking into this new > >> coding territory! > >>> > >> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720& > >> dat=121642 > >>> _______________________________________________ > >>> iText-questions mailing list > >>> [email protected] > >>> https://lists.sourceforge.net/lists/listinfo/itext-questions > >>> > >> > >> > >> ------------------------------------------------------- > >> This SF.Net email is sponsored by xPML, a groundbreaking > >> scripting language > >> that extends applications into web and mobile media. Attend > >> the live webcast > >> and join the prime developer group breaking into this new > >> coding territory! > >> http://sel.as-us.falkag.net/sel?cmd=k&kid0944&bid$1720&dat1642 > >> _______________________________________________ > >> iText-questions mailing list > >> [email protected] > >> https://lists.sourceforge.net/lists/listinfo/itext-questions > >> > > > > > > ------------------------------------------------------- > > This SF.Net email is sponsored by xPML, a groundbreaking > scripting language > > that extends applications into web and mobile media. Attend > the live webcast > > and join the prime developer group breaking into this new > coding territory! > > > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720& > dat=121642 > > _______________________________________________ > > iText-questions mailing list > > [email protected] > > https://lists.sourceforge.net/lists/listinfo/itext-questions > > > > > ------------------------------------------------------- > Using Tomcat but need to do more? Need to support web > services, security? > Get stuff done quickly with pre-integrated technology to make > your job easier > Download IBM WebSphere Application Server v.1.0.1 based on > Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=k&kid0709&bid&3057&dat1642 > _______________________________________________ > iText-questions mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/itext-questions > ------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid0709&bid&3057&dat1642 _______________________________________________ iText-questions mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/itext-questions
