2017-05-31 6 views
0

Mon but est de prendre un PDF arbitraire des utilisateurs, et de l'enregistrer en tant que PDF/A-2b.PDF en PDF/A-2b sans dUseCIEColor

L'approche actuelle consiste à utiliser Ghostscript 9.21 (via ghost4j) pour créer le fichier converti. Cela fonctionne mais pas sans problèmes. Je l'ai eu pour travailler avec deux ensembles différents de paramètres à Ghostscript.

Tout d'abord

En utilisant l'option -dUseCIEColor comme indiqué ci-dessous fonctionnera et produit PDF valide/A-2b avec un couple de différents fichiers de test. Cela va cependant imprimer des pages d'erreurs dans le journal en disant qu'il n'est pas recommandé d'utiliser.

Ce sont tous les arguments:

-dBATCH 
-dNOPAUSE 
-dPrinted=true 
-sDEVICE=pdfwrite 
-dPDFACompatibilityPolicy=1 
-sColorConversionStrategy=/UseDeviceIndependentColor 
-sProcessColorModel=DeviceCMYK 
-sOutputICCProfile=/tmp/icc.icc 
-sOutputFile=/tmp/result.pdf 
-dPDFA=2 
-dUseCIEColor 
/tmp/PDFA_def.ps 
/tmp/test.pdf 

Et les PDFA_def.ps est le fournisseur par défaut 9,21, pointant vers le même profil ICC et cette ligne dans le fond:

<</NeverEmbed []>> setdistillerparams 

La CPI Le profil est un profil aléatoire (CMJN) publié par Adobe.

Cela fonctionne, en dehors des erreurs dans le journal.

En second lieu

Alors je vais essayer de faire comme les erreurs du journal ont dit, et retirez le -dUseCIEColor.

Maintenant, certains des fichiers de test fonctionnent, d'habitude. Je soupçonne que cela a à voir avec le profil de couleur du PDF original, ou quelque chose comme ça. Les trois hauteurs donnent l'erreur de validation: Un espace colorimétrique spécifique à l'appareil (DeviceRGB) sans intention de sortie appropriée est utilisé.

Ceci peut être corrigé en commutant le -sProcessColorModel=DeviceRGB et basculer le profil ICC sur un profil RVB aléatoire.

Ensuite, pour un autre document, vous obtenez l'erreur: Un espace colorimétrique spécifique à l'appareil (DeviceCMYK) sans intention de sortie appropriée est utilisée.

Y at-il quelque chose qui me manque? Il semblerait que j'ai besoin de changer les options basées sur le fichier PDF original qui serait loin du style préféré. Si cela aide, je serais bien avec PDF/A-2b noir et blanc aussi. Merci!

Répondre

1

Il est impossible de dire quels sont les problèmes sans voir les fichiers. UseCIEColor est un hack PostScript horrible pour essayer de faire la gestion des couleurs, il n'est pas fiable (en termes de couleur) et va effectivement vaincre toute vraie gestion des couleurs. Il est clair que vous n'effectuez pas la gestion des couleurs puisque vous utilisez un profil aléatoire, mais tout de même ....

Puisque vous ne vous souciez pas vraiment de la gestion des couleurs, je suggère que vous utilisiez CMJN au lieu de UseDeviceIndependentColor. (car c'est le ProcessColorModel que vous utilisez). Notez que si vous sélectionnez ColorConversionStrategy =/CMYK, vous n'avez pas besoin de définir ProcessColorModel, cela est supposé à partir de la conversion. À part ça, je dois vous suggérer d'ouvrir un rapport de bogue.Si les gens ne signalent pas les problèmes, ils ne seront pas corrigés ....

+0

Merci pour la réponse. Omettre sProcessColorModel provoquera une autre erreur de validation: "La valeur de la clé N est 3 mais doit être 4.", même avec dUseCIEColor. Sans cela, vous obtenez à la fois cela et l'erreur précédente. Je vais vérifier un rapport de bug hors de l'horloge, pour l'instant je suppose que nous irons avec le dUseCIEColor. – kallehj

+0

Avez-vous changé ColorConversionStrategy en/CMYK? Parce que cela définit le ProcessColorModel. Il semble que vous ayez des profils ICC qui n'ont pas été convertis en espace périphérique. Cela ne devrait pas se produire si vous définissez ColorConversionStrategy sur autre chose que UseDeviceIndepenedentColor, mais que vous pourriez le faire si vous ne le faites pas. Pour être honnête, j'ai vraiment besoin de voir un fichier d'exemple pour aider. – KenS