2015-07-09 2 views
0

Нам необходимо конвертировать PDF-файлы, созданные с помощью ApacheFOP, и объединены с pdftk в PDF/X-1a. Я уже создал PDFX_def.ps со следующим содержанием:Прозрачность теряется при преобразовании PDF в PDF/X1a с Ghostscript

%! 
% This is a sample prefix file for creating a PDF/X-3 document. 
% Feel free to modify entries marked with "Customize". 
% This assumes an ICC profile to reside in the file (ISO Coated sb.icc), 
% unless the user modifies the corresponding line below. 
systemdict /ProcessColorModel known { 
systemdict /ProcessColorModel get dup /DeviceGray ne exch /DeviceCMYK ne and 
} { 
true 
} ifelse 
{ (ERROR: ProcessColorModel must be /DeviceGray or DeviceCMYK.)= 
/ProcessColorModel cvx /rangecheck signalerror 
} if 
% Define entries to the document Info dictionary : 
[ /GTS_PDFXVersion (PDF/X-1:2001) % Must be so (the standard requires). 
/GTS_PDFXConformance (PDF/X-1a:2001) 
/Title (Title) % Customize. 
/Trapped /False % Must be so (Ghostscript doesn't provide other). 
/DOCINFO pdfmark 
% Define an ICC profile : 
/ICCProfile (/var/www/share/data/files/sRGB_IEC61966-2-1_black_scaled.icc) def % Customize or remove. 
currentdict /ICCProfile known { 
[/_objdef {icc_PDFX} /type /stream /OBJ pdfmark 
[{icc_PDFX} <</N>> /PUT pdfmark 
[{icc_PDFX} ICCProfile (r) file /PUT pdfmark} if 
%Define the output intent dictionary : 
[/_objdef {OutputIntent_PDFX} /type /dict /OBJ pdfmark 
[{OutputIntent_PDFX} << 
/Type /OutputIntent % Must be so (the standard requires). 
/S /GTS_PDFX % Must be so (the standard requires). 
/OutputCondition (Commercial and specialty printing) % Customize 
/Info (none) % Customize 
/OutputConditionIdentifier (CGATS TR001) % Customize 
/RegistryName (http://www.color.org) % Must be so (the standard requires). 
currentdict /ICCProfile known { 
/DestOutputProfile {icc_PDFX} % Must be so (see above). 
} if 
>> /PUT pdfmark 
[{Catalog} <</OutputIntents [ {OutputIntent_PDFX} ]>> /PUT pdfmark 

Затем я использую этот файл в следующей команде:

gs -dPDFX -dBATCH -dNOPAUSE -dNOOUTERSAVE -dUseCIEColor \ 
    -sProcessColorModel=DeviceCMYK -sDEVICE=pdfwrite \ 
    -sOutputFile=output-x1a.pdf PDFX_def.ps output.pdf 

Я использую Ghostscript 9.05 и вот ссылки на оригинал и в результате PDF:

Как вы можете видеть в файлах PDF, прозрачность вокруг изображения теряется. Вы знаете, как это исправить? Или лучший способ создать файл PDF/X1a из исходного файла с Debian?

+0

Лучшее название вопроса для этого было бы «прозрачность в изображении, потерянном при конвертировании ...» –

ответ

4

Вы не можете использовать Ghostscript для надежного создания PDF/X1-файла PDF. Формат PDF/X-1a ограничивает цветовые пространства таким образом, что более старые версии устройств pdfwrite не могут и более новые версии не поддерживают.

PDF/X1-a не поддерживает прозрачность, поэтому вы не можете создать файл PDF/X-1a с прозрачностью в любом случае, если вы попробуете это с Ghostscript, он просто создаст файл PDF, который содержит большое растровое изображение образ.

Вы также должны использовать более новую версию Ghostscript, хотя это все равно не позволит вам создавать файл PDF/X1-a. Я не вижу ничего, кроме «оригинала» в указанном выше URL-адресе, поэтому не могу сказать, есть ли какие-то проблемы с выходным файлом.

NB, поскольку я постоянно говорю людям, когда вы используете pdfwrite, вы не «конвертируете» входной файл PDF, вы создаете совершенно новый PDF-файл на основе операторов маркировки, присутствующих в исходном файле PDF. Однако фактическое новое описание страницы не обязательно имеет никакого отношения к оригинальному.

+0

Два вопроса: 1) Знаете ли вы какой-либо другой способ cli? 2) Как я могу конвертировать в PDF/X3 (что должно быть возможно с помощью gs)? Поэтому мне нужен файл def.ps. – BeeJay

+0

Файл pdfx_def.ps создаст действительный файл PDF/X3 (я только что проверил с предварительным предпросмотром Acrobat). Однако в цвете первой страницы есть что-то странное (прозрачность правильная с текущим кодом). Единственный другой инструмент, о котором я знаю, создаст файл PDF/X из общего файла PDF, это Acrobat. Обратите внимание: поскольку PDF/X3 также не поддерживает прозрачность, вы все равно получите страницу 1, являющуюся большим растровым изображением. – KenS

+0

Пока что растровое изображение в порядке с нашей точки зрения. Но что произойдет, если у меня есть два вектора, перекрывающие друг друга (особенно с шрифтом поверх них)? Растрированы? – BeeJay