No release in over 3 years
Provides PDF outline extraction, precision page numbering, and OCR via HexaPDF. AGPL-3.0 licensed.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

~> 5.20
~> 13.1

Runtime

~> 1.0
~> 2.2
 Project Readme

vivlio-starter-pdf

License: AGPL-3.0 Ruby

vivlio-starter の AGPL 拡張プラグイン。HexaPDF を活用した高度な PDF 解析・後処理機能を提供します。

概要

vivlio-starter 本体(MIT)が提供する Standard Mode を拡張し、以下の出版向け機能を追加します。

機能 説明
PDF → Markdown 変換 HexaPDF でテキスト・画像を高精度に抽出し、Markdown に変換
画像抽出(WebP 化) PDF 内の XObject を解析し、WebP 形式で書き出し
OCR 連携 スキャン PDF を自動検出し、Tesseract で日本語 OCR を実行
OCR テキスト補正 日本語空白圧縮、括弧正規化、prh 辞書による誤読修正
隠しノンブル 入稿用 PDF の塗り足し領域にページ番号をオーバーレイ
PDF アウトライン HTML 見出しを解析し、PDF のブックマークツリーを構築

インストール

gem としてインストール

gem install vivlio-starter-pdf

インストール完了時に、OCR 機能を利用するために必要な外部ツールも案内されます。

外部ツール(OCR 利用時)

brew install tesseract tesseract-lang poppler vips

vs pdf:read を Standard Mode で実行した際にも、Enhanced Mode へ切り替えるためのインストール手順が自動案内されます。

使い方

vivlio-starter との連携(プラグイン専用)

vivlio-starter-pdfvivlio-starter の Enhanced Mode プラグインとしてのみ動作します。gem をインストールすると、vs pdf:read 実行時に HexaPDF / OCR ベースの拡張パイプラインへ自動切り替えされます。

vs pdf:read document.pdf

Ruby API

require "vivlio/starter/pdf"

# PDF → Markdown 変換
result = Vivlio::Starter::PDF::Reader.new("input.pdf",
  ocr: { mode: "auto", languages: ["jpn"], dpi: 300 }
).execute

# アウトライン付与
provider = Vivlio::Starter::Pdf::EnhancedProvider.new
provider.add_outline!(pdf_path, items, max_level: 3)

# 隠しノンブル
provider.stamp_nombre!(pdf_path, bleed_pt: 8.5)

設定

config/book.ymlpdf_read セクションで挙動を制御できます。

pdf_read:
  text_area:
    top_margin: 18
    bottom_margin: 20
    inner_margin: 15
    outer_margin: 12
  page_separator: false
  ocr:
    mode: auto
    languages:
      - japanese
    dpi: 300
    psm: 3
    inline_image_text: include

依存ライブラリ

ライブラリ バージョン 用途
HexaPDF ~> 1.0 PDF 解析・編集
ruby-vips ~> 2.2 高速画像処理

外部ツール(任意)

ツール 用途
Tesseract OCR エンジン
poppler(pdftoppm) PDF → 画像変換
libvips 画像処理バックエンド

開発

git clone https://github.com/Atelier-Mirai/vivlio-starter-pdf.git
cd vivlio-starter-pdf
bundle install
bundle exec rake test

ライセンス

GNU Affero General Public License v3.0 (AGPL-3.0)

vivlio-starter 本体(MIT)とは異なるライセンスです。HexaPDF の AGPL ライセンスに準拠しています。

作者

Atelier Mirai