「PDF、PS および DjVu」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) |
Kusanaginoturugi (トーク | 投稿記録) (→Concatenate PDFs: 飜訳) |
||
174行目: | 174行目: | ||
$ gm convert 1.jpg 2.jpg 3.jpg out.pdf |
$ gm convert 1.jpg 2.jpg 3.jpg out.pdf |
||
− | === |
+ | === PDF の連結 === |
− | + | Ghostscript の場合: |
|
$ gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=out.pdf -dBATCH 1.pdf 2.pdf 3.pdf |
$ gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=out.pdf -dBATCH 1.pdf 2.pdf 3.pdf |
||
− | + | PDFtk を使用: |
|
− | $ pdftk 1.pdf 2.pdf 3.pdf cat |
+ | $ pdftk 1.pdf 2.pdf 3.pdf cat 出力 out.pdf |
− | + | Poppler を使用: |
|
$ pdfunite 1.pdf 2.pdf 3.pdf out.pdf |
$ pdfunite 1.pdf 2.pdf 3.pdf out.pdf |
||
− | + | QPDF の場合: |
|
$ qpdf --empty --pages 1.pdf 2.pdf 3.pdf -- out.pdf |
$ qpdf --empty --pages 1.pdf 2.pdf 3.pdf -- out.pdf |
2022年11月27日 (日) 12:22時点における版
この記事は、PDF, PostScript (PS), DjVu ('déjà vu'), XPS ファイルを閲覧、編集、変換するソフトウェアを扱います。
目次
- 1 エンジン
- 2 ビューア
- 3 注釈
- 4 グラフィカル PDF エディター
- 5 PDF ツール
- 5.1 画像から PDF を作成
- 5.2 PDF の連結
- 5.3 Convert a PDF to text
- 5.4 Decrypt a PDF
- 5.5 Encrypt a PDF
- 5.6 Extract images from a PDF
- 5.7 Extract page range from PDF, split multipage PDF document
- 5.8 Imposing a PDF
- 5.9 Inspecting metadata
- 5.10 Optimize, reduce size of a PDF
- 5.11 Rasterize a PDF
- 5.12 Splitting PDF pages
- 5.13 Add signature.png or image to one of the pages in the PDF
- 6 DjVu ツール
- 7 PostScript ツール
- 8 ライブラリ
- 9 参照
エンジン
- Poppler — Xpdf をベースにした PDF 描画ライブラリ。Poppler で CJK(中国語、日本語、韓国語)に対応するには、poppler-data をインストールします。
- Mupdf — MuPDF は、ソフトウェアライブラリ、コマンドラインツール、ビューアから構成される、軽量のPDF、XPS、EPUBビューアです。
- libspectre — PostScript 文書を描画するための小さなライブラリ。
- Ghostscript — PostScript と PDF のためのインタープリタです。gs(1) コマンドラインインターフェイスを提供します。(online) を参照してください。また、ps2pdf や pdf2ps などの多くのラッパースクリプトも含まれています。
- ghostscript || パッケージが存在しないか AUR で検索
- DjVuLibre — DjVu ドキュメントの作成、操作、表示を行うスイートです。
- libgxps — XPS ドキュメントを処理し、レンダリングするための GObject ベースのライブラリです。
ビューア
フレームバッファ
- fbgs — linux フレームバッファ・コンソール用のプアマンズ PostScript/pdf ビューアです。
- fbpdf — MuPDF ベースの小さなフレームバッファ PDF および DjVu ビューア,Vim キーバインド付きで C で書かれています。
- jfbview — フレームバッファ型 PDF・画像ビューア。Vim ライクなコントロール、zoom-to-fit、TOC(アウトライン)ビュー、高速なマルチスレッドレンダリングなどの機能があります。
グラフィカル
- Adobe Reader — Adobeが提供するプロプライエタリの PDF ファイルビューア。Linuxでは廃止されました。
- apvlv — Lightweight document viewer with Vim keybindings. Supports PDF, DjVu, EPUB, HTML and TXT.
- Atril — Simple multi-page document viewer for MATE. Supports DjVu, DVI, EPS, EPUB, PDF, PostScript, TIFF, XPS and Comicbook.
- CorePDF — Simple lightweight PDF viewer based on Qt and poppler. Part of C-Suite.
- https://cubocore.org/ || corepdfAUR
- Deepin Document Viewer — A simple PDF and DjVu reader, supporting bookmarks, highlights and annotations.
- DjView — Viewer for DjVu documents.
- ePDFView — Lightweight PDF document viewer using the Poppler and GTK libraries. Development stopped.
- Emacs — 改良された pdf サポートのための pdf-tools (emacs-pdf-tools-gitAUR) と djvu サポートのための djvu package も参照してください。
- Evince — GNOME 用ドキュメントビューア。DjVu、DVI、EPS、PDF、PostScript、TIFF、XPS、Comicbook をサポートします。
- Foxit Reader — Small, fast (compared to Acrobat) proprietary PDF viewer. Discontinued for Linux.
- gv — Graphical user interface for the Ghostscript interpreter that allows to view and navigate through PostScript and PDF documents.
- llpp — Very fast PDF reader based off of MuPDF, that supports continuous page scrolling, bookmarking, and text search through the whole document.
- MuPDF — Very fast EPUB, FictionBook, PDF, XPS and Comicbook viewer written in portable C. Features CJK font support.
- Okular — Universal document viewer for KDE. Supports CHM, Comicbook, DjVu, DVI, EPUB, FictionBook, Mobipocket, ODT, PDF, Plucker, PostScript, TIFF and XPS.
- pdfpc — Presenter console with multi-monitor support for PDF files.
- qpdfview — タブ式ドキュメントビューアです。PDF サポートに Poppler、PS サポートに libspectre、DjVu サポートに DjVuLibre、印刷サポートに CUPS、インターフェースに Qt toolkit を使用しています。
- Xpdf — Viewer that can decode LZW and read encrypted PDFs.
- Xreader — Document viewer part of the X-Apps Project. Supports DjVu, DVI, EPUB, PDF, PostScript, TIFF, XPS, Comicbook.
- Zathura — カスタマイズ性の高い高機能ドキュメントビューア(プラグインベース)。PDF、DjVu、PostScript、Comicbookをサポート。
比較
ライブラリの横にあるアスタリスクは、指定された機能に対してオプションの依存関係をインストールする必要があることを示しています。
Name | PostScript | DjVu | XPS | PDF フォーム | PDF Annotation | License | |
---|---|---|---|---|---|---|---|
Adobe Reader | Custom | – | – | – | Yes | – | proprietary |
apvlv | Poppler | – | DjVuLibre | – | No | – | GPLv2 |
Atril | Poppler | libspectre | DjVuLibre | libgxps | Yes | – | GPLv2 |
DjView | – | – | DjVuLibre | – | – | – | GPLv2 |
Emacs | Ghostscript* | DjVuLibre* | – | No | Yes | GPLv3 | |
ePDFView | Poppler | – | – | – | No | – | GPLv2 |
Evince | Poppler | libspectre | DjVuLibre | libgxps | Yes | Yes | GPLv2 |
Foxit Reader | Custom | – | – | – | Yes | Yes | proprietary |
gv | Ghostscript | – | – | No | – | GPLv3 | |
llpp | libmupdf | – | – | libmupdf | Yes | – | GPLv3 |
MuPDF | Custom | – | – | Custom | Yes | Yes | AGPLv3 |
Okular | Poppler | libspectre | DjVuLibre | Custom | Yes | Yes | GPL, LGPL |
pdfpc | Poppler | – | – | – | No | – | GPLv2 |
qpdfview | Poppler | libspectre* | DjVuLibre* | – | Yes | Yes | GPLv2 |
Xpdf | Custom | – | – | – | No | – | GPLv3 |
Xreader | Poppler | libspectre* | DjVuLibre* | libgxps* | Yes | Yes | GPLv2 |
Zathura | Poppler* / libmupdf* | libspectre* | DjVuLibre* | libmupdf* | No | – | zlib |
PDF フォーム
上の表のPDF フォーム欄はAcroFormsのサポートを指しています。入力内容を PDF から直接取り出す必要がない場合は、#注釈や#グラフィカル PDF 編集のアプリケーションを使って、PDF の上にテキストを配置することもできます。PDF フォームは、LibreOffice Writer (View > Toolbars > Form Controls) とadvanced PDF editors で作成することが可能です。
プロプライエタリで非推奨の XFA 形式のフォームは、Poppler[1][2]では完全にサポートしておらず、Adobe Reader と Master PDF Editor でのみサポートされています。
また、FirefoxやChromiumなどのWebブラウザは、フォームに入力できるPDFビューアを内蔵しています。
注釈
- flpsed — PostScript と PDF のアノテーターで、テキストボックスのみサポートします。
アプリケーション一覧/ドキュメント#手書きメモ を参照してください。
グラフィカル PDF エディター
- Scribus は PDF のインポートとエクスポートが可能で、テキストはポリゴンとしてインポートされます。[3]
- LibreOffice Draw では、PDF の取り込みと書き出しが可能です。テキストはテキストとして取り込み、埋め込みフォントは置換されます。[4][5]
- Inkscape は PDF から 1 ページを取り込み、PDF にエクスポートすることができます。テキストはクローングリフまたはテキストとして取り込まれ、後者では埋め込みフォントが代用されます。
- GIMP や krita などのグラフィックエディタも、ラスタ化を犠牲にして PDF をインポート/エクスポートすることが可能です。
ベーシックエディタ
- jPDF Tweak — Java Swing アプリケーションで、PDF ファイルの結合、分割、回転、並べ替え、透かし、暗号化、署名、その他微調整ができます。
- PDF Arranger — PDF 文書の結合や分割、ページの回転、切り取り、並べ替えを支援します。PDF-Shuffler のフォークとしてメンテナンスされています。
- PDF Chain — C++ で書かれた PDFtk 用の GTK フロントエンドで、連結、バースト、透かし、ファイルの添付などをサポートしています。
- PdfJumbler — PDF ファイルのページを並べ替え、結合、削除、回転させるシンプルなツールです。
- PDF Mix Tool — C++ で書かれた PoDoFo 用の Qt フロントエンドで、PDF ファイルの分割、結合、回転、混合をサポートします。
- PDF Mod — ページの並べ替え、回転、削除、文書からの画像のエクスポート、タイトル、件名、著者、キーワードの編集、ドラッグ&ドロップによる文書の結合が可能です。
- PDFsam — Java で書かれたオープンソースのアプリケーションで、結合、分割、回転をサポートしています。
- https://pdfsam.org/ || pdfsamAUR
- PDF Slicer — PDF 文書の抽出、結合、回転、ページの並べ替えを行うシンプルなアプリケーションです。
- PDF Tricks — Ghostscript を使って PDF ファイルにちょっとした操作をするためのシンプルで効率的なアプリケーションです。
切り取りツール
- briss — 選択した 1 つ以上の領域に PDF ドキュメントのページを切り取るための Java GUI。
- krop — PDF ファイルのページを切り取るためのシンプルなグラフィカル ツール。
- pdfCropMargins — PDF ファイルの余白を自動的に切り取ります。
- PdfHandoutCrop — 1 シートに複数のページがある PDF 配布資料を切り取りするツール。
Advanced editors
- Master PDF Editor — Functional proprietary PDF editor. Latest version free for non-commercial use. The -free package is outdated but lacks a watermark.
- PDF Studio — All-in-one proprietary PDF editor similar to Adobe Acrobat.
PDF ツール
See also Ghostscript.
- Coherent PDF — Command line tools to manipulate PDF files including merge, encrypt, decrypt, scale, crop, rotate, bookmarks, stamp, logos, page numbers.
- DiffPDF — Compare the text or the visual appearance of each page in two PDF files.
- mupdf-tools — Tools developed as part of MuPDF, contains mutool(1) and muraster.
- pdfgrep — Commandline utility to search text in PDF files.
- pdfjam — Can be used to n-up, join, rotate and flip PDFs and arrange them into a format suitable for book binding.
- pdf2svg — Convert PDF files to SVG files.
- PDFtk — Simple tool for doing everyday things with PDF documents.
- QPDF — Content-preserving PDF transformation system.
- Stapler — Light alternative to PDFtk using the PyPDF2 library.
画像から PDF を作成
GraphicsMagick を使用:
$ gm convert 1.jpg 2.jpg 3.jpg out.pdf
PDF の連結
Ghostscript の場合:
$ gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=out.pdf -dBATCH 1.pdf 2.pdf 3.pdf
PDFtk を使用:
$ pdftk 1.pdf 2.pdf 3.pdf cat 出力 out.pdf
Poppler を使用:
$ pdfunite 1.pdf 2.pdf 3.pdf out.pdf
QPDF の場合:
$ qpdf --empty --pages 1.pdf 2.pdf 3.pdf -- out.pdf
Convert a PDF to text
With Poppler and maintaining the layout:
$ pdftotext -layout in.pdf out.txt
See also pdftotext(1).
Decrypt a PDF
This section lists commands to decrypt a PDF to an unencrypted file. Note that most PDF viewers also support encrypted PDFs.
With PDFtk:
$ pdftk in.pdf input_pw password output out.pdf
With Poppler to PostScript:
$ pdftops -upw password in.pdf out.ps
With QPDF:
$ qpdf --decrypt --password=password in.pdf out.pdf
Encrypt a PDF
The user password is used for encryption, the owner password to restrict operations once the document is decrypted, for more information, see Wikipedia:PDF#Security and signatures.
With PDFtk:
$ pdftk in.pdf output out.pdf user_pw password
With PoDoFo:
$ podofoencrypt -u user_password -o owner_password in.pdf out.pdf
With QPDF:
$ qpdf --encrypt user_password owner_password key_length -- in.pdf out.pdf
where key_length
can be 40, 128 or 256.
Extract images from a PDF
With Poppler to JPEG:
$ pdfimages infile.pdf -j outfileroot
Extract page range from PDF, split multipage PDF document
With Ghostscript as a single file[6]
$ gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER -dFirstPage=first -dLastPage=last -sOutputFile=outfile.pdf infile.pdf
With PDFtk as a single file:
$ pdftk infile.pdf cat first-last output outfile.pdf
With Poppler as separate files:
$ pdfseparate -f first -l last infile.pdf outfileroot-%d.pdf
With QPDF as a single file:
$ qpdf --empty --pages infile.pdf first-last -- outfile.pdf
With mutool as a single file:
$ mutool clean -g infile.pdf outfile.pdf first-last
Imposing a PDF
PDF Imposition can be done with pdfjam, for example paper waste can be reduced with pdfnup and pdfbook can be used to arrange PDFs into a format suitable for book binding.
Inspecting metadata
With ExifTool:
$ exiftool file.pdf
With Poppler:
$ pdfinfo file.pdf
Optimize, reduce size of a PDF
With Ghostscript one of:
$ ps2pdf -dPDFSETTINGS=/screen in.pdf out.pdf $ gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/printer -sOutputFile=out.pdf in.pdf
For different settings see the documentation.
There is also shrinkpdfAUR, a script wrapping gs.
Rasterize a PDF
With GraphicsMagick to convert a specific page:
$ gm convert -density dpi infile.pdf[page] outfile.jpg
With Poppler to convert all pages:
$ pdftoppm -jpeg -r dpi infile.pdf outfileroot
With Poppler to convert a specific page:
$ pdftoppm -jpeg -r dpi -f page -singlefile infile.pdf outfileroot
Splitting PDF pages
With mupdf-tools to split every page vertically into two pages:
$ mutool poster -y 2 in.pdf out.pdf
Can be used to undo simple imposition.
Add signature.png or image to one of the pages in the PDF
To add an image to any location in PDF can be done with ImageMagick (convert), xv and pdftk. A wrapper script is here and other hints are here.
DjVu ツール
- DjVuLibre provides many command-line tools, like ddjvu(1) for example.
- img2djvu — Single-pass DjVu encoder based on DjVu Libre and ImageMagick.
- pdf2djvu — Creates DjVu files from PDF files.
Convert DjVu to images
Break Djvu into separate pages:
$ djvmcvt -i input.djvu /path/to/out/dir output-index.djvu
Convert Djvu pages into images:
$ ddjvu --format=tiff page.djvu page.tiff
Convert Djvu pages into PDF:
$ ddjvu --format=pdf inputfile.djvu ouputfile.pdf
You can also use --page to export specific pages:
$ ddjvu --format=tiff --page=1-10 input.djvu output.tiff
this will convert pages from 1 to 10 into one tiff file.
Processing images
You can use scantailor-advanced to:
- fix orientation
- split pages
- deskew
- crop
- adjust margins
Make DjVu from images
There is a useful script img2djvu-gitAUR.
$ img2djvu -c1 -d600 -v1 ./out
it will create 600 DPI out.djvu
from all files in ./out
directory.
Alternatively, you can try didjvuAUR, which seems to create smaller files especially on images with well defined background.
PostScript ツール
- pstotext — PostScript ファイルをテキストに変換します。
ps2pdf
ps2pdf は、PostScript を PDF に変換するための ghostscript のラッパーです。
$ ps2pdf -sPAPERSIZE=a4 -dOptimize=true -dEmbedAllFonts=true YourPSFile.ps
説明:
-sPAPERSIZE=something
で、用紙サイズを定義します。有効な PAPERSIZE の値については、[7] を参照してください。-dOptimize=true
で、作成した PDF を読み込みに最適化させます。-dEmbedAllFonts=true
は、フォントを常に美しく見せるようにします。
ライブラリ
- libharu — C library for generating PDF documents.
- https://github.com/libharu/libharu || libharu, Lua binding: lua-hpdfAUR
- PoDoFo — A C++ library to work with the PDF file format.
Python
- PDFMiner — Utils to extract, analyze text data of PDF files. Includes pdf2txt, dumppdf, and latin2ascii
- pdfrw — A pure Python library that reads and writes PDFs.
- PyPDF2 — A pure-Python library built as a PDF toolkit.
- PyX — Python library for the creation of PostScript and PDF files.
- ReportLab — A proven industry-strength PDF generating solution