Преобразование PDF в CMYK (с распознаванием CMYK )

Мне очень трудно заставить ImageMagick идентифицировать для , ну, определите PDF как CMYK.

По сути, скажем, я создаю этот файл, test.tex , с pdflatex :

\documentclass[a4paper,12pt]{article}

%% https://tex.stackexchange.com/questions/13071
\pdfcompresslevel=0

%% http://compgroups.net/comp.text.tex/Making-a-cmyk-PDF
%% ln -s /usr/share/color/icc/sRGB.icm .
% \immediate\pdfobj stream attr{/N 4} file{sRGB.icm}
% \pdfcatalog{%
% /OutputIntents [ <<
% /Type /OutputIntent
% /S/GTS_PDFA1
% /DestOutputProfile \the\pdflastobj\space 0 R
% /OutputConditionIdentifier (sRGB IEC61966-2.1)
% /Info(sRGB IEC61966-2.1)
% >> ]
% }

%% http://latex-my.blogspot.com/2010/02/cmyk-output-for-commercial-printing.html
%% https://tex.stackexchange.com/questions/9961
\usepackage[cmyk]{xcolor}

\begin{document}
Some text here...
\end{document}

Если я попытаюсь идентифицировать полученный test.pdf , я получаю его как RGB, независимо от того, какие варианты я пробовал (по крайней мере, согласно ссылкам в источнике) - и все же цвета в нем будут сохранены как CMYK; для источника выше:

$ grep -ia 'cmyk\|rgb\| k' test.pdf 
0 0 0 1 k 0 0 0 1 K
0 0 0 1 k 0 0 0 1 K
0 0 0 1 k 0 0 0 1 K
0 0 0 1 k 0 0 0 1 K
FontDirectory/CMR12 known{/CMR12 findfont dup/UniqueID known{dup
/PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-1.40.11-2.2 (TeX Live 2010) kpathsea version 6.0.0)

$ identify -verbose 'test.pdf[0]'
...
  Type: Palette
  Endianess: Undefined
  Colorspace: RGB
  Depth: 16/8-bit
  Channel depth:
    red: 8-bit
    green: 8-bit
    blue: 8-bit
  Channel statistics:
    Red:
...
    Green:
...
    Blue:
...
  Histogram:
         5: (12593,11565,11822) #31312D2D2E2E rgb(49,45,46)
         4: (16448,15420,15677) #40403C3C3D3D rgb(64,60,61)
         9: (20303,19275,19532) #4F4F4B4B4C4C rgb(79,75,76)
        25: (23901,23130,23387) #5D5D5A5A5B5B rgb(93,90,91)
...

То же самое в значительной степени произойдет, если я также раскомментирую этот \ непосредственный \ pdfobj поток ... часть; и все же, если в документе только один цвет (черный), я не вижу, где идентифицирует гистограмму значений RGB (хотя, возможно, все они близки к серым) ?!

Не обращайте на это внимания, тогда мне лучше попробовать использовать ghostscript , чтобы преобразовать test.pdf в новый PDF-файл, который будет распознан как CMYK by идентифицируйте - но даже там не повезло:

$ gs -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite  -sOutputFile=test-gs.pdf -dUseCIEColor -sProcessColorModel=DeviceRGB -dProcessColorModel=/DeviceCMYK -sColorConversionStrategy=/CMYK test.pdf 

GPL Ghostscript 9.01 (2011-02-07)
Copyright (C) 2010 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 1.
Page 1


$ identify -verbose 'test-gs.pdf[0]'
...
  Type: Grayscale
  Base type: Grayscale
  Endianess: Undefined
  Colorspace: RGB
  Depth: 16/8-bit
...

Итак, единственное, что идентифицирует , воспринимается как изменение, это Тип: оттенки серого (из предыдущего Тип: Палитра ); но в остальном он по-прежнему видит цветовое пространство RGB!

Вместе с этим обратите внимание, что identify способен правильно сообщать CMYK pdf - см. Пример плаката CMYK: подгонка размера страницы pdf к (растровое изображение) размер изображения? # 17843 - TeX - LaTeX - Stack Exchange для примера командной строки создания такого файла PDF с использованием convert и gs . Фактически, мы можем выполнить:

convert test.pdf -depth 8 -colorspace cmyk -alpha Off test-c.pdf

... и этот приведет к PDF, который будет идентифицировать ed как CMYK - однако PDF также будет растеризован (по умолчанию при 72 dpi).

РЕДАКТИРОВАТЬ: Я только что обнаружил, что если я создам презентацию .odp в OpenOffice и экспортирую ее в PDF; этот PDF-файл по умолчанию будет в формате RGB, однако следующая команда (из ghostscript examples | Production Monkeys ):

# Color PDF to CMYK:
gs -dSAFER -dBATCH -dNOPAUSE -dNOCACHE -sDEVICE=pdfwrite \
-sColorConversionStrategy=CMYK -dProcessColorModel=/DeviceCMYK \
-sOutputFile=output.pdf input.pdf

... фактически создаст CMYK pdf, о чем сообщает identify (правда, на всех четырех каналах черный будет насыщенным, а не однотонным); однако эта команда будет работать только , когда к слайду добавлено изображение (по-видимому, именно оно запускает преобразование цвета ?!)! Как ни странно, я не могу получить тот же эффект от pdflatex PDF.

Думаю, мой вопрос можно задать двумя способами:

  • Есть ли в Linux какие-либо методы преобразования из командной строки, которые преобразуют PDF-файл RGB в PDF-файл CMYK с сохранением векторов, которые распознаются как таковые в идентифицируйте (и, следовательно, построите правильную гистограмму цветов CMYK)
  • Существуют ли другие инструменты командной строки Linux, подобные идентифицируйте , которые могли бы правильно распознавать использование цветов CMYK даже в исходном тесте.pdf из pdflatex ( и, возможно, построить цветовую гистограмму на основе произвольно выбранной страницы PDF, например, идентификатор предполагается )?

Заранее благодарим за ответы,
Ура!

Некоторые ссылки:

25
задан Community 23 May 2017 в 11:54
поделиться