Вопрос или проблема
У меня есть несколько старых файлов 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 предоставляет ряд параметров, которые могут помочь вам в решении этой задачи. Ниже перечисленные параметры и их возможные комбинации могут помочь установить выходной прямоугольник должным образом:
-
-sDEVICE=pdfwrite: Определяет, что выходной файл будет в формате PDF.
-
-sPAPERSIZE=a4: Устанавливает размер бумаги на A4, что является вашим целевым форматом.
-
-dDEVICEWIDTHPOINTS=
и -dDEVICEHEIGHTPOINTS= : Эти параметры можно установить, чтобы явно задать размеры выходного прямоугольника, основываясь на размерах A4 (например, 595×842 points). -
-dFitPage: Хотя этот параметр предназначен для масштабирования содержимого под размер страницы, в вашем случае вам не требуется масштабирование. Лучше воспользоваться другими параметрами.
-
-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 могут помочь вам избавиться от нежелательных пустот и корректно отобразить содержимое. Настройка выходного прямоугольника имеет решающее значение для выполнения этой задачи. Правильная комбинация параметров должна решить вашу проблему с форматированием.