Have you compared all the bytes of the images in windows and solaris?
Until then, you are /not/ sure they are the same.
--Mark Storer
Senior Software Engineer
Cardiff.com
import legalese.Disclaimer;
Disclaimer<Cardiff> DisCard = null;
________________________________
From: Frode Halvorsen [mailto:frode.halvor...@ergogroup.no]
Sent: Thursday, October 21, 2010 6:03 AM
To: Post all your questions about iText here
Subject: [iText-questions] Is there a difference when running on
Solaris andWindows ?
Hi
I am using the class below to shrink every page in a PDF in
order to make room for an 15mm margin on both left and right edge.
When I call this in a Windows-environment things work fine, and
the resulting PDF is consisting of a set of 'shrinked' pages from the
original with each page 'stamped' with the file-name I supply.
But when running the same code with the same PDF in a Solaris
environment the result is different, and I get an error-message when
trying open the PDF (Insufficent data for image).
I use binary transfer when transporting the pdf's to/from
Solaris, and I am sure that the byte[] used when calling this class is
identical, as I control the length of it just before calling this class.
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Image;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Utilities;
import com.itextpdf.text.pdf.PdfImportedPage;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfWriter;
public class PdfEditor {
private static float points15mm =
Utilities.millimetersToPoints(15);
private static Log log =
LogFactory.getLog(PdfEditor.class);
public static byte[] schrinkImages(byte[] src, String
docname) {
ByteArrayOutputStream baos = new
ByteArrayOutputStream();
try {
Document document = new Document(PageSize.A4);
PdfWriter writer =
PdfWriter.getInstance(document, baos);
document.open();
PdfReader reader = new PdfReader(src);
int n = reader.getNumberOfPages();
log.info("Antall sider : " + n + " Rot
"+reader.getPageRotation(1) );
PdfImportedPage page;
float maxwidth =
document.getPageSize().getWidth() - points15mm * 2;
for (int i = 1; i <= n; i++) {
document.add(new Paragraph(" " +
docname));
page = writer.getImportedPage(reader,
i);
Image image = Image.getInstance(page);
image.scaleToFit(maxwidth,
PageSize.A4.getHeight());
image.setAbsolutePosition(points15mm,
points15mm);
image.setRotationDegrees(reader.getPageRotation(i)==270?90:0);
image.setCompressionLevel(9);
image.simplifyColorspace();
document.add(image);
document.newPage();
}
document.close();
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return baos.toByteArray();
}
}
------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions
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