ti-enxame.com

Modificando arquivos PDF

Eu gostaria de fazer algumas edições básicas no arquivo PDF existente. Mais especificamente:

  • Adicionar capítulos/favoritos
  • Alterar a numeração da página

No entanto, não consigo encontrar nenhuma ferramenta, GUI ou linha de comando que ofereça essa funcionalidade. Existe alguma ferramenta alternativa aberta?

16
Maciej Piechotka

Eu uso pdftk principalmente. Mas aqui estão alguns outros a serem considerados:

pdfsam (PDF Split and Merge) : "pdfsam é uma ferramenta de código aberto (licença GPL) projetada para lidar com arquivos PDF"

PDFJam "Uma pequena coleção de scripts Shell que fornecem uma interface simples para muitas das funcionalidades dos excelentes pdfpages PDF pacote de arquivos (por Andreas Matthias) para pdfLaTeX . "(Você também pode usar o pdfLaTeX diretamente.)

jPDFTweak : "jPDF Tweak é um Java aplicativo Swing que pode combinar, dividir, girar, reordenar, marca d'água, criptografar, assinar e, de outra forma, Tweak PDF. "

Inkscape: é um editor de gráficos vetoriais que pode importar páginas PDF em seu formato SVG nativo) e também exportar como PDF.

Calibre: Software de gerenciamento de e-books de código aberto que pode converter PDFs para outros formatos e manipulá-los de outras maneiras. Vem com ferramentas de linha de comando como pdfmanipulate que podem ser úteis.

Ghostscript é claro que pode fazer muitas coisas com os arquivos PDF também.

20
frabjous

Eu conheço dois programas para manipular PDFs no Linux:

PDEedit "PDFedit é um editor de pdf de código aberto gratuito e uma biblioteca para manipular documentos PDF, lançado sob os termos de GNU versão GPL 2. Inclui PDF biblioteca de manipulação baseada em xpdf, GUI, conjunto de ferramentas de linha de comando e um editor de pdf. "

e pdftk "Se PDF for papel eletrônico, então pdftk é um removedor eletrônico de grampos, perfurador, fichário, anel decodificador de segredo e raio-X -Óculos. Pdftk é uma ferramenta simples para fazer coisas do dia a dia com documentos PDF. "

12
fschmitt

A única maneira que encontrei de adicionar números de página a um PDF foi com LaTeX:

Crie um arquivo /usr/local/bin/add-page-numbers.tex

\documentclass[8pt]{article}
\usepackage[final]{pdfpages}
\usepackage{fancyhdr}

\topmargin 70pt
\oddsidemargin 150pt

\pagestyle{fancy}
\rfoot{\Large\thepage}
\cfoot{}
\renewcommand {\headrulewidth}{0pt}
\renewcommand {\footrulewidth}{0pt}

\begin{document}
\includepdfset{pagecommand=\thispagestyle{fancy}}
\includepdf[pages=-]{input.pdf}
\end{document}

E um arquivo/usr/local/bin/pdf-numbers

#!/bin/bash
name="${1%\.pdf}-numbers"
wd="$(pwd)"
dir=/tmp/pdf-numbers
mkdir -p "$dir"
cp "$1" "$dir/input.pdf"
cd "$dir"
pdflatex --jobname "$name" /usr/local/bin/add-page-numbers.tex > /dev/null
mv "$name.pdf" "$wd"
rm -r "$dir"

Torne o último arquivo executável e execute-o com

    pdf-numbers example.pdf

Ele criará um arquivo pdf chamado example-numbers.pdf (e o substituirá se já existir!).

4
Dario Seidl

LaTeX com os pacotes pdfpages e bookmark pode fazer a maioria dessas coisas.

Isso funciona criando um novo documento tex e incluindo os originais PDF documentos (ou partes deles) via \includepdf (consulte o manual do pdfpages ).

Você também pode alterar a numeração da página, por exemplo.

\pagenumbering{roman}
\setcounter{page}{1}
% include pdf pages that should have roman numbering (the front matter)
\pagenumbering{arabic} % switch to arabic numbering
\setcounter{page}{1} % reset page counter
% include pdf pages that should have arabic numbering (the main matter)

Esses números de página "lógicos" são apenas rótulos que a maioria dos leitores PDF) podem usar para navegar para uma página específica. Ainda há também os números de página "físicos" subjacentes que funcionam consecutivamente a partir de 1, para níveis inferiores interações (veja abaixo).

Depois de incluir as páginas PDF existentes com a numeração lógica correta, você pode definir PDF bookmarks ("outlines") usando o \bookmark comando. A sintaxe básica é

\bookmark[page=<pagenumber>,level=<level>]{<title>}

onde <pagenumber> é o número da página de destino. Observe que esses não são os números de página "lógicos" definidos anteriormente, mas os números de página internos consecutivamente a partir de 1, desde o início do pdf. O aninhamento de favoritos é feito especificando <level>, Onde 0 é o nível superior. O <title> é o texto a ser mostrado no PDF esboço do leitor. Consulte o manual de favoritos para obter detalhes.

Compilar o arquivo tex irá gerar um novo PDF com os números de página e favoritos desejados.

Para um exemplo completo de como tudo isso acontece, consulte https://michaelgoerz.net/notes/pdf-bookmarks-with-latex.html

4
Michael Goerz

pdfimport para openoffice é uma boa alternativa para editar PDF documentos e reexportar para PDF ou salvar em outro formato. O PDF pode ser editado com o OpenOffice Draw.

2
oposit