Adiciona borda preta ao redor do arquivo PDF com ghostscript

2

Estou usando o ghostscript para processar alguns arquivos PDF e gostaria de adicionar uma borda preta fina ao redor dos arquivos. Isso é algo que pode ser feito com ghostscript ou existem outras ferramentas de linha de comando (sem perdas) que podem fazer isso?

    
por astrofrog 16.12.2016 / 19:52

2 respostas

2

Não tenho certeza se isso não é suficiente para você, mas você pode usar ImageMagick :

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

Para uma solução segura e sem perdas, você pode criar um documento PDF de uma página com apenas uma borda em um plano de fundo transparente e aplicá-lo em cada página do documento com o comando stamp do pdftk :

pdftk foo.pdf stamp border.pdf output foo_with_my_home-made_border.pdf
    
por 17.12.2016 / 00:10
2

Tipicamente isto pode ser feito convertendo o pdf para PostScript, adicionando ao início um pequeno pedaço de código PostScript para substituir a função de final de página showpage , e então imprimindo isto, ou convertendo isto para pdf. / p>

Você pode converter de e para o pdf com pdf2ps e ps2pdf , que geralmente são empacotados com ghostscript. Este exemplo de código PostScript adiciona uma borda de tamanho 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

Coloque isso em um arquivo, digamos addborder.ps , então você pode

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

Para outros tamanhos de papel, edite a definição de /w e /h em centímetros. A largura da linha de exemplo é 0.5 cm (ou metade disso, pois a linha está centrada na borda do papel).

    
por 17.12.2016 / 18:24