การแก้ไขไฟล์ PDF


15

ฉันต้องการแก้ไขเบื้องต้นในไฟล์ PDF ที่มีอยู่ โดยเฉพาะอย่างยิ่ง:

  • เพิ่มบท / ที่คั่นหน้า
  • เปลี่ยนการกำหนดหมายเลขหน้า

อย่างไรก็ตามฉันไม่พบเครื่องมือ GUI หรือบรรทัดคำสั่งใด ๆ ซึ่งจะเสนอฟังก์ชั่นนี้ มีเครื่องมือทางเลือกแบบเปิดฟรีหรือไม่?

คำตอบ:


19

ฉันใช้ pdftk เป็นหลัก แต่นี่คือคนอื่น ๆ ที่จะต้องพิจารณา:

pdfsam (แยกไฟล์ PDF และผสาน) : "pdfsam เป็นเครื่องมือโอเพนซอร์ซ (ใบอนุญาต GPL) ออกแบบมาเพื่อจัดการไฟล์ pdf"

PDFJam "ชุดเล็ก ๆ ของสคริปต์เชลล์ซึ่งให้ส่วนต่อประสานที่ง่ายต่อการใช้งานส่วนใหญ่ของแพ็คเกจไฟล์ PDF pdf ที่ยอดเยี่ยม (โดย Andreas Matthias) สำหรับpdfLaTeX " (คุณสามารถใช้ pdfLaTeX ได้โดยตรง)

jPDFTweak : "jPDF Tweak เป็นแอปพลิเคชั่น Java Swing ที่สามารถรวม, แยก, หมุน, จัดลำดับใหม่, ลายน้ำ, เข้ารหัส, เซ็นชื่อและปรับแต่งไฟล์ PDF ได้"

Inkscape:เป็นโปรแกรมแก้ไขกราฟิกแบบเวกเตอร์ที่สามารถนำเข้าหน้า PDF ในรูปแบบ SVG ดั้งเดิมและส่งออกเป็น PDF

Calibre:ซอฟต์แวร์การจัดการ ebook แบบโอเพนซอร์ซที่สามารถแปลงไฟล์ PDF เป็นรูปแบบอื่น ๆ และจัดการได้ในรูปแบบอื่น มาพร้อมกับเครื่องมือบรรทัดคำสั่งเช่นpdfmanipulateซึ่งมีประโยชน์

แน่นอนGhostscriptสามารถทำสิ่งต่าง ๆ มากมายด้วยไฟล์ PDF


ฉันใช้ pdfjam แต่ดูเหมือนว่าจะไม่มี 2 สิ่งที่ฉันระบุไว้อย่างชัดเจน
Maciej Piechotka

2
ฉันเข้าใจผิดคำถาม แก้ไขคำถามเพื่อให้ชัดเจนว่าคุณหมายถึงอะไร "บท" ฉันคิดว่าคุณแค่ต้องการแทรกส่วนหนึ่งของ PDF ในส่วนอื่น แต่บางทีคุณอาจหมายถึงบุ๊กมาร์ก PDF (เช่นที่ปรากฏในบานหน้าต่างด้านข้างสำหรับผู้ดูบางคน) PDFJam อาจไม่ได้ แต่แพ็คเกจ pdfpages สำหรับ PDFLaTeX พร้อมกับแพ็คเกจ LaTeX hyperref สามารถจัดการได้ pdfedit ควรจะสามารถเปลี่ยนหมายเลขหน้าได้ ด้วย pdfLaTeX / pdfpages คุณสามารถคลิปด้านล่างของหน้าและเพิ่มอันใหม่ได้ BRISS สามารถครอบตัดส่วนหัว / ท้ายกระดาษด้วยเช่นกัน แต่คุณต้องเพิ่มกลับด้วยสิ่งอื่น
frabjous

โอ้และmbPDFasmสามารถทำสิ่งต่างๆด้วยบุ๊กมาร์กได้ แต่ฉันไม่เคยใช้เลย: thierry.schmit.free.fr/spip/spip.php?article15&lang=th
frabjous

2
อื่น ๆ : jPDFBookmarks: flavianopetrocchi.blogspot.com/2009/03/...
frabjous

12

ฉันรู้สองโปรแกรมสำหรับจัดการ PDF ภายใต้ Linux:

PDEedit "PDFedit เป็นตัวแก้ไข PDF แบบโอเพนซอร์สและไลบรารีสำหรับจัดการเอกสาร PDF ซึ่งเผยแพร่ภายใต้เงื่อนไขของ GNU GPL เวอร์ชัน 2 ซึ่งจะรวมถึง PDF ที่จัดการกับไลบรารีบนพื้นฐานของ xpdf, GUI, ชุดเครื่องมือบรรทัดคำสั่งและโปรแกรมแก้ไข PDF"

และ pdftk "ถ้า PDF เป็นกระดาษอิเล็กทรอนิกส์แล้ว pdftk เป็นตัวถอดลวดเย็บอิเล็กทรอนิกส์หลุมเจาะแฟ้มลับแหวนถอดรหัสและ X-Ray- แว่นตา Pdftk เป็นเครื่องมือง่าย ๆ สำหรับการทำสิ่งต่าง ๆ ในชีวิตประจำวันด้วยเอกสาร PDF "


pdfedit: ฉันไม่มี qt3 และฉันไม่สามารถติดตั้งได้ (ไม่ใช่ในพอร์เทจ) & ฉันไม่สามารถคอมไพล์ด้วย 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(ดูคู่มือ 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

ลิงค์ปัจจุบันคือmichaelgoerz.net/notes/pdf-bookmarks-with-latex.html
Michael Goerz

2

pdfimport สำหรับ openoffice เป็นทางเลือกที่ดีในการแก้ไขเอกสาร PDF และส่งออกเป็น PDF อีกครั้งหรือบันทึกเป็นรูปแบบอื่น PDF ที่นำเข้าสามารถแก้ไขได้ด้วย OpenOffice Draw

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.