2016-11-29 3 views
1

Je souhaite convertir le texte blanc de ce PDF en texte noir et générer un nouveau PDF avec le texte modifié.Utiliser Ghostscript/PostScript pour convertir toutes les couleurs de texte en noir dans un PDF

J'ai trouvé ce

http://www.artifex.com/files/Ghostscript_Color_Architecture.pdf

qui mentionne les paramètres comme -sTextICCProfile mais en utilisant black_output.icc de

http://www(dot)ghostscript.com/doc/toolbin/color/icc_creator/effects/

comme ceci:

gs -o test.pdf -sTextICCProfile=black_output.icc out.pdf

ne modifie pas la couleur du texte en noir.

L'utilisation du profil .icc est-elle incorrecte? Est-ce l'événement la bonne approche? Existe-t-il un moyen d'atteindre cet objectif avec postscript?

Example PDF

Répondre

1

L'utilisation du profil icc est correct ...

Cependant, cette utilisation est pour le rendu, il n'a aucun effet sur le dispositif de pdfwrite du tout (parce qu'elle ne rend pas l'entrée , il le transforme en un fichier PDF). Donc non, ce n'est pas la bonne approche.

Il n'y a pas vraiment moyen de faire ce que vous voulez avec Ghostscript. Techniquement, c'est probablement possible, mais ce ne serait pas facile. Vous n'avez pas non plus posté un exemple du fichier PDF. Il est tout à fait possible que le «texte» ne soit pas du texte. Ce peut être une image, ou des vecteurs, qui ressemblent à comme du texte.

Il peut également y avoir une transparence qui compliquerait encore la question.

+0

Le lien 'Example PDF' que j'ai fourni est un instantané de la partie pertinente du fichier PDF en question. Je ne peux pas télécharger le PDF en raison des informations personnelles contenues dans ce PDF. Le texte blanc sur fond noir est définitivement du texte. N'y a-t-il pas d'autre moyen d'influencer la sortie de ghostscript? – dparted

+0

C'est possible, ce n'est pas facile. Vous devez modifier le code qui dessine le texte afin qu'il change d'abord la couleur au noir. Si vous pouvez comprendre PostScript alors vous pouvez modifier /ghostpdl/Resource/Init/pdf_draw.ps, recherchez la routine/ShowText. Je crois que si vous modifiez cette routine pour définir l'espace colorimétrique en gris, et la couleur en noir, alors il émettra toutes les couleurs en noir. NB en changeant la couleur en noir ne «réduira» pas utilement les données, il sera facile de couper/coller le texte, et trivial pour quelqu'un qui entreprend le formatage pour défaire. – KenS

+0

Merci pour l'indice. Je ne veux pas expurger de données. Je supprime les images et les graphiques vectoriels. Cela supprimera la boîte noire autour du texte blanc. L'étape suivante consiste à convertir le PDF en une image, mais le texte blanc ne s'affichera pas. – dparted