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

Reply via email to