web-dev-qa-db-ja.com

変更PDFファイル

既存のPDF=ファイルについて基本的な編集を行いたいと思います。具体的には:

  • チャプター/ブックマークを追加
  • ページ番号を変更する

ただし、この機能を提供するツール、GUI、コマンドラインは見つかりません。フリーオープンの代替ツールはありますか?

16

主にpdftkを使用しています。ただし、他に考慮すべき点がいくつかあります。

pdfsam(PDF Split and Merge) :「pdfsamは、pdfファイルを処理するために設計されたオープンソースツール(GPLライセンス)です」

PDFJam "優れたpdfpagesの多くの機能へのシンプルなインターフェイスを提供するシェルスクリプトの小さなコレクションPDFファイルパッケージ(Andreas Matthiasによる) pdfLaTeX 。 "(pdfLaTeXを直接使用することもできます。)

jPDFTweak : "jPDF Tweakは、Java組み合わせ、分割、回転、並べ替え、透かし、暗号化、署名、その他の調整が可能なSwingアプリケーションですPDFファイル。」

Inkscape: は、ネイティブのSVG形式にPDFページをインポートすることも、PDFとしてエクスポートすることもできるベクターグラフィックエディターです。

Calibre: PDFを他の形式に変換し、他の方法で操作できるオープンソースの電子ブック管理ソフトウェア。便利な pdfmanipulate などのコマンドラインツールが付属しています。

Ghostscript もちろん、PDFファイルでも多くのことができます。

20
frabjous

LinuxでPDFを操作するための2つのプログラムを知っています。

PDEedit "PDFeditは無料のオープンソースpdfエディターであり、PDFドキュメントを操作するためのライブラリです。GNU GPLバージョンの条件でリリースされています2.これには、PDF xpdf、GUI、コマンドラインツールのセット、およびpdfエディターに基づく操作ライブラリが含まれます。 "

および pdftk "PDFが電子ペーパーの場合、pdftkは電子ステープル除去、穴あけ、バインダー、シークレットデコーダリング、およびX-Rayです。 -glasses。Pdftkは、PDFドキュメントで日常業務を行うためのシンプルなツールです。 "

12
fschmitt

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

Example-numbers.pdfというPDFファイルが作成されます(すでに存在する場合は上書きします)。

4
Dario Seidl

pdfpagesおよびbookmarkパッケージを使用したLaTeXは、これらのほとんどのことを実行できます。

これは、新しいtexドキュメントを作成し、\includepdfを介して元のPDFドキュメント(またはその一部)を含めることで機能します( 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ページを含めたら、\bookmarkコマンドを使用してPDFブックマーク( "アウトライン")を設定できます。基本的な構文は次のとおりです。

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

ここで、<pagenumber>はターゲットページのページ番号です。これらは以前に定義された「論理」ページ番号ではなく、pdfの先頭から1から連続して実行される内部ページ番号であることに注意してください。ブックマークのネストは、<level>を指定して行われます。ここで、0はトップレベルです。 <title>は、PDF読者の概要に表示されるテキストです。詳細は ブックマークマニュアル を参照してください。

texファイルをコンパイルすると、目的のページ番号とブックマークを含む新しいPDFが生成されます。

これらすべてがどのように組み合わされるかの完全な例については、 https://michaelgoerz.net/notes/pdf-bookmarks-with-latex.html を参照してください。

4
Michael Goerz

openofficeのpdfimportは、PDFドキュメントを編集してPDFに再エクスポートするか、別の形式で保存する代わりに使用できます。インポートしたPDF OpenOffice Drawで編集できます。

2
oposit