OPALE - 10.0 - Utilisation

Convert PDF to PDF/A

De MappingDoc
Révision datée du 12 mai 2020 à 13:50 par Jdieu (discussion | contributions) (Page créée avec « ==Remarks== *In *LIST mode, if the conf/authorized_fonts.txt file does not exist, the output PDF will be 0KB * The conf/authorized_fonts.txt file is not included with the... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Autres langues :
English • ‎français

Introduction

The command MAPPDFA converts a PDF to a PDF/A (Compatible PDF/A-1b, PDF/A-2b, PDF/A-3b)

Prerequistes

This command is not included with the basic installation. A separated install package needed to be installed. When executing MAPPDFA, the MAPPING library must be online. (edtlibl)

It is also recommanded not to have annotations and UTF16BE fonts inside the input PDF.

The libstdc++ library must be installed on the server prior to installing MAPPDFA

Installation

The setup in made of a SAVF containing the resources needed, the program and the MAPPDFA command. it needs to be restored in the QTEMP lib.

RSTOBJ OBJ(*ALL) SAVLIB(QTEMP) DEV(*SAVF) SAVF(QGPL/MAPPDFA) RSTLIB(QTEMP)

Then Execute the install : INSTALL + F4

Library destination : Lib where you will install the prog and command
Mapping Path : IFS mapping path folder (same path as the one defined in your configuration of your Mapping env Example : /home/mapping)


The program is then installed in the destination lib as well as the resources in the xxx/mapping/bin and xxx/mapping/conf folders

Screen

The MAPPDFA command has 5 different parameters (In bold the default values) :

  1. Infile : Input file
  2. Outfile : Output file
  3. Type : PDFA type (PDFA1, PDFA2, PDFA3)
  4. Quality : Compression rate when vectorial image mode for the licensed fonts (*HIGH, *MEDIUM, *LOW)
  5. Licensed fonts : Way to manage licensed fonts (*NONE, *ALL, *LIST)
    1. *NONE : Default valeur, if a licensed fonts restriction occurs, MAPPDFA will generate an error message, which could be caught by the gserror.txt config file to switch to vectorial mode.
    2. *ALL : With this mode, all licensed fonts restrictions will be ignore, MAPPDFA will then embbed all the fonts and no error message will occur.
    3. *LIST : Use a list of defined fonts in the conf/authorized_fonts.txt file (encoded in ANSI)

We ignore the licensed font restrictions only for the font listed in this file. MAPPDFA will keep generating error messages for the other non listed fonts, which can be caught by the gserror.txt to switch them to vectorial mode.

The authorized_fonts.txt file must contain the list of fonts to be authorised (one per line) The font names to add can be found looking at the stdout log of MAPPDFA

Example :

Warning: CFMZCH+DejaVuSans-Bold cannot be embedded because of licensing restrictions

We must add CFMZCH+DejaVuSans-Bold (Or just DejaVuSans-Bold in the conf/authorized_fonts.txt file)

Settings

Introduction

MAPPDFA allows to catch the error messages and have a special behaviour in the event of use of Licensed fonts contained in the input PDF file? It will then be possible to vectorialize the font in image (from MAPPDFA V1.1.0) and specifying a compression rate (from MAPPDFA V1.2.0) or also to force the acceptation of all or certain licensed fonts (from MAPPDFA V1.3.0). All of this of course with a PDF/A as output.

Détails

Fonts vectorialization

The Error/Warning messages for which we want to have the fonts vectorized are located in the following file :

xxx/mapping/conf/gserror.txt

Example of its content :

cannot be embedded because of licensing restrictions=vectorize_fonts
A font missing from the input PDF has been substituted=vectorize_fonts


  • If we get a error message : cannot be embedded because of licensing restrictions THEN we vectorize in the image the fonts.
  • If we get a error message : A font missing from the input PDF has been substituted THEN we vectorize in the image the fonts.

Acceptation of the licensed fonts

It is also possible to force the acceptation of MAPPDFA of the licensed font. To do so, we need to manually create a conf/authorized_fonts.txt file. MAPPDFA will then ignore the error message of licensed font restriction for the fonts listed in this file. The LICFONTS parameter of the command must be set to *LIST

Here is an content example of this file :

CFMZCH+DejaVuSans-Bold
  • If we get tge error message : CFMZCH+DejaVuSans-Bold cannot be embedded because of licensing restrictions THEN we will force its acceptance and the output PDF will be PDF/A compliant.

Utilization

Example 1 - Conversion of a simple pdf to PDFA/1-b rejecting all the licensed fonts

Warning: If there is one or multiple licensed fonts in the input PDF, the output PDF will then not be PDF/A compliant.

MAPPDFA INFILE('/home/mapping/simple_pdf.pdf') TYPE(*PDFA1) OUTFILE('/home/mapping/pdfa1_pdf.pdf')

Example 2 - Convert a simple pdf file to a PDF/A2-b accepting all licensed fonts

Warning: If there is one or multiple licensed fonts in the input PDF, the output PDF will be PDF/A compliant.

MAPPDFA INFILE('/home/mapping/simple_pdf.pdf') TYPE(*PDFA2) OUTFILE('/home/mapping/pdfa2_pdf.pdf') LICFONTS(*ALL)

Example 3 - Convert a simple pdf file to a PDF/A3-b accepting just one specfic licensed fonts CFMZCH+DejaVuSans-Bold

Warning : If there are one or multiple fonts other than FMZCH+DejaVuSans-Bold, then the output PDF will come out with vectorial image font if the settings is set as it (Content of gserror.txt file : cannot be embedded because of licensing restrictions=vectorize_fonts) If this setting is not present, then the output pdf will come out with dots instead of the licensed fonts and the PDF will not be PDF/A compliant.

MAPPDFA INFILE('/home/mapping/simple_pdf.pdf') TYPE(*PDFA3) OUTFILE('/home/mapping/pdfa3_pdf.pdf') LICFONTS(*LIST)

We will then need to have the name of the fonts in the conf/authorized_fonts.txt file :

CFMZCH+DejaVuSans-Bold

Remarks

  • In *LIST mode, if the conf/authorized_fonts.txt file does not exist, the output PDF will be 0KB
  • The conf/authorized_fonts.txt file is not included with the setup. If you need, you will need to create it with the ANSI encoding.