「PDF、PS および DjVu」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎グラフィカル PDF 編集: 編集をエディタに修正)
127行目: 127行目:
 
* [[Scribus]] は PDF のインポートとエクスポートが可能で、テキストはポリゴンとしてインポートされます。[https://wiki.scribus.net/canvas/Importing_PDF_files_as_Vector_Graphics]
 
* [[Scribus]] は PDF のインポートとエクスポートが可能で、テキストはポリゴンとしてインポートされます。[https://wiki.scribus.net/canvas/Importing_PDF_files_as_Vector_Graphics]
 
* [[LibreOffice|LibreOffice Draw]] では、PDF の取り込みと書き出しが可能です。テキストはテキストとして取り込み、埋め込みフォントは置換されます。[https://bugs.documentfoundation.org/show_bug.cgi?id=82163][https://ask.libreoffice.org/en/question/38991/garbled-text-when-opening-pdfs-in-draw/]
 
* [[LibreOffice|LibreOffice Draw]] では、PDF の取り込みと書き出しが可能です。テキストはテキストとして取り込み、埋め込みフォントは置換されます。[https://bugs.documentfoundation.org/show_bug.cgi?id=82163][https://ask.libreoffice.org/en/question/38991/garbled-text-when-opening-pdfs-in-draw/]
* [[Inkscape]] は PDF から1ページを取り込み、PDFにエクスポートすることができます。テキストはクローングリフまたはテキストとして取り込まれ、後者では埋め込みフォントが代用されます。
+
* [[Inkscape]] は PDF から 1 ページを取り込み、PDF にエクスポートすることができます。テキストはクローングリフまたはテキストとして取り込まれ、後者では埋め込みフォントが代用されます。
 
* [[GIMP]] や {{Pkg|krita}} などのグラフィックエディタも、[[Wikipedia:Raster graphics|ラスタ化]]を犠牲にして PDF をインポート/エクスポートすることが可能です。
 
* [[GIMP]] や {{Pkg|krita}} などのグラフィックエディタも、[[Wikipedia:Raster graphics|ラスタ化]]を犠牲にして PDF をインポート/エクスポートすることが可能です。
   

2022年11月22日 (火) 13:57時点における版

この記事は、PDF, PostScript (PS), DjVu ('déjà vu'), XPS ファイルを閲覧、編集、変換するソフトウェアを扱います。

エンジン

  • Poppler — Xpdf をベースにした PDF 描画ライブラリ。Poppler で CJK(中国語、日本語、韓国語)に対応するには、poppler-dataインストールします。
https://poppler.freedesktop.org/ || poppler
  • Mupdf — MuPDF は、ソフトウェアライブラリ、コマンドラインツール、ビューアから構成される、軽量のPDF、XPS、EPUBビューアです。
https://mupdf.com/ || libmupdf
  • libspectre — PostScript 文書を描画するための小さなライブラリ。
https://www.freedesktop.org/wiki/Software/libspectre || libspectre
  • Ghostscript — PostScript と PDF のためのインタープリタです。gs(1) コマンドラインインターフェイスを提供します。(online) を参照してください。また、ps2pdfpdf2ps などの多くのラッパースクリプトも含まれています。
ghostscript || パッケージが存在しないか AUR で検索
  • DjVuLibre — DjVu ドキュメントの作成、操作、表示を行うスイートです。
http://djvu.sourceforge.net/ || djvulibre
  • libgxps — XPS ドキュメントを処理し、レンダリングするための GObject ベースのライブラリです。
https://wiki.gnome.org/Projects/libgxps || libgxps

ビューア

フレームバッファ

  • fbgs — linux フレームバッファ・コンソール用のプアマンズ PostScript/pdf ビューアです。
https://www.kraxel.org/blog/linux/fbida/ || fbida
  • fbpdf — MuPDF ベースの小さなフレームバッファ PDF および DjVu ビューア,Vim キーバインド付きで C で書かれています。
https://repo.or.cz/w/fbpdf.git || fbpdf-gitAUR
  • jfbview — フレームバッファ型 PDF・画像ビューア。Vim ライクなコントロール、zoom-to-fit、TOC(アウトライン)ビュー、高速なマルチスレッドレンダリングなどの機能があります。
https://github.com/jichu4n/jfbview || jfbviewAUR

グラフィカル

ノート: Some ウェブブラウザ can display PDF files, for example with PDF.js.
  • Adobe Reader — Proprietary PDF file viewer offered by Adobe. Discontinued for Linux.
https://www.adobe.com/products/reader.html || acroreadAUR
  • apvlv — Lightweight document viewer with Vim keybindings. Supports PDF, DjVu, EPUB, HTML and TXT.
https://naihe2010.github.io/apvlv/ || apvlvAUR
  • Atril — Simple multi-page document viewer for MATE. Supports DjVu, DVI, EPS, EPUB, PDF, PostScript, TIFF, XPS and Comicbook.
https://github.com/mate-desktop/atril || atril
  • 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.
https://github.com/linuxdeepin/deepin-reader || deepin-reader
  • DjView — Viewer for DjVu documents.
http://djvu.sourceforge.net/djview4.html || djview
  • ePDFView — Lightweight PDF document viewer using the Poppler and GTK libraries. Development stopped.
http://freecode.com/projects/epdfview || epdfview
https://www.gnu.org/software/emacs/ || emacs
  • Evince — Document viewer for GNOME. Supports DjVu, DVI, EPS, PDF, PostScript, TIFF, XPS and Comicbook.
https://wiki.gnome.org/Apps/Evince || evince
https://www.foxitsoftware.com/pdf-reader/ || foxitreaderAUR
  • gv — Graphical user interface for the Ghostscript interpreter that allows to view and navigate through PostScript and PDF documents.
https://www.gnu.org/software/gv/ || gv
  • llpp — Very fast PDF reader based off of MuPDF, that supports continuous page scrolling, bookmarking, and text search through the whole document.
https://repo.or.cz/w/llpp.git || llpp
  • MuPDF — Very fast EPUB, FictionBook, PDF, XPS and Comicbook viewer written in portable C. Features CJK font support.
https://mupdf.com/ || mupdf
  • Okular — Universal document viewer for KDE. Supports CHM, Comicbook, DjVu, DVI, EPUB, FictionBook, Mobipocket, ODT, PDF, Plucker, PostScript, TIFF and XPS.
https://okular.kde.org/ || okular
  • pdfpc — Presenter console with multi-monitor support for PDF files.
https://pdfpc.github.io/ || pdfpc
  • qpdfview — Tabbed document viewer. It uses Poppler for PDF support, libspectre for PS support, DjVuLibre for DjVu support, CUPS for printing support and the Qt toolkit for its interface.
https://launchpad.net/qpdfview || qpdfview
  • Xpdf — Viewer that can decode LZW and read encrypted PDFs.
https://www.xpdfreader.com/ || xpdf
  • Xreader — Document viewer part of the X-Apps Project. Supports DjVu, DVI, EPUB, PDF, PostScript, TIFF, XPS, Comicbook.
https://github.com/linuxmint/xreader/ || xreader
  • Zathura — Highly customizable and functional document viewer (plugin based). Supports PDF, DjVu, PostScript and Comicbook.
https://pwmt.org/projects/zathura/ || zathura

比較

この記事またはセクションの正確性には問題があります。
理由: Filling out PDF forms seem to be broken in MuPDF and llpp. (議論: トーク:PDF、PS および DjVu#)

ライブラリの横にあるアスタリスクは、指定された機能に対してオプションの依存関係をインストールする必要があることを示しています。

Name PDF 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 ReaderMaster PDF Editor でのみサポートされています。

また、FirefoxChromiumなどのWebブラウザは、フォームに入力できるPDFビューアを内蔵しています。

注釈

  • flpsed — PostScript と PDF のアノテーターで、テキストボックスのみサポートします。
https://flpsed.org/flpsed.html || flpsedAUR

アプリケーション一覧/ドキュメント#手書きメモ を参照してください。

グラフィカル PDF エディター

  • Scribus は PDF のインポートとエクスポートが可能で、テキストはポリゴンとしてインポートされます。[3]
  • LibreOffice Draw では、PDF の取り込みと書き出しが可能です。テキストはテキストとして取り込み、埋め込みフォントは置換されます。[4][5]
  • Inkscape は PDF から 1 ページを取り込み、PDF にエクスポートすることができます。テキストはクローングリフまたはテキストとして取り込まれ、後者では埋め込みフォントが代用されます。
  • GIMPkrita などのグラフィックエディタも、ラスタ化を犠牲にして PDF をインポート/エクスポートすることが可能です。

Basic editors

  • jPDF Tweak — Java Swing application that can combine, split, rotate, reorder, watermark, encrypt, sign, and otherwise tweak PDF files.
http://jpdftweak.sourceforge.net/ || jpdftweakAUR
  • PDF Arranger — Helps merge or split pdf documents and rotate, crop and rearrange pages. It is a maintained fork of PDF-Shuffler.
https://github.com/jeromerobert/pdfarranger || pdfarranger
  • PDF Chain — GTK front-end for PDFtk, written in C++, supporting concatenation, burst, watermarks, attaching files and more.
http://pdfchain.sourceforge.net/ || pdfchainAUR
  • PdfJumbler — Simple tool to rearrange, merge, delete and rotate pages in PDF files.
https://github.com/mgropp/pdfjumbler || pdfjumblerAUR
  • PDF Mix Tool — Qt front-end for PoDoFo, written in C++, supports splitting, merging, rotating and mixing PDF files.
https://scarpetta.eu/pdfmixtool/ || pdfmixtool
  • PDF Mod — Reorder, rotate, and remove pages, export images from a document, edit the title, subject, author, and keywords, and combine documents via drag and drop.
https://wiki.gnome.org/Attic/PdfMod || pdfmod
  • PDFsam — Open source application, written in Java, supports merging, splitting and rotating.
https://pdfsam.org/ || pdfsamAUR
  • PDF Slicer — Simple application to extract, merge, rotate and reorder pages of PDF documents.
https://junrrein.github.io/pdfslicer/ || pdfslicer
  • PDF Tricks — Simple, efficient application for small manipulations in PDF files using Ghostscript.
https://github.com/muriloventuroso/pdftricks || pdftricks

Cropping tools

  • briss — Java GUI to crop pages of PDF documents to one or more regions selected.
https://sourceforge.net/projects/briss/ || brissAUR
  • krop — Simple graphical tool to crop the pages of PDF files.
https://arminstraub.com/software/krop || kropAUR
  • pdfCropMargins — Automatically crops the margins of PDF files.
https://github.com/abarker/pdfCropMargins || pdfcropmarginsAUR
  • PdfHandoutCrop — Tool to crop pdf handout with multiple pages per sheet.
https://cges30901.github.io/pdfhandoutcrop/ || pdfhandoutcropAUR

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.
https://code-industry.net/free-pdf-editor/ || masterpdfeditorAUR, masterpdfeditor-freeAUR
  • PDF Studio — All-in-one proprietary PDF editor similar to Adobe Acrobat.
https://www.qoppa.com/pdfstudio/ || pdfstudio-binAUR

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.
https://community.coherentpdf.com/ || cpdfAUR
  • DiffPDF — Compare the text or the visual appearance of each page in two PDF files.
https://gitlab.com/eang/diffpdf || diffpdf
  • mupdf-tools — Tools developed as part of MuPDF, contains mutool(1) and muraster.
https://mupdf.com || mupdf-tools
  • pdfgrep — Commandline utility to search text in PDF files.
https://pdfgrep.org/ || pdfgrep
  • pdfjam — Can be used to n-up, join, rotate and flip PDFs and arrange them into a format suitable for book binding.
https://github.com/DavidFirth/pdfjam || texlive-core
  • pdf2svg — Convert PDF files to SVG files.
http://www.cityinthesky.co.uk/opensource/pdf2svg/ || pdf2svg
  • PDFtk — Simple tool for doing everyday things with PDF documents.
http://www.pdfhacks.com/pdftk || pdftk
  • QPDF — Content-preserving PDF transformation system.
https://github.com/qpdf/qpdf || qpdf
  • Stapler — Light alternative to PDFtk using the PyPDF2 library.
https://github.com/hellerbarde/stapler || staplerAUR, stapler-gitAUR

Create a PDF from images

With GraphicsMagick:

$ gm convert 1.jpg 2.jpg 3.jpg out.pdf

Concatenate PDFs

With Ghostscript:

$ gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=out.pdf -dBATCH 1.pdf 2.pdf 3.pdf

With PDFtk:

$ pdftk 1.pdf 2.pdf 3.pdf cat output out.pdf

With Poppler:

$ pdfunite 1.pdf 2.pdf 3.pdf out.pdf

With 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
ヒント: Forgotten passwords might be recovered with pdfcrack, see pdfcrack(1).

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.
https://github.com/ashipunov/img2djvu || img2djvu-gitAUR
  • pdf2djvu — Creates DjVu files from PDF files.
https://jwilk.net/software/pdf2djvu || pdf2djvuAUR

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 ファイルをテキストに変換します。
https://www.cs.wisc.edu/~ghost/doc/pstotext.htm || pstotext

ps2pdf

ps2pdf は、PostScript を PDF に変換するための ghostscript のラッパーです。

$ ps2pdf -sPAPERSIZE=a4 -dOptimize=true -dEmbedAllFonts=true YourPSFile.ps

説明:

  • -sPAPERSIZE=something で、用紙サイズを定義します。有効な PAPERSIZE の値については、[7] を参照してください。
  • -dOptimize=true で、作成した PDF を読み込みに最適化させます。
  • -dEmbedAllFonts=true は、フォントを常に美しく見せるようにします。
ノート: ps2pdf で用紙の向きを選択することはできません。入力された PS ファイルが健全なものであれば、すでに向きの情報が含まれています。Encapsulated PS ファイルを使おうとしている場合、指定した -sPAPERSIZE に収まらない場合は問題が発生します。回避策として、ghostscript の設定で新しい用紙を作成し(例:slide)、それを-sPAPERSIZE=slide として使用することができます。

ライブラリ

  • 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.
http://podofo.sourceforge.net || podofo

Python

  • PDFMiner — Utils to extract, analyze text data of PDF files. Includes pdf2txt, dumppdf, and latin2ascii
https://www.unixuser.org/~euske/python/pdfminer/ || python-pdfminer, pdfminerAUR
  • pdfrw — A pure Python library that reads and writes PDFs.
https://github.com/pmaupin/pdfrw || python-pdfrw, python2-pdfrwAUR
  • PyPDF2 — A pure-Python library built as a PDF toolkit.
https://mstamy2.github.io/PyPDF2/ || python-pypdf2AUR, python2-pypdf2AUR
  • PyX — Python library for the creation of PostScript and PDF files.
http://pyx.sourceforge.net || python-pyx
  • ReportLab — A proven industry-strength PDF generating solution
https://www.reportlab.com/ || python-reportlab, python2-reportlabAUR

参照