Изменение файлов PDF


15

Я хотел бы сделать некоторые основные редактирования существующего файла PDF. Более конкретно:

  • Добавить главы / закладки
  • Изменить нумерацию страниц

Однако я не могу найти какой-либо инструмент, графический интерфейс или командную строку, которые бы предлагали эту функциональность. Есть ли какие-нибудь свободно открытые альтернативные инструменты?

Ответы:


19

Я использую в основном pdftk. Но вот некоторые другие, чтобы рассмотреть:

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

PDFJam «Небольшая коллекция сценариев оболочки, которые предоставляют простой интерфейс для большей части функциональности превосходного пакета PDF-файлов pdfpages (Андреас Матиас) для pdfLaTeX ». (Вы также можете использовать pdfLaTeX напрямую.)

jPDFTweak : «jPDF Tweak - это приложение Java Swing, которое может объединять, разбивать, вращать, изменять порядок, водяные знаки, шифровать, подписывать и иным образом настраивать PDF-файлы».

Inkscape: это редактор векторной графики, который может импортировать PDF-страницы в свой собственный формат SVG, а также экспортировать в PDF.

Calibre: Открытое программное обеспечение для управления электронными книгами, которое может конвертировать PDF-файлы в другие форматы и манипулировать ими другими способами. Поставляется с инструментами командной строки, такими как pdfmanipulate, которые могут быть полезны.

Ghostscript, конечно, может многое сделать и с PDF-файлами.


Я использую pdfjam, но, похоже, никто не сделает 2 вещи, которые я перечислил явно.
Мацей Пехотка

2
Я неправильно понял вопрос. Отредактируйте вопрос, чтобы было понятно, что вы имели в виду под «главами». Я предположил, что вы просто хотите вставить одну часть PDF в другую. Но, возможно, вы имеете в виду закладки PDF (то есть, которые появляются на боковой панели для некоторых зрителей)? PDFJam может и не работать, но пакет pdfpages для PDFLaTeX вместе с пакетом гиперрефсов LaTeX может справиться с этим. pdfedit должен иметь возможность изменять номера страниц. С pdfLaTeX / pdfpages вы можете обрезать нижнюю часть страницы и добавлять новые. BRISS также может обрезать верхние и нижние колонтитулы, но вам придется добавить их обратно с чем-то другим.
безумно

О, и, 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).
Мацей Пехотка

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 (и перезапишет его, если он уже существует!).


Работает очень хорошо. Несовершенство лежит в абсолютных путях, но это ничто, с чем я не мог справиться. Тем не менее, не могли бы вы рассказать, как вы добавили эти числа и как поменять позиции чисел?
Кравемир

3

Латекс с pdfpagesи bookmarkпакетами может сделать большинство из этих вещей.

Это работает путем создания нового texдокумента и включения оригинальных PDF-документов (или их частей) через \includepdf(см. Руководство pdfpages ).

Вы также можете изменить нумерацию страниц, например,

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