Определите выходной прямоугольник при создании PDF из PostScript с помощью GhostScript.

Вопрос или проблема

У меня есть несколько старых файлов PostScript, и я пытаюсь конвертировать их в PDF-файлы с помощью GhostScript. К сожалению, файлы PostScript используют нестандартный размер бумаги (16″ x 20″), как показано ниже:

featurebegin{
%%BeginFeature: *CustomPageSize

1440 1152 0 0 0
  5 -2 roll exch 5 2 roll
  3 -2 roll exch 3 2 roll
  [ {}
    {90 rotate 0 currentpagedevice /PageSize get 0 get neg translate}
    {180 rotate currentpagedevice /PageSize get 
     dup 0 get neg exch 1 get neg translate}
    {270 rotate currentpagedevice /PageSize get 1 get neg 0 translate}
  ] exch get
  4 dict dup begin 6 1 roll
  /Install exch def
  2 array astore /PageOffset exch def
  2 array astore /PageSize exch def
  /ImagingBBox null def
  end setpagedevice
%%EndFeature
}featurecleanup

“Полезное” содержимое файлов PostScript будет соответствовать размеру бумаги A4, поэтому в моем результирующем PDF-файле содержимое отображается в левом верхнем углу и образует большую границу справа и снизу (Пример изображения созданного PDF-файла).

Как я могу сказать GhostScript использовать прямоугольник в левом верхнем углу с размером, соответствующим размеру бумаги A4, чтобы избежать этой большой границы из-за нестандартного размера бумаги?

Я пробовал разные подходы с комбинациями параметров -dFitPage, -dFIXEDMEDIA, -sPAPERSIZE=a4, -dDEVICEWIDTHPOINTS, -dDEVICEHEIGHTPOINTS, но ничего не работает так, как ожидается.

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

Мне не нужно масштабирование содержимого, я просто хочу определить прямоугольник, который будет использоваться для создания PDF-файла. Это возможно сделать с помощью GhostScript?

Ответ или решение

При создании PDF-документов из файлов PostScript с помощью GhostScript, понятие «выходной прямоугольник» (output rectangle) становится критически важным. Это связано с тем, что в случае нестандартных размеров бумаги, таких как 16"x20", требуется правильно определять область, которая будет использована для отображения содержимого в итоговом PDF-файле.

Определение выходного прямоугольника

Выходной прямоугольник – это область на странице, в пределах которой будет размещено содержимое документа. В вашем случае, поскольку "полезное" содержимое совпадает с форматом A4, важно установить размеры выходного прямоугольника так, чтобы эта область соответствовала форматам A4 и избегала появления ненужных пустых мест (например, больших границ с правой и нижней стороны страницы).

Настройка GhostScript

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

  1. -sDEVICE=pdfwrite: Определяет, что выходной файл будет в формате PDF.

  2. -sPAPERSIZE=a4: Устанавливает размер бумаги на A4, что является вашим целевым форматом.

  3. -dDEVICEWIDTHPOINTS= и -dDEVICEHEIGHTPOINTS=: Эти параметры можно установить, чтобы явно задать размеры выходного прямоугольника, основываясь на размерах A4 (например, 595×842 points).

  4. -dFitPage: Хотя этот параметр предназначен для масштабирования содержимого под размер страницы, в вашем случае вам не требуется масштабирование. Лучше воспользоваться другими параметрами.

  5. -dFIXEDMEDIA: Используйте этот параметр, чтобы предотвратить изменение размера страницы в соответствии с содержимым.

Рекомендуемая команда

Исходя из ваших требований, можно использовать следующую команду для запуска GhostScript:

gs -sDEVICE=pdfwrite -sPAPERSIZE=a4 -dDEVICEWIDTHPOINTS=595 -dDEVICEHEIGHTPOINTS=842 -dFIXEDMEDIA -dNOPAUSE -dBATCH input.ps -o output.pdf

Установка выхода с смещением

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

Проверка и корректировка

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

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...