Hi!
I'm doing some document conversion and right now I'm trying to find a
way to create a ICCBased color space in pdf using pdfbox. I have a file
call cs-0.icc which is a color profile. This is a sequence of bytes in a
standard format which I believe pdf also use the same thing. Below is my
attempt.
RandomAccessBuffer buffer1 = new RandomAccessBuffer();
FileInputStream fs = null;
try {
fs = new FileInputStream("cs-0.icc");
int c;
while ((c = fs.read()) != -1) {
buffer1.write(c);
}
}
finally {
if (fs != null)
fs.close();
}
COSArray iccArray = new COSArray();
COSStream streamObj = new COSStream(buffer1);
iccArray.add(COSName.getPDFName("ICCBased"));
iccArray.add(streamObj);
PDICCBased col1 = new PDICCBased(iccArray);
Here is the stack trace I got back.
org.pdfbox.exceptions.COSVisitorException
at org.pdfbox.pdfwriter.COSWriter.visitFromStream(COSWriter.java:953)
at org.pdfbox.cos.COSStream.accept(COSStream.java:215)
at org.pdfbox.pdfwriter.COSWriter.doWriteObject(COSWriter.java:444)
at org.pdfbox.pdfwriter.COSWriter.doWriteBody(COSWriter.java:375)
at org.pdfbox.pdfwriter.COSWriter.visitFromDocument(COSWriter.java:782)
at org.pdfbox.cos.COSDocument.accept(COSDocument.java:388)
at org.pdfbox.pdfwriter.COSWriter.write(COSWriter.java:1084)
at org.pdfbox.pdmodel.PDDocument.save(PDDocument.java:740)
at org.pdfbox.pdmodel.PDDocument.save(PDDocument.java:721)
at HelloWorld.doIt(HelloWorld.java:210)
at HelloWorld.main(HelloWorld.java:233)
java.lang.NullPointerException
at org.pdfbox.cos.COSStream.getFilteredStream(COSStream.java:150)
at org.pdfbox.pdfwriter.COSWriter.visitFromStream(COSWriter.java:927)
at org.pdfbox.cos.COSStream.accept(COSStream.java:215)
at org.pdfbox.pdfwriter.COSWriter.doWriteObject(COSWriter.java:444)
at org.pdfbox.pdfwriter.COSWriter.doWriteBody(COSWriter.java:375)
at org.pdfbox.pdfwriter.COSWriter.visitFromDocument(COSWriter.java:782)
at org.pdfbox.cos.COSDocument.accept(COSDocument.java:388)
at org.pdfbox.pdfwriter.COSWriter.write(COSWriter.java:1084)
at org.pdfbox.pdmodel.PDDocument.save(PDDocument.java:740)
at org.pdfbox.pdmodel.PDDocument.save(PDDocument.java:721)
at HelloWorld.doIt(HelloWorld.java:210)
at HelloWorld.main(HelloWorld.java:233)
Any idea how may I get around this.
Thank you very much.
Regards,
Thach Tran