Czy jest coś, co może czytać, importować lub konwertować CMYK SVG?

11

Krótkie pytanie: Mam pliki SVG w kolorach CMYK, określone zgodnie ze specyfikacją SVG . Chcę umieścić to w programie do projektowania - w dowolnym programie do projektowania - aby sfinalizować projekt i przygotować go do wydruku. Jednak nie mogę znaleźć niczego, co faktycznie zwraca uwagę na kolory CMYK w SVG (w każdym razie nie w programie Illustrator ani Inkscape).

Kolory są skomplikowane i niełatwo je po prostu przekonwertować: wyobraź sobie setki odcieni generowanych dynamicznie, jako odcienie i mieszanki CMYK zgodnie z wytycznymi marki, które muszą być odpowiednie.


Tło: Coś, co staje się coraz bardziej powszechne, to projektowanie grafiki opartej na danych, które są generowane z danych przy użyciu javascript i SVG, a następnie publikowanie jednego wariantu dla Internetu za pomocą javascript i SVG, na przykład przez D3 (lub przez Raphael / D34Raphael dla obsługi IE) , a następnie przy użyciu tego samego kodu do wygenerowania wariantu wydruku, który jest gotowy w programie Illustrator (lub Inkscape) i wysłany do drukarek lub osób zajmujących się układaniem jako plik PDF.

Oto przykład z blogu graficznego New York Times omawiającego ten przepływ pracy. Poniższa grafika została zakodowana dla Internetu, następnie plik SVG został skopiowany z przeglądarki do programu Illustrator, a następnie sfinalizowany jako grafika drukowana (dla nich kolory są proste, więc nie mają mojego problemu, mogą po prostu przekonwertować z RGB) :

wprowadź opis zdjęcia tutaj

SVG może określać kolory CMYK (dla każdego kodera SVG tam dostępna jest następująca składnia:) <circle fill="#CD853F device-cmyk(0.11, 0.48, 0.83, 0.00)"/>. Ale większość oprogramowania do projektowania ignoruje to. Widziałem rozmowy w społeczności Inkscape dotyczące myślenia o wsparciu CMYK SVG i coś skomplikowanego z udziałem Scribusa („InDesign typu open source”), ale nie udało mi się dostać do pracy (być może źle zrozumiałem Scribusa - edycja: ten artykuł sugeruje, że Scribus może importować CMYK SVG, jeśli zdefiniuje go jako profil kolorów ICC ... jeszcze nie całkiem go wyczuwa, ale wygląda obiecująco).


Mogę więc utworzyć kod, który generuje wizualizacje RGB SVG w „trybie sieciowym”, a CMYK SVG w „trybie drukowania”, dynamicznie generując kolory, które są w sam raz. Problem polega na tym, że nie mogę nic zrobić z tymi plikami CMYK SVG - Illustrator i Inkscape traktują je tylko jako czarne.

Czy istnieje jakiś program graficzny, wtyczki lub metoda, która może podjąć SVG obraz z kształtami CMYK i przekształcić ją w dowolnym formacie wektorowym ( ai, pdf, eps...), gdzie oprogramowanie do projektowania wysłucha kolorów CMYK?


Oto prosty plik SVG z tekstem w kolorach określonych w CMYK. Po prostu skopiuj, wklej i zapisz jako plik .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
źródło
Masz plik testowy?
Scott
@ scott Zredagowałem prostą odpowiedź na pytanie
user56reinstatemonica8
Wszystko o kodzie SVG można zmienić. Znalazłem również ten artykuł - libregraphicsworld.org/blog/entry/… - który wygląda na to, że Scribus może importować CMYK SVG, jeśli jest poprawnie zdefiniowany. Jednak jeszcze go nie złamałem.
user56reinstatemonica8
Cóż, nie mam tu nic, co by pociągało za kolor.
Scott
1
Pamiętaj, że masz na myśli standardowy szkic SVG 1.2 . Komitet porzucił SVG 1.2 na rzecz SVG 2, którego standaryzacja zajmie prawdopodobnie lata.
John Smith,

Odpowiedzi:

6

To wydaje się działać:

  • Zainstaluj alternatywną wersję Open Source, Scribus , Mac i Windows (istnieje także oficjalna przenośna wersja dla Windows na Sourceforge , która nie wymaga instalacji). OSTRZEŻENIE: jego interfejs jest bardzo mylący ... Ale jest darmowy i wykonuje tę konkretną pracę, jest tylko jedna prosta rzecz, do której musimy go użyć.
  • Otwórz, przejdź do File > Document Setuptego Colour Managementi ustaw wszystko, co dotyczy CMYK Generic CMYK profile- powinny to być trzy miejsca: kolory, solidne kształty i druk.
  • Upewnij się, że pliki SVG określają kolory CMYK w następujący sposób: fill="#ffffff icc-color(Generic-CMYK-profile, 1.00, 0.50, 0.00, 0.25)"(gdzie 1,00 = 100%)

    • Jeśli plik SVG jest generowany w przeglądarce, przeglądarki nie lubią ustawiać takich danych stylu. Spróbuj najpierw ustawić fillatrybut bezpośrednio, a jeśli to nie zadziała, spróbuj użyć niestandardowego atrybutu SVG, np. data-fill="#223fa3 icc-color..."Znajdź i zamień go w pliku tekstowym.
    • Nie martw się, jeśli wszystko pokazuje się w przeglądarce jako czarne, to znak, że dane wypełnienia są tam, ale przeglądarka ich nie rozumie - normalnie. Sprawdź, aby sprawdzić element, aby się upewnić.
    • Jeśli SVG jest generowany przez Raphaela, ustaw go tak element.node.setAttribute( 'fill', '#223fa3 icc-color...' );- .attr('fill','')Wydaje się , że Raphael nie stosuje się do rzeczywistego elementu. Zaktualizuj także, .attr('fill')jeśli kod będzie musiał to przeczytać później. To samo dotyczy stroke. Działa tylko w trybie SVG, oczywiście ...
  • Zaimportuj plik SVG do Scribus za pomocąFile > Import > Get vector
  • Eksportuj jako plik PDF (eksportowanie jako EPS nie działało dla mnie, zawierało wszystkie kolory). Upewnij się, że w opcjach eksportu jest ustawiony na „CMYK” lub „Do drukowania”, lub w tej chwili pod frazą w zakładce zarządzania kolorami - domyślnie jest to RGB („Dla stron internetowych / ekranów”).
  • Otwórz ten plik PDF w programie Illustrator - powinien on zostać otwarty jako dokument CMYK z tymi samymi kolorami CMYK, które określono w oryginalnym pliku SVG.

Wynik: grafika CMYK w programie Illustrator, pasująca do SVG, z kolorami CMYK określonymi w SVG.


Ostrzeżenie: obsługa SVG przez Scribus jest bardzo ryzykowna. W szczególności:

  • Zasadniczo nie ma obsługi tekstu SVG, a oni nie posunęli się dalej w kierunku obsługi tekstu SVG, niż spór o to, czyja to wina . Spodziewaj się, że obrysuje on cały tekst zbyt daleko niewłaściwą czcionką z okropnym kerningiem.
  • Wydaje się, że jest mylony przez gradienty i przezroczystość - chociaż czasami wyświetla rzeczy poprawnie, pomimo narzekania po drodze.
  • Wszystko w pliku PDF zostanie owinięte w stos masek przycinających.
  • Własny interfejs Scribusa jest naprawdę mylący (od lata 2013 r.) - zalecam robienie absolutnie minimalnego majsterkowania w samym Scribusie.

Czasami może być konieczne wymieszanie elementów z oryginalnego pliku SVG (np. Tekstu) z wersją zapisaną w Scribusie. Jeśli ktoś zna lepszy sposób niż Scribus, udostępnij!


Jeśli potrzebujesz określonych profili kolorów, możesz zainstalować więcej profili kolorów w Scribusie i określić je w swoim pliku SVG, ale nie jestem pewien szczegółów. Ten wcześniej powiązany artykuł może być dobrym miejscem na początek.

user56reinstatemonica8
źródło