Добавьте черную рамку вокруг PDF-файла с помощью ghostscript

Добавьте черную рамку вокруг PDF-файла с помощью ghostscript

Я использую ghostscript для обработки некоторых файлов PDF и хотел бы добавить тонкую черную рамку вокруг файлов. Можно ли это сделать с помощью ghostscript или есть другие (без потерь) инструменты командной строки, которые могут это сделать?

решение1

Не уверен, что это достаточно без потерь для вас, но вы можете использоватьImageMagick:

convert foo.pdf -bordercolor black -border 10 foo_with_a_10px_border.pdf

Для решения, которое гарантированно не приведет к потерям, вы можете создать одностраничный PDF-документ с одной лишь рамкой напрозрачныйфон и примените его на каждой странице вашего документа с помощьюpdftkкоманда stamp:

pdftk foo.pdf stamp border.pdf output foo_with_my_home-made_border.pdf

решение2

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

Вы можете конвертировать в и из pdf с помощью pdf2psи ps2pdf, которые обычно упакованы с ghostscript. Этот пример кода PostScript добавляет границу размера A4:

%!PS
% A4 paper is  21.0 × 29.7 cm
/cm { 28.4 mul } bind def
/w 21.0 cm def
/h 29.7 cm def
/border 
{ 0.5 cm setlinewidth newpath
  0 0 moveto w 0 lineto w h lineto 0 h lineto closepath stroke
} bind def
/add-border { gsave initgraphics 0 setgray border grestore } def
/orig-showpage /showpage load def
/showpage { orig-showpage add-border } def
add-border

Поместите это в файл, скажем addborder.ps, тогда вы сможете

pdf2ps a.pdf a.ps
cat addborder.ps a.ps >b.ps
ps2pdf b.ps b.pdf
gv b.pdf

Для других размеров бумаги отредактируйте определение /wи /hв сантиметрах. Ширина линии в примере составляет 0.5 cm(или половина от этого, поскольку линия центрирована по краю бумаги).

Связанный контент