My final goal is to generate a PDF/A-3 containing an XML file named factur-x.xml compatible with the Factur-X standard.
For this, I installed version 10.03.1 of GhostScript on Windows in c:gsgs10.03.1
Initially, I will leave aside the integration of factur-x.xml to concentrate on the conversion to PDF/A-3
At the moment I have the following error message:
Failed to open the supplied ICCProfile for reading’. This may be due to
an incorrect filename or a failure to add –permit-file-read=
to the commande line. This PostScript program needs to open the file
and you must explicitly grant it permission to do so
The PDF is nevertheless generated and Adobe Reader indicates in the ‘Standards’ tab:
Normes:
Conformité
Norme: PDF/A-3B
Nom ISO: ISO 19005-3
Etat: pas encore vérifié
Mode de sortie
Identifiant:
Infos:
I use veraPDF to check compliance and it tells me:
enter image description here
I tried the following syntax:
gswin64c -sDEVICE=pdfwrite -dPDFA=3 -r300 -sProcessColorModel=DeviceRGB -sColorConversionStrategy=RGB -dPDFACompatibilityPolicy=1 -dCompressPages=false -dCompressFonts=false --permit-file-read=c:gsgs10.03.1lib;c:gsgs10.03.1iccprofiles;c:idempdf; -o FacOut.pdf "C:gsgs10.03.1libPDFA_def.ps" FacIn.pdf
The current prompt is c:idempdf
I specify that I modified the file ‘C:gsgs10.03.1libPDFA-def.ps’ by indicating the absolute path ‘c:gsgs10.03.1iccprofilesdefault_rgb.icc’ at the line ‘/ICCProfile’
Below, my file C:gsgs10.03.1libPDFA_def.ps
`%!
% This is a sample prefix file for creating a PDF/A document.
% Users should modify entries marked with "Customize".
% This assumes an ICC profile resides in the file (srgb.icc),
% in the current directory unless the user modifies the corresponding line below.
% Define entries in the document Info dictionary :
[ /Title (test) % Customise
/DOCINFO pdfmark
% Define an ICC profile :
/ICCProfile (c:gsgs10.03.1iccprofilesdefault_rgb.icc) % Customise
def
[/_objdef {icc_PDFA} /type /stream /OBJ pdfmark
%% This code attempts to set the /N (number of components) key for the ICC colour space.
%% To do this it checks the ColorConversionStrategy or the device ProcessColorModel if
%% ColorConversionStrategy is not set.
%% This is not 100% reliable. A better solution is for the user to edit this and replace
%% the code between the ---8<--- lines with a simple declaration like:
%% /N 3
%% where the value of N is the number of components from the profile defined in /ICCProfile above.
%%
[{icc_PDFA}
<<
%% ----------8<--------------8<-------------8<--------------8<----------
systemdict /ColorConversionStrategy known {
systemdict /ColorConversionStrategy get cvn dup /Gray eq {
pop /N 1 false
}{
dup /RGB eq {
pop /N 3 false
}{
/CMYK eq {
/N 4 false
}{
(tColorConversionStrategy not a device space, falling back to ProcessColorModel, output may not be valid PDF/A.n)=
true
} ifelse
} ifelse
} ifelse
} {
(tColorConversionStrategy not set, falling back to ProcessColorModel, output may not be valid PDF/A.n)=
true
} ifelse
{
currentpagedevice /ProcessColorModel get
dup /DeviceGray eq {
pop /N 1
}{
dup /DeviceRGB eq {
pop /N 3
}{
dup /DeviceCMYK eq {
pop /N 4
} {
(tProcessColorModel not a device space.)=
/ProcessColorModel cvx /rangecheck signalerror
} ifelse
} ifelse
} ifelse
} if
%% ----------8<--------------8<-------------8<--------------8<----------
>> /PUT pdfmark
[
{icc_PDFA}
{ICCProfile (r) file} stopped
{
(ntFailed to open the supplied ICCProfile for reading. This may be due ton) print
(t an incorrect filename or a failure to add --permit-file-read=<profile>n) print
(t to the command line. This PostScript program needs to open the filen) print
(t and you must explicitly grant it permission to do so.nn) print
(tPDF/A processing aborted, output may not be a PDF/A file.nn) print
cleartomark
}
{
/PUT pdfmark
% Define the output intent dictionary :
[/_objdef {OutputIntent_PDFA} /type /dict /OBJ pdfmark
[{OutputIntent_PDFA} <<
/Type /OutputIntent % Must be so (the standard requires).
/S /GTS_PDFA1 % Must be so (the standard requires).
/DestOutputProfile {icc_PDFA} % Must be so (see above).
/OutputConditionIdentifier (sRGB) % Customize
>> /PUT pdfmark
[{Catalog} <</OutputIntents [ {OutputIntent_PDFA} ]>> /PUT pdfmark
} ifelse
`
GhostScript gives me an error:
‘Failed to open the supplied ICCProfile for reading’. This may be due to
an incorrect filename or a failure to add –permit-file-read=
to the commande line. This PostScript program needs to open the file
and you must explicitly grant it permission to do so’
I don’t understand this error because I use the parameter –permit-file-read=c:gsgs10.03.1lib;c:gsgs10.03.1iccprofiles;c:idem pdf;
Hal9000 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.