Hi Elyes,

Thanks for your contribution.

I just have one side  question. Did you validate your PDF/A with other
validators than preflight ?

KR,

Guillaume


On Fri, Apr 12, 2013 at 11:30 AM, Timo Boehme <timo.boe...@ontochem.com>wrote:

> Dear Elyes,
>
> thank you for the contribution. Could you please open an improvement issue
> with the code attached here:
> https://issues.apache.org/**jira/browse/PDFBOX<https://issues.apache.org/jira/browse/PDFBOX>
> .
>
> Thanks,
> Timo
>
> Am 12.04.2013 10:41, schrieb Elyes Lehtihet:
>
>  Hello,
>> First of all, thanks for this tool, found it very useful.
>> Below some sample code to include (sRGB) ICC profile and corresponding
>> OutputIntents to the generated PDF/A. The produced PDF successfully
>> passes validation.
>> It would be nice to have the COSName' extension included in the next
>> release so we won't have to use a homemade build.
>> Regards,
>> Elyes
>>
>> ----
>>
>> * Extension in COSName (org.apache.pdfbox.cos)
>>
>> public static final COSName OutputIntents = new COSName( "OutputIntents"
>> );
>> public static final COSName OutputIntent = new COSName( "OutputIntent" );
>> public static final COSName DestOutputProfile = new COSName(
>> "DestOutputProfile" );
>>
>>
>> * Add new classes
>>
>> public class OutputIntents implements COSObjectable {
>> private COSDictionary dictionary;
>> public OutputIntents(PDDocument doc, InputStream colorProfile) throws
>> Exception{
>> dictionary = new COSDictionary();
>> dictionary.setItem(COSName.**TYPE, COSName.OutputIntent);
>> dictionary.setItem(COSName.S, COSName.GTS_PDFA1);
>>
>> /* Here you have to download .icc profile */
>> InputStream is =
>> OutputIntents.class.**getResourceAsStream("/test/**color/sRGB.icc");
>>
>> DestOutputProfile dop = new DestOutputProfile(doc,is, false);
>>
>> dop.configure();
>>
>> dictionary.setItem(COSName.**DestOutputProfile, dop);
>>
>> }
>>
>> public COSBase getCOSObject() {
>> return dictionary;
>> }
>>      public COSDictionary getDictionary()
>>      {
>>          return dictionary;
>>      }
>>
>>      public void setInfo( String value )
>>      {
>>          dictionary.setString("Info", value);
>>      }
>>
>>      public void setOutputCondition( String value )
>>      {
>>          dictionary.setString("**OutputCondition", value);
>>      }
>>
>>      public void setOutputConditionIdentifier( String value )
>>      {
>>          dictionary.setString("**OutputConditionIdentifier", value);
>>      }
>>
>>      public void setRegistryName( String value )
>>      {
>>          dictionary.setString("**RegistryName", value);
>>      }
>>
>> }
>>
>> public class DestOutputProfile extends PDStream {
>>
>> public DestOutputProfile(PDDocument document) {
>> super(document);
>> }
>>
>> public DestOutputProfile(COSStream str) {
>> super(str);
>> }
>>
>> public DestOutputProfile(PDDocument doc, InputStream str)
>> throws IOException {
>> super(doc, str);
>> }
>>
>> public DestOutputProfile(PDDocument doc, InputStream str, boolean
>> filtered)
>> throws IOException {
>> super(doc, str, filtered);
>> }
>>
>> public void configure(){
>> try {
>> getStream().setFilters(**COSName.FLATE_DECODE);
>> getStream().setInt( COSName.LENGTH, getByteArray().length );
>> getStream().setInt(COSName.N, 3);
>> addCompression();
>> }
>> catch (Exception e) {
>> e.printStackTrace();
>> System.exit(-1);
>> }
>> }
>> }
>>
>>
>> * Sample code to include output intent
>> PDDocumentCatalog cat = doc.getDocumentCatalog();
>> COSDictionary root = (COSDictionary)cat.**getCOSObject();
>> OutputIntents oi = new OutputIntents(doc, colorProfile);
>> oi.setInfo("sRGB IEC61966-2.1");
>> oi.setOutputCondition("sRGB IEC61966-2.1");
>> oi.**setOutputConditionIdentifier("**sRGB IEC61966-2.1");
>> oi.setRegistryName("http://**www.color.org <http://www.color.org>");
>>
>> COSArray outputIntents = new COSArray();
>> outputIntents.add(oi);
>>
>> root.setItem("OutputIntents", outputIntents);
>>
>>
>
> --
>
>  Timo Boehme
>  OntoChem GmbH
>  H.-Damerow-Str. 4
>  06120 Halle/Saale
>  T: +49 345 4780474
>  F: +49 345 4780471
>  timo.boe...@ontochem.com
>
> ______________________________**______________________________**_________
>
>  OntoChem GmbH
>  Geschäftsführer: Dr. Lutz Weber
>  Sitz: Halle / Saale
>  Registergericht: Stendal
>  Registernummer: HRB 215461
> ______________________________**______________________________**_________
>
>

Reply via email to