Modyfikowanie plików PDF


15

Chciałbym przeprowadzić podstawową edycję istniejącego pliku PDF. Dokładniej:

  • Dodaj rozdziały / zakładki
  • Zmień numerację stron

Nie mogę jednak znaleźć żadnego narzędzia, interfejsu GUI ani wiersza poleceń, które oferowałyby tę funkcjonalność. Czy są jakieś dostępne alternatywnie narzędzia?

Odpowiedzi:


19

Używam głównie pdftk. Ale oto kilka innych do rozważenia:

pdfsam (dzielenie i scalanie plików PDF) : „pdfsam to narzędzie typu open source (licencja GPL) przeznaczone do obsługi plików pdf”

PDFJam „Mały zbiór skryptów powłoki, które zapewniają prosty interfejs dla większości funkcji doskonałego pakietu plików PDF na stronach pdf (autorstwa Andreasa Matthiasa) dla pdfLaTeX .” (Możesz także użyć pdfLaTeX bezpośrednio.)

jPDFTweak : „jPDF Tweak to aplikacja Java Swing, która może łączyć, dzielić, obracać, zmieniać kolejność, znak wodny, szyfrować, podpisywać i w inny sposób modyfikować pliki PDF”.

Inkscape: to edytor grafiki wektorowej, który może zarówno importować strony PDF do swojego macierzystego formatu SVG, jak i eksportować jako PDF.

Calibre: Oprogramowanie do zarządzania ebookami typu open source, które może konwertować pliki PDF na inne formaty i manipulować nimi na inne sposoby. Pochodzi z narzędzi wiersza polecenia, takich jak pdfmanipulate, które mogą być przydatne.

Ghostscript oczywiście potrafi wiele rzeczy także z plikami PDF.


Używam pdfjam, ale wygląda na to, że nikt nie zrobi 2 rzeczy, które wyraźnie wymieniłem.
Maciej Piechotka,

2
Źle zrozumiałem pytanie. Edytuj pytanie, aby wyjaśnić, co rozumiesz przez „rozdziały”. Zakładałem, że po prostu chcesz wstawić jedną część pliku PDF do drugiej. Ale może masz na myśli zakładki pdf (tj. Które pojawiają się w panelu bocznym dla niektórych przeglądających)? PDFJam może nie, ale pakiet pdfpages dla PDFLaTeX, wraz z pakietem hyperref LaTeX, może sobie z tym poradzić. pdfedit powinien mieć możliwość zmiany numerów stron. Za pomocą pdfLaTeX / pdfpages możesz przyciąć dół strony i dodać nowe. BRISS może również przycinać nagłówki / stopki, ale trzeba je dodać z czymś innym.
frabjous

Och, i mbPDFasmnajwyraźniej mogę też robić rzeczy z zakładkami, ale nigdy tego nie użyłem: thierry.schmit.free.fr/spip/spip.php?article15&lang=en
frabjous


12

Znam dwa programy do manipulowania plikami PDF w systemie Linux:

PDEedit „PDFedit to darmowy edytor PDF typu open source i biblioteka do manipulowania dokumentami PDF, wydany na zasadach GNU GPL wersja 2. Zawiera bibliotekę do manipulowania PDF opartą na xpdf, GUI, zestaw narzędzi wiersza poleceń i edytor pdf”.

i pdftk "Jeśli PDF to papier elektroniczny, to pdftk jest elektronicznym narzędziem do usuwania zszywek, dziurkowania, segregatora, tajnego pierścienia dekodera i okularów rentgenowskich. Pdftk to proste narzędzie do robienia codziennych rzeczy z dokumentami PDF. „


pdfedit: Nie mam qt3 i nie mogę go zainstalować (nie w portage) i nie mogę go skompilować z qt4 (nawet z qt3support).
Maciej Piechotka,

4

Jedynym sposobem, w jaki udało mi się dodać numery stron do pliku PDF, był LaTeX:

Utwórz plik /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}

I plik / 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"

Ustaw ten drugi plik jako wykonywalny i uruchom go

    pdf-numbers example.pdf

Utworzy plik pdf o nazwie example-numbers.pdf (i zastąp go, jeśli już istnieje!).


Działa bardzo dobrze. Niedoskonałość leży na ścieżkach absolutnych, ale nie mogłem sobie z tym poradzić. Czy mógłbyś jednak opracować sposób dodania tych liczb i zmiany pozycji liczb?
kravemir

3

LaTeX z pakietami pdfpagesi bookmarkmoże wykonywać większość tych rzeczy.

Działa to poprzez utworzenie nowego texdokumentu i dołączenie oryginalnych dokumentów PDF (lub ich części) za pośrednictwem \includepdf(patrz instrukcja stron pdf ).

Możesz także zmienić numerację stron, np

\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)

Te „logiczne” numery stron są jedynie etykietami, których większość czytników plików PDF może używać do nawigowania na określonej stronie. Nadal istnieją również „fizyczne” numery stron, które działają kolejno od 1, dla interakcji niższego poziomu (patrz poniżej).

Po dołączeniu istniejących stron pdf z prawidłową logiczną numeracją stron można ustawić zakładki PDF („kontury”) za pomocą \bookmarkpolecenia. Podstawowa składnia to

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

gdzie <pagenumber>jest numerem strony docelowej. Zauważ, że nie są to „logiczne” numery stron zdefiniowane wcześniej, ale wewnętrzne numery stron działające kolejno od 1, od początku pliku pdf. Zagnieżdżanie zakładek odbywa się poprzez określenie <level>, gdzie0 jest najwyższy poziom. Jest <title>to tekst do pokazania w konspekcie czytnika PDF. Szczegółowe informacje można znaleźć w instrukcji obsługi zakładek .

Kompilacja texpliku wygeneruje nowy plik PDF z pożądanymi numerami stron i zakładkami.

Pełny przykład tego, jak to wszystko się łączy, znajduje się na stronie https://michaelgoerz.net/notes/pdf-bookmarks-with-latex.html


O nie, link umarł! Znalazłem go w archiwum web.archive.org/web/20120616001456/https://michaelgoerz.net/…
Fsmv


2

pdfimport dla openoffice jest dobrą alternatywą do edycji dokumentów PDF i ponownego eksportu do PDF lub zapisania w innym formacie. Zaimportowany plik PDF można edytować za pomocą OpenOffice Draw.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.