Как добавить TrimBox и BleedBox без растеризации шрифтов - PullRequest
0 голосов
/ 28 апреля 2020

Я хочу, чтобы Ghostscript подготовил PDF-файлы для печати. Входной PDF-файл представлен в формате RGB и имеет метки обрезки.

  1. Преобразование цветов в CMYK путем применения профиля I CC
  2. , добавления TrimBox и BleedBox

Мне удалось выполнить описанные выше шаги с помощью следующей команды:

gs -o output.pdf -sDEVICE=pdfwrite -dPDFX  -r100 -dOverrideICC=true -sOutputICCProfile=ISOcoated_v2_300_eci.icc -sColorConversionStrategy=CMYK -dProcessColorModel=/DeviceCMYK -dRenderIntent=3 input.pdf -c "[ /PAGES pdfmark << /PDFXSetBleedBoxToMediaBox false /PDFXTrimBoxToMediaBoxOffset [29 29 29 29] /PDFXBleedBoxToTrimBoxOffset [8 8 8 8] >> setdistillerparams" -f 

Но, к сожалению, шрифты растеризуются. Я узнал, что -dPDFX вызывает это. Но похоже, что -dPDFX необходимо для добавления TrimBox и BleedBox. Без -dPDFX шрифты остаются без изменений, но ящики не будут добавлены.

Я на OSX, PDF содержит два шрифта типа 3 .
Любая помощь очень оценили.

1 Ответ

0 голосов
/ 28 апреля 2020

ОК, несколько моментов:

Ghostscript (и, в частности, устройство pdfwrite) не добавляет ничего к файлам PDF. Он создает новые PDF-файлы из предоставленного ввода, который может быть или не быть PDF-файлом.

Процесс описан здесь , и я бы посоветовал вам прочитать его. По сути, вы не можете предполагать, что содержание созданного файла PDF имеет какое-либо отношение к содержанию ввода, если это файл PDF.

Использование вами профилей I CC не приводит к преобразованию в CMYK, это делается путем установки ColorConversionStrategy. Ваши настройки OverrideI CC и OutputICCProfile ничего не делают, и вы должны удалить эти переключатели. Кроме того, вы не должны устанавливать ProcessColorModel, если вы устанавливаете ColorConversionStrategy. Точно так же настройка RenderIntent ничего не делает с устройством pdfwrite, отбросьте это тоже.

Не устанавливайте разрешение. Все, что нужно, это установить разрешение любого контента, который должен быть отображен (например, создать файл PDF <версия 1.4 из входного файла, содержащего прозрачность). Так что отбросьте -r100. </p>

-dPDFX не приводит к растеризации шрифтов.

Если это происходит, то почти наверняка это никак не связано с выбором PDFX, не видя ваш входной файл, я могу Не комментируйте дальше.

-dPDFX не требуется для создания файла PDF с TrimBox или BleedBox.

Конечно, что ваш PostScript на самом деле делает, это создает PDFX Bleed и Trim Offsets , и да, если вы хотите, то вам нужно четко установить PDFX. OTOH, если вы действительно хотите установить обычные обычные поля Bleed или Trim, то это также задокументировано в справочнике pdfmark (см. Стр. 37 в справочнике 1.7 pdfmark):

Синтаксис для указания нестандартного значения обрезка страницы для определенной страницы в документе выглядит следующим образом: [/ CropBox [xll yll xur yur] / PAGE pdfmark Синтаксис для задания обрезки страницы по умолчанию для документа выглядит следующим образом: [/ CropBox [xll yll xur yur] / СТРАНИЦЫ pdfmark

Очевидно, что для CropBox вы должны приостановить кровотечение или обрезку.

[Позже]

Эта командная строка:

gs -sDEVICE=pdfwrite -sOutputFile=new.pdf  /temp/input.pdf -c "[/CropBox [100 100 7568 3784] /PAGES pdfmark" -f

для Я создаю файл PDF (new.pdf), который имеет CropBox в узле дерева страниц root. Записи в дереве страниц наследуются всеми страницами ниже узла, в котором они определены, и когда я открываю файл с помощью Acrobatm, я вижу, что метки обрезки больше не видны.

Так что для меня все работает хорошо, и без использования PDFX. Добавление -sColorConversionStrategy = CMYK должно быть достаточно, чтобы получить файл CMYK. А поскольку он не использует PDF / X, он будет поддерживать прозрачность, а не отображать ее. обратите внимание, что, поскольку все ваши файлы находятся в DeviceGray, цвет все равно остается неизменным.

Я забыл сказать, что использование / TrimBox вместо / CropBox также отлично работает для меня, точно таким же образом.

...