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

#!/bin/bash

while read -r dir; do
    if [[ -d $dir ]]; then
        echo "Dir exists"
    else
        echo "Dir $dir does not exist"
    fi  
done < dirs

Вывод при выполнении с этим файлом как infile ( dirs ):

cat dirs
/usr/bin
/usr/sbin
/bin
/sbin

./checkDirs.sh 
Dir exists
Dir exists
Dir exists
Dir exists
2
16.12.2016, 20:58
2 ответа

Не уверен, что это достаточно нетеряющееся решение для вас, но вы можете использовать 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
4
27.01.2020, 21:59

Обычно это можно сделать, преобразовав 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 см (или вдвое меньше, если линия центрируется на краю бумаги).

2
27.01.2020, 21:59

Теги

Похожие вопросы