2

I was asked to generate a PDF type A-3 using XSL-FO with Apache FOP configuration. The PDF is already generated but it can't be validated

error : A device-specific color space (DeviceGray) without an appropriate output intent is used.

I think the issue will be related to the FOP configuration, this is the one I used:

<fop version="1.0">

  <!-- Base URL for resolving relative URLs -->
  <base>.</base>
  
  <!-- Source resolution in dpi (dots/pixels per inch) for determining the size of pixels in SVG and bitmap images, default: 72dpi -->
  <source-resolution>72</source-resolution>
  <!-- Target resolution in dpi (dots/pixels per inch) for specifying the target resolution for generated bitmaps, default: 72dpi -->
  <target-resolution>72</target-resolution>
  
  <!-- Default page-height and page-width, in case
       value is specified as auto -->
  <default-page-settings height="11in" width="8.26in"/>
  
  <!-- Information for specific renderers -->
  <!-- Uses renderer mime type for renderers -->
  <renderers>
    <renderer mime="application/pdf">
    
      <version>1.4</version>
      <filterList>
        <!-- provides compression using zlib flate (default is on) -->
        <value>flate</value>
       
      </filterList>

      <fonts>
       
    <font embed-url="ZapfDingbats.ttf" kerning="yes" sub-font="ZapfDingbats">
        <font-triplet name="ZapfDingbats" style="normal" weight="normal"/>
        <font-triplet name="ZapfDingbats" style="normal" weight="bold"/>
    </font>
    <font embed-url="symbol.ttf" kerning="yes" sub-font="Symbol">
        <font-triplet name="Symbol" style="normal" weight="normal"/>
        <font-triplet name="Symbol" style="normal" weight="bold"/>
    </font>

    
        <font metrics-url="ariali.xml" kerning="yes" embed-url="ariali.ttf" embedding-mode="full">
          <font-triplet name="Arial" style="italic" weight="normal"/>
        </font>
        <font metrics-url="arial.xml" kerning="yes" embed-url="arial.ttf" embedding-mode="full">
          <font-triplet name="Arial" style="normal" weight="normal"/>
        </font>
        <font metrics-url="arialbd.xml" kerning="yes" embed-url="arialbd.ttf" embedding-mode="full">
          <font-triplet name="Arial" style="normal" weight="bold"/>
        </font>
        
      </fonts>
    
    </renderer>

    <renderer mime="application/postscript">
     
    </renderer>

    <renderer mime="application/vnd.hp-PCL">
    </renderer>

    <renderer mime="image/svg+xml">
      <format type="paginated"/>
      <link value="true"/>
      <strokeText value="false"/>
    </renderer>

    <renderer mime="application/awt">
    </renderer>

    <renderer mime="image/png">
      <!--transparent-page-background>true</transparent-page-background-->
    </renderer>

    <renderer mime="image/tiff">
      <!--transparent-page-background>true</transparent-page-background-->
      <!--compression>CCITT T.6</compression-->
    </renderer>

    <renderer mime="text/xml">
    </renderer>

    <!-- RTF does not have a renderer
    <renderer mime="text/rtf">
    </renderer>
    -->

    <renderer mime="text/plain">
      <pageSize columns="80"/>
    </renderer>

  </renderers>

</fop>
Braiam
  • 1
  • 11
  • 47
  • 78

1 Answers1

0

Read the Apache FOP configuration, you will need an output colorspace specified in the pdf renderer filterList like:

 <output-profile>C:\FOP\Color\EuropeISOCoatedFOGRA27.icc</output-profile>

See https://xmlgraphics.apache.org/fop/1.1/configuration.html

Of course, you need to select the appropriate ".icc" file for your application.

Kevin Brown
  • 8,805
  • 2
  • 20
  • 38