Y a-t-il quelque chose qui peut lire, importer ou convertir SVG CMJN?

11

Question courte: J'ai des fichiers SVG avec des couleurs CMJN, spécifiés selon les spécifications SVG . Je veux intégrer cela dans un programme de conception - tout programme de conception - pour finaliser la conception et la préparer à l'impression. Cependant, je ne trouve rien qui prête réellement attention aux couleurs CMJN dans le SVG (pas Illustrator ou Inkscape, de toute façon).

Les couleurs sont compliquées et difficiles à convertir: imaginez des centaines de nuances générées dynamiquement, comme des teintes et des mélanges de CMJN spécifiés par les directives de la marque qui doivent être parfaits.


Contexte: quelque chose qui devient de plus en plus courant consiste à concevoir des graphiques basés sur des données qui sont générés à partir de données à l'aide de javascript et SVG, puis à publier une variante pour le Web à l'aide de javascript et SVG, par exemple via D3 (ou via Raphael / D34Raphael pour le support IE). , puis en utilisant le même code pour produire une variante pour l'impression, qui est terminée dans Illustrator (ou Inkscape) et envoyée aux imprimeurs ou aux mises en page au format PDF.

Voici un exemple du blog graphique du New York Times expliquant ce flux de travail. Le graphique ci-dessous a été codé pour le Web, puis le SVG a été copié du navigateur dans Illustrator, puis finalisé en tant que graphique d'impression (pour eux, les couleurs sont simples, donc elles n'ont pas mon problème, elles peuvent simplement être converties à partir du RVB) :

entrez la description de l'image ici

SVG peut spécifier des couleurs CMJN (pour tous les codeurs SVG, la syntaxe ressemble à ceci:) <circle fill="#CD853F device-cmyk(0.11, 0.48, 0.83, 0.00)"/>. Mais la plupart des logiciels de conception l'ignorent. J'ai vu dans la communauté Inkscape des discussions sur la prise en charge de CMYK SVG, et quelque chose de compliqué impliquant Scribus ("l'inDesign open-source"), mais je n'ai pas réussi à faire fonctionner les deux (j'ai peut-être mal compris celui de Scribus) - modifier: cet article suggère que Scribus peut importer le SVG CMJN s'il le définit comme un profil de couleur ICC ... pas encore tout à fait sens mais il semble prometteur).


Ainsi, je peux créer du code qui génère des visualisations RVB SVG en «mode Web» et CMJN SVG en «mode d'impression», générant dynamiquement des couleurs qui conviennent parfaitement. Le problème est que je ne peux rien faire avec ces fichiers SVG CMJN - Illustrator et Inkscape les traitent simplement comme des noirs.

Est - il un programme graphique, plugin ou méthode qui peut prendre une image SVG avec des formes CMJN et le convertir en tout format vectoriel ( ai, pdf, eps...) où le logiciel de conception écoutera les couleurs CMJN?


Voici un fichier SVG simple avec du texte avec des couleurs spécifiées en CMJN. Copiez et collez et enregistrez simplement en tant que fichier .svg.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" 
     xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="176.18px"
     height="111.59px" viewBox="0 0 176.18 111.59" enable-background="new 0 0 176.18 111.59" xml:space="preserve">
<switch>
    <g>
        <text transform="matrix(1 0 0 1 31.5986 34.522)" fill="#dddddd device-cmyk(0.00, 0.00, 0.00, 0.60)" font-family="'MyriadPro-Regular'" font-size="12">TEST FILE...</text>
        <text transform="matrix(1 0 0 1 31.5986 59.3633)" fill="#dddddd device-cmyk(0.00, 0.85, 0.65, 0.00)" font-family="'MyriadPro-Regular'" font-size="12">This should be red</text>
        <text transform="matrix(1 0 0 1 31.5986 84.2041)" fill="#dddddd device-cmyk(0.90, 0.55, 0.00, 0.00)" font-family="'MyriadPro-Regular'" font-size="12">This should be blue</text>
    </g>
</switch>
</svg>
user56reinstatemonica8
la source
Vous avez un fichier de test?
Scott
@scott J'en ai édité un simple dans la question
user56reinstatemonica8
Tout ce qui concerne le code du SVG peut être modifié. En outre, j'ai trouvé cet article - libregraphicsworld.org/blog/entry/… - qui ressemble à Scribus pourrait être en mesure d'importer CMYK SVG s'il est défini correctement. Pas encore craqué cependant.
user56reinstatemonica8
Eh bien, je n'ai rien ici qui tire la couleur.
Scott
1
Notez que c'est le brouillon standard SVG 1.2 dont vous parlez. SVG 1.2 a été abandonné par le comité en faveur de SVG 2, ce qui prendra probablement des années pour être standardisé.
John Smith

Réponses:

6

Cela semble fonctionner:

  • Installez l'alternative open source indesign Scribus , Mac et Windows (il existe également une version portable officielle pour Windows sur sourceforge qui ne nécessite pas d'installation). AVERTISSEMENT: son interface est très déroutante ... Mais, c'est gratuit et fait ce travail particulier, il n'y a qu'une seule chose simple pour laquelle nous devons l'utiliser.
  • Ouvrez-le, allez File > Document Setupensuite Colour Managementet définissez tout ce qui concerne CMJN Generic CMYK profile- devrait être trois endroits: couleurs, formes solides et impression.
  • Assurez-vous que les fichiers SVG spécifient leurs couleurs CMJN comme ceci: fill="#ffffff icc-color(Generic-CMYK-profile, 1.00, 0.50, 0.00, 0.25)"(où 1,00 = 100%)

    • Si le SVG est généré dans un navigateur, les navigateurs n'aiment pas définir des données de style comme celle-ci. Essayez d'abord de définir l' fillattribut directement, et si cela ne fonctionne pas, essayez d'utiliser un attribut SVG personnalisé comme data-fill="#223fa3 icc-color..."puis trouvez-le remplacer dans le fichier texte.
    • Ne vous inquiétez pas si tout apparaît en noir dans le navigateur, c'est un signe que les données de remplissage sont là mais que le navigateur ne les comprend pas - normal. Vérifiez avec l'élément d'inspection pour être sûr.
    • Si le SVG est généré par Raphael, définissez-le comme element.node.setAttribute( 'fill', '#223fa3 icc-color...' );- Raphael .attr('fill','')ne semble pas s'appliquer à l'élément réel. Mettez également à jour .attr('fill')si le code doit le lire plus tard. Il en va de même stroke. Ne fonctionnera qu'en mode SVG, naturellement ...
  • Importez le fichier SVG dans Scribus à l'aide deFile > Import > Get vector
  • Exporter au format PDF (l'exportation au format EPS n'a pas fonctionné pour moi, cela a auguré toutes les couleurs). Assurez-vous que dans les options d'exportation, il est réglé sur «CMJN» ou «Pour l'impression» ou quelle que soit la formule utilisée actuellement sous l'onglet de gestion des couleurs - la valeur par défaut semble être RVB («Pour le Web / les écrans»).
  • Ouvrez ce PDF dans Illustrator - il devrait s'ouvrir en tant que document CMJN avec les mêmes couleurs CMJN que celles spécifiées dans le SVG d'origine.

Résultat: graphiques CMJN dans Illustrator, correspondant au SVG, avec des couleurs CMJN comme spécifié dans le SVG.


Avertissement: le support SVG de Scribus est très compliqué. En particulier:

  • Il n'y a fondamentalement aucun support de texte SVG, et ils ne sont pas allés plus loin dans la prise en charge du texte SVG qu'un argument sur la faute de qui c'est . Attendez-vous à ce qu'il décrive tout le texte trop loin dans la mauvaise police avec un crénage horrible.
  • Il semble être confondu par les dégradés et la transparence - même si parfois il affiche les choses correctement, malgré les plaintes en cours de route.
  • Tout dans le PDF sera enveloppé dans un tas de masques d'écrêtage.
  • L'interface de Scribus est vraiment déroutante (à partir de l'été 2013) - je recommande de faire le bricolage minimum absolu dans Scribus lui-même.

Parfois, vous devrez peut-être mélanger des éléments du SVG d'origine (par exemple du texte) avec la version borked Scribus. Si quelqu'un connaît mieux que Scribus, partagez-le!


Si vous avez besoin de profils de couleurs spécifiques, vous pouvez installer plus de profils de couleurs dans Scribus et les spécifier dans votre SVG, mais je ne suis pas sûr des détails. Cet article précédemment lié pourrait être un bon point de départ.

user56reinstatemonica8
la source