Модифікація PDF-файлів


15

Я хотів би зробити кілька основних редагувань на існуючому PDF-файлі. Більш конкретно:

  • Додайте глави / закладки
  • Зміна нумерації сторінок

Однак я не можу знайти жодного інструмента, графічного інтерфейсу чи командного рядка, який би пропонував цю функціональність. Чи є якісь вільно відкриті альтернативні інструменти?

Відповіді:


19

В основному я використовую pdftk. Але ось деякі інші, які слід врахувати:

pdfsam (PDF Split and Merge) : "pdfsam - це інструмент з відкритим кодом (ліцензія GPL), призначений для обробки файлів PDF"

PDFJam "Невелика колекція скриптів оболонки, які забезпечують простий інтерфейс більшої частини функціональних можливостей відмінного пакету файлів PDF pgespages (від Andreas Matthias) для pdfLaTeX ." (Ви також можете використовувати pdfLaTeX безпосередньо.)

jPDFTweak : "jPDF Tweak - додаток Java Swing, яке може комбінувати, розділяти, обертати, змінювати порядок, водяний знак, шифрувати, підписувати та іншим чином налаштувати PDF-файли."

Inkscape: це редактор векторної графіки, який може імпортувати сторінки PDF у свій рідний формат SVG, а також експортувати у вигляді PDF.

Калібр: програмне забезпечення для управління електронними книгами з відкритим кодом, яке може конвертувати PDF-файли в інші формати та маніпулювати ними іншими способами. Поставляється з інструментами командного рядка, такими як pdfmanipulate, які можуть бути корисними.

Звичайно, Ghostscript може зробити багато речей і з файлами PDF.


Я використовую pdfjam, але, схоже, ніхто не зробить 2 речі, які я чітко перерахував.
Maciej Piechotka

2
Я неправильно зрозумів питання. Відредагуйте питання, щоб було зрозуміло, що ви мали на увазі під "главами". Я припускав, що ви просто хочете вставити одну частину PDF в іншу. Але, можливо, ви маєте на увазі закладки pdf (тобто які відображаються у бічній панелі для деяких глядачів)? PDFJam може не робити, але пакет pdfpages для PDFLaTeX разом із пакетом гіперреф LaTeX може впоратися з ними. pdfedit повинен мати можливість змінювати номери сторінок. За допомогою pdfLaTeX / pdfсторінок ви можете вирізати внизу сторінки та додати нові. BRISS також може обрізати колонтитули та колонтитули, але вам доведеться додати їх ще з чим-небудь іншим.
frabjous

О, і, mbPDFasmмабуть, також можна робити речі із закладками, але я ніколи цього не використовував: thierry.schmit.free.fr/spip/spip.php?article15&lang=en
frabjous


12

Я знаю дві програми для управління PDF-файлами під Linux:

PDEedit "PDFedit - це безкоштовний редактор PDF-файлів з відкритим кодом та бібліотека для маніпулювання документами PDF, випущений за умовами GNU GPL версії 2. Він включає бібліотеку PDF, що управляє на основі xpdf, GUI, набір інструментів командного рядка та редактор pdf."

і pdftk "Якщо PDF - це електронний папір, то pdftk - це електронний засіб для видалення штапелів, дірка-перфоратор, палітурка, секретний декодер-кільце та рентгенівські окуляри. Pdftk - це простий інструмент для виконання повсякденних речей з документами PDF. "


pdfedit: У мене немає qt3, і я не можу встановити його (не в portage), і я не можу змусити його компілювати з qt4 (навіть із qt3support).
Maciej Piechotka

4

Єдиний спосіб, коли мені вдалося додати номери сторінок до PDF, було за допомогою LaTeX:

Створіть файл /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}

І файл / 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"

Зробіть останній файл виконуваним і запустіть його

    pdf-numbers example.pdf

Він створить файл pdf під назвою example-numbers.pdf (і замінить його, якщо він уже існує!).


Працює дуже добре Недосконалість полягає в абсолютних шляхах, але це нічого, чим я не міг би впоратися. Однак ви могли б пояснити, як ви додали ці числа та як змінювали позиції чисел?
kravemir

3

LaTeX за допомогою пакетів pdfpagesта bookmarkпакунків може робити більшість цих речей.

Це працює, створюючи новий texдокумент і включаючи оригінальні документи PDF (або його частини) через \includepdf(див. Посібник із pdfсторінок ).

Ви також можете змінити нумерацію сторінок, наприклад

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

Ці "логічні" номери сторінок - це лише мітки, які більшість читачів PDF можуть використовувати для переходу до певної сторінки. Ще є основні "фізичні" номери сторінок, що працюють послідовно з 1, для взаємодій нижчого рівня (див. Нижче).

Після того як ви включили існуючі сторінки PDF у правильну логічну нумерацію сторінки, ви можете встановити закладки PDF ("контури") за допомогою \bookmarkкоманди. Основний синтаксис - це

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

де <pagenumber>номер сторінки цільової сторінки. Зауважте, що це не "логічні" номери сторінок, визначені раніше, а внутрішні номери сторінок, що працюють послідовно з 1, з початку pdf. Вкладка закладок здійснюється за допомогою вказівки <level>, де 0знаходиться верхній рівень. Це <title>текст, який повинен бути показаний у конфірматі читача PDF. Детальніше див. У посібнику із закладками .

Компілюючи texфайл, ви створите новий PDF з потрібними номерами сторінок та закладками.

Повний приклад того, як все це поєднується, дивіться на https://michaelgoerz.net/notes/pdf-bookmarks-with-latex.html


О, посилання не загинула! Я знайшов це в архіві web.archive.org/web/20120616001456/https://michaelgoerz.net/…
Fsmv


2

pdfimport для openoffice є хорошою альтернативою для редагування документів PDF та реекспорту в PDF або збереження в інший формат. Імпортований PDF-файл можна редагувати OpenOffice Draw.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.