PDF dosyalarını değiştirme


16

Mevcut PDF dosyasında bazı temel düzenlemeleri yapmak istiyorum. Daha spesifik olarak:

  • Bölüm / yer işareti ekle
  • Sayfa numaralandırmasını değiştirme

Ancak, bu işlevi sunacak herhangi bir araç, GUI veya komut satırı bulamıyorum. Serbest açık alternatif araçlar var mı?

Yanıtlar:


20

Esas olarak pdftk kullanıyorum. Ancak dikkate almanız gereken bazı diğerleri:

pdfsam (PDF Split and Merge) : "pdfsam, pdf dosyalarını işlemek için tasarlanmış açık kaynaklı bir araçtır (GPL lisansı)"

PDFJam "için (Andreas Matthias tarafından) mükemmel pdfpages PDF dosyası paketinin işlevselliği çok basit bir arayüz sağlamak kabuk komut küçük bir koleksiyon pdfLaTeX ." (Doğrudan pdfLaTeX'i de kullanabilirsiniz.)

jPDFTweak : "jPDF Tweak, PDF dosyalarını birleştiren, bölen, döndüren, yeniden sıralayan, filigran, şifreleme, imzalama ve diğer ayarları değiştiren bir Java Swing uygulamasıdır."

Inkscape: PDF sayfalarını doğal SVG formatına aktarabilen ve ayrıca PDF olarak dışa aktarabilen bir vektör grafik düzenleyicisidir.

Kalibre: PDF'leri diğer formatlara dönüştürebilen ve başka şekillerde değiştirebilen açık kaynaklı e-kitap yönetim yazılımı. Yararlı olabilecek pdfmanipulate gibi komut satırı araçlarıyla birlikte gelir .

Ghostscript elbette PDF dosyaları ile de bir çok şey yapabilir.


Ben pdfjam kullanın ama hiçbiri açıkça listelenen 2 şey yapacak gibi görünüyor.
Maciej Piechotka

2
Soruyu yanlış anladım. "Bölümler" ile ne demek istediğinizi netleştirmek için soruyu düzenleyin. Bir PDF'nin bir kısmını diğerinin içine eklemek istediğinizi sanıyordum. Ama belki pdf yer imlerini (yani, bazı izleyiciler için yan bölmede görünen) kastediyorsunuz? PDFJam olmayabilir, ancak PDFLaTeX için pdfpages paketi, LaTeX hyperref paketi ile birlikte bunları işleyebilir. pdfedit sayfa numaralarını değiştirebilmelidir. PdfLaTeX / pdfpages ile sayfanın alt kısmını kırpıp yenilerini ekleyebilirsiniz. BRISS üstbilgileri / altbilgileri de kesebilir, ancak bunları başka bir şeyle tekrar eklemeniz gerekir.
Ekim'de

Oh, ve mbPDFasmgörünüşe göre yer imleriyle
frabjous


12

Linux altında PDF'leri işlemek için iki program biliyorum:

PDEedit "PDFedit ücretsiz bir açık kaynak pdf editörü ve GNU GPL sürüm 2 kapsamında yayınlanan PDF belgelerini işlemek için bir kütüphanedir. Xpdf, GUI, komut satırı araçları seti ve bir pdf editörü tabanlı PDF işleme kütüphanesi içerir."

ve pdftk "PDF elektronik kağıtsa, pdftk bir elektronik zımba sökücü, delgeç, cilt, gizli dekoder halkası ve X-Ray gözlüktür. Pdftk, PDF belgeleriyle günlük işleri yapmak için basit bir araçtır. "


pdfedit: Qt3'üm yok ve onu yükleyemiyorum (portage'da değil) ve qt4 ile (qt3support ile bile) derleyemiyorum.
Maciej Piechotka

4

Bir PDF'ye sayfa numaraları eklemenin tek yolu LaTeX'ti:

/Usr/local/bin/add-page-numbers.tex dosyası oluşturun

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

Ve bir dosya / 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"

İkinci dosyayı çalıştırılabilir yapın ve

    pdf-numbers example.pdf

Example-numbers.pdf adlı bir pdf dosyası oluşturur (ve zaten varsa üzerine yazılır!).


Çok iyi çalışıyor. Kusurlar mutlak yollarda yatıyor, ama bu başaramadığım bir şey değil. Ancak, bu sayıları nasıl eklediniz ve sayıların konumlarını nasıl değiştirdiniz?
kravemir

3

LaTeX pdfpagesve bookmarkpaketleri ile bunların çoğunu yapabilirsiniz.

Bu, yeni bir texbelge oluşturarak ve üzerinden orijinal PDF belgelerini (veya bir kısmını) ekleyerek çalışır\includepdf ( pdfpages kılavuzuna bakın ).

Sayfa numaralandırmasını da değiştirebilirsiniz, ör.

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

Bu "mantıksal" sayfa numaraları yalnızca çoğu PDF okuyucusunun belirli bir sayfaya gitmek için kullanabileceği etiketlerdir. Ayrıca, alt düzey etkileşimler için arka arkaya 1'den başlayan temel "fiziksel" sayfa numaraları da vardır (aşağıya bakın).

Doğru mantıksal sayfa numaralandırmasına sahip mevcut pdf sayfalarını ekledikten sonra, \bookmarkkomutu kullanarak PDF yer imlerini ("anahatlar") ayarlayabilirsiniz . Temel sözdizimi

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

<pagenumber>hedef sayfanın sayfa numarası nerede . Bunların daha önce tanımlanan "mantıksal" sayfa numaraları değil, pdf'nin başından itibaren 1'den itibaren art arda çalışan dahili sayfa numaraları olduğunu unutmayın. Yer imlerini <level>yerleştirme 0, en üst seviyenin nerede olduğunu belirterek yapılır . <title>PDF okuyucunun özet görünümünde gösterilecek metindir. Ayrıntılar için yer imi kılavuzuna bakın.

texDosyayı derlemek istediğiniz sayfa numaralarını ve yer imlerini içeren yeni bir PDF oluşturur.

Tüm bunların nasıl bir araya geldiğine dair eksiksiz bir örnek için bkz. Https://michaelgoerz.net/notes/pdf-bookmarks-with-latex.html




2

openoffice için pdfimport, PDF belgelerini düzenlemek ve PDF'ye yeniden dışa aktarmak veya başka bir biçime kaydetmek için iyi bir alternatiftir. İçe aktarılan PDF, OpenOffice Draw ile düzenlenebilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.