Project

muplin

0.0
No commit activity in last 3 years
No release in over 3 years
Muplin is abbrev of MUriyari(irresponsibly force) Pdf outLINer. Muplin adds outlines that consist from pairs of label and page number to a PDF file. see also https://github.com/pokutuna/muplin
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

~> 0.12.0
 Project Readme

muplin

muplin(むぷりん)とは、MUりやり Pdf に outLIN をつけるやつの略で、

PDFにoutline(目次、しおり、table of content とか呼ばれる)をつけることができます。

outlineとは章タイトル等をクリックするとそのページに飛べるアレです。

install

$ gem install muplin

usage

$ muplin --help

Muplin is a MUriyari Pdf outLINer. https://github.com/pokutuna/muplin
Usage: muplin <source.pdf> <outline(.yaml|.json)> [options]
    -o, --output=FILE                write pdf to FILE. default: ./muplined.pdf
        --overwrite                  overwrite to <source.pdf>

$ muplin sample.pdf outline.yaml

use from ruby

require 'muplin'
require 'yaml'
 
doc = Muplin::Outliner.new('sample.pdf')
doc.clear_outlines
doc.define_outline(YAML.load_file('outline.yaml'))
doc.render_file('muplined.pdf')

outline

アウトラインを表すHash(e.g. { 'label' => 'page 1', 'page' => 1 })のArrayです。

yamlまたはjsonに対応しています。

記述例

sample/outline.yaml

--- 
- label : a
  page  : 1
- label : b
  page  : 2
- label : c
  page  : 3
- - label : d
    page  : 4
  - label : e
    page  : 5
- label : f
  page  : 6
- label : g
  page  : 7
- - label : h
    page  : 8
- - - label : i
      page  : 9

sample/outline.json

[
    {"label":"a","page":1},
    {"label":"b","page":2},
    {"label":"c","page":3},
    [
        {"label":"d","page":4},
        {"label":"e","page":5}
    ],
    {"label":"f","page":6},
    {"label":"g","page":7},
    [
        {"label":"h","page":8},
        [
            {"label":"i","page":9}
        ]
    ]
]

どこが無理やりなのか

  • 画像があるPDFだと割りと壊れた感じのファイルが出力される
  • 元ある目次が内部的には消えてない、同じファイルに何度も目次をつけると目次のぶんサイズがでかくなっていくのが分かる