Memodifikasi file PDF

15

Saya ingin melakukan pengeditan dasar pada file PDF yang ada. Lebih spesifik:

  • Tambahkan bab / penanda
  • Ubah penomoran halaman

Namun, saya tidak dapat menemukan alat, GUI atau baris perintah, yang akan menawarkan fungsi ini. Apakah ada alat alternatif bebas-terbuka?

Maciej Piechotka
sumber

Jawaban:

19

Saya menggunakan pdftk terutama. Tetapi di sini ada beberapa yang perlu dipertimbangkan:

pdfsam (PDF Split and Merge) : "pdfsam adalah alat sumber terbuka (lisensi GPL) yang dirancang untuk menangani file pdf"

PDFJam "Kumpulan kecil skrip shell yang menyediakan antarmuka sederhana untuk banyak fungsi dari paket file PDF pdfpages yang sangat baik (oleh Andreas Matthias) untuk pdfLaTeX ." (Anda juga dapat menggunakan pdfLaTeX secara langsung.)

jPDFTweak : "jPDF Tweak adalah aplikasi Java Swing yang dapat menggabungkan, membagi, memutar, menyusun ulang, menandai air, mengenkripsi, menandatangani, dan men-tweak file PDF."

Inkscape: adalah editor grafis vektor yang dapat mengimpor halaman PDF ke format SVG aslinya, dan juga mengekspor sebagai PDF.

Calibre: Perangkat lunak manajemen ebook sumber terbuka yang dapat mengonversi PDF ke format lain, dan memanipulasinya dengan cara lain. Dilengkapi dengan alat-alat baris perintah seperti pdfmanipulate yang dapat berguna.

Ghostscript tentu saja dapat melakukan banyak hal dengan file PDF juga.

luar biasa
sumber
Saya menggunakan pdfjam tetapi tampaknya tidak ada yang akan melakukan 2 hal yang saya cantumkan secara eksplisit.
Maciej Piechotka
2
Saya salah paham pertanyaannya. Edit pertanyaan untuk memperjelas apa yang Anda maksud dengan "bab". Saya berasumsi Anda hanya ingin memasukkan satu bagian dari PDF ke dalam yang lain. Tapi mungkin maksud Anda bookmark pdf (yaitu, yang muncul di panel samping untuk beberapa pemirsa)? PDFJam mungkin tidak, tetapi paket pdfpages untuk PDFLaTeX, bersama dengan paket hyperref LaTeX, dapat mengatasinya. pdfedit harus dapat mengubah nomor halaman. Dengan pdfLaTeX / pdfpages Anda dapat memotong bagian bawah halaman dan menambahkan yang baru. BRISS juga dapat memotong header / footer, tetapi Anda harus menambahkannya kembali dengan sesuatu yang lain.
frabjous
Oh, dan mbPDFasmternyata bisa juga melakukan hal-hal dengan bookmark, tapi saya belum pernah menggunakannya: thierry.schmit.free.fr/spip/spip.php?article15&lang=en
frabjous
2
Lain: jPDFBookmarks: flavianopetrocchi.blogspot.com/2009/03/...
baik sekali
12

Saya tahu dua program untuk memanipulasi PDF di Linux:

PDEedit "PDFedit adalah editor pdf open source gratis dan perpustakaan untuk memanipulasi dokumen PDF, dirilis di bawah GNU GPL versi 2. Ini termasuk perpustakaan manipulasi PDF berdasarkan xpdf, GUI, seperangkat alat baris perintah dan editor pdf."

dan pdftk "Jika PDF adalah kertas elektronik, maka pdftk adalah penghapus pokok elektronik, pelubang kertas, pengikat, cincin dekoder rahasia, dan kacamata X-Ray. Pdftk adalah alat sederhana untuk melakukan hal-hal sehari-hari dengan dokumen PDF. "

fschmitt
sumber
pdfedit: Saya tidak punya qt3 dan saya tidak bisa menginstalnya (tidak di portage) & saya tidak bisa mengkompilasinya dengan qt4 (bahkan dengan qt3support).
Maciej Piechotka
4

Satu-satunya cara saya menemukan untuk menambahkan nomor halaman ke PDF adalah dengan LaTeX:

Buat file /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}

Dan file / 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"

Buat file yang terakhir ini dapat dieksekusi, dan jalankan dengan

    pdf-numbers example.pdf

Ini akan membuat file pdf bernama example-numbers.pdf (dan menimpanya jika sudah ada!).

Dario Seidl
sumber
Bekerja dengan sangat baik. Ketidaksempurnaan terletak pada jalur absolut, tetapi itu bukan apa-apa yang tidak bisa saya kelola. Namun, dapatkah Anda menguraikan bagaimana Anda menambahkan angka-angka ini dan bagaimana mengubah posisi angka?
kravemir
2

pdfimport untuk openoffice adalah alternatif yang baik untuk mengedit dokumen PDF dan mengekspor kembali ke PDF atau menyimpan ke format lain. PDF yang diimpor dapat diedit dengan OpenOffice Draw.


sumber
2

LaTeX dengan pdfpagesdan bookmarkpaket dapat melakukan sebagian besar dari hal-hal ini.

Ini berfungsi dengan membuat texdokumen baru dan menyertakan dokumen PDF asli (atau bagiannya) melalui \includepdf(lihat manual pdfpages ).

Anda juga dapat mengubah penomoran halaman, mis

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

Nomor halaman "logis" ini hanyalah label yang dapat digunakan sebagian besar pembaca PDF untuk menavigasi ke halaman tertentu. Masih ada juga nomor halaman "fisik" yang mendasari berjalan berurutan dari 1, untuk interaksi tingkat rendah (lihat di bawah).

Setelah Anda memasukkan halaman pdf yang ada dengan penomoran halaman logis yang benar, Anda dapat mengatur bookmark PDF ("garis besar") menggunakan \bookmarkperintah. Sintaks dasarnya adalah

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

di mana <pagenumber>nomor halaman dari halaman target. Perhatikan bahwa ini bukan nomor halaman "logis" yang ditentukan sebelumnya, tetapi nomor halaman internal yang berjalan berurutan dari 1, dari awal pdf. Penandaan Nesting dilakukan dengan menetapkan <level>, di mana 0level teratas. Ini <title>adalah teks yang akan ditampilkan dalam garis besar pembaca PDF. Lihat manual bookmark untuk detailnya.

Kompilasi texfile akan menghasilkan PDF baru dengan nomor halaman dan bookmark yang diinginkan.

Untuk contoh lengkap tentang bagaimana semua ini bersatu, lihat https://michaelgoerz.net/notes/pdf-bookmarks-with-latex.html

Michael Goerz
sumber
Selamat datang di Stack Overflow. Tolong jangan hanya menautkan ke konten eksternal , termasuk bagian yang paling relevan secara langsung dalam jawaban Anda juga. (Jawaban yang hanya berisi tautan ke blog Anda mungkin dianggap sebagai spam.)
Gilles 'SO- stop being evil'
Oh, tidak, tautannya mati! Saya menemukannya di arsip web.archive.org/web/20120616001456/https://michaelgoerz.net/…
Fsmv
Tautan saat ini
Michael Goerz
@ Gilles'SO-stopbeingevil 'Anda benar, tentu saja: Saya sudah mengedit jawabannya (10 tahun terlambat, saya tahu, tetapi lebih baik terlambat daripada tidak pernah sama sekali)
Michael Goerz