Slide 1

Slide 1 text

国立国会図書館デ ジタルコレクショ ンの本をオフライ ンで読む Kenichiro Matohara(matoken) 1

Slide 2

Slide 2 text

matoken @ 鹿児島の右下の山奥から参加 好きなLinuxディストリビューションは Debian map: © OpenStreetMap contributors Kenichiro Matohara(matoken) https://matoken.org matoken@inari.opencocon.org 2

Slide 3

Slide 3 text

国立国会図書館デジタルコレク ション で サンリオSF文庫公開 参考文献 幻の「サンリオSF文庫」、国立国会図書館デジタルコレクションで無料公開中 https://dl.ndl.go.jp/search/searchResult? accessRestrictions=ooc&collection=A00001&keyword=% サンリオSF文庫の部屋 サンリオSF文庫総解説 - 本の雑誌社の最新刊|WEB本の雑誌 3

Slide 4

Slide 4 text

 サンリオ → やなせたかし → 【48-1】それいけ!やなせたかしと アンパンマン 〜心優しきヒーローに託された愛と勇気〜 【COTEN RADIOショート やなせたかし編1】 - 歴史を面白く学 ぶコテンラジオ (COTEN RADIO) | Podcast on Spotify 4

Slide 5

Slide 5 text

国立国会図書館デジタルコレク ションを利用するには 十全に国立国会図書館デジタルコレクションを利用するためには国立 国会図書館の利用者登録(個人)の本登録を(現在はリモートで登録可 能) 国立国会図書館の利用者登録(個人)について|国立国会図書館 ―National Diet Library 5

Slide 6

Slide 6 text

郵送での新規登録・「本登録」への移行 郵便でも新規登録・「本登録」への移行ができます。 次の①から③を下記宛先までお送りください。 ①利用者登録申請書(PDF: 9KB) ②氏名・生年 月日・現住所が確認できる、有効期間内の本人確 認書類(写し) ③定型サイズの返信用封筒(返信用 の切手は不要です。) ※利用者登録証が登録住所に届くまで2週間ほど かかる場合があります。 6

Slide 7

Slide 7 text

https://x.com/matoken1/status/1493875728584110085 7

Slide 8

Slide 8 text

閲覧 8

Slide 9

Slide 9 text

フルスクリーン 9

Slide 10

Slide 10 text

オンライン閲覧 普通に読めるけど要回線 完全にフルスクリーンには出来ない セッションが結構こまめに切れ,再認証が必要なのが面倒 10

Slide 11

Slide 11 text

国立国会図書館デジタルコレク ションダウンロード機能 「印刷」機能で PDFファイルを生成してダウンロードできる 1度に作れるのは 50コマ迄 例えば151以上200コマの本の場合このように4回指定するこ とで4つの PDFファイルを入手できる 「1-50」「51-100」 「101-150」「151-」 しばらく待つと「印刷用ファイルを作成しました。右のリンクから PDFファイルを表示できます。」と表示され,「PDFファイルを開く」 からダウンロード可能 11

Slide 12

Slide 12 text

12

Slide 13

Slide 13 text

PDF 本により画像として透かしが入る場合がある(本名,利用者ID, 生成年 月日 時分秒) 本の周りに余白や影があって邪魔 複数の PDFファイルを結合したい 13

Slide 14

Slide 14 text

PDFファイル結合 pdftk(pdfchain) を利用……失敗 鍵が掛かっている poppler-utilsのpdfimages で PDFファイル内の画像書き出しは可 能 $ pdfinfo digidepo_2530201_0001-001-050.pdf | grep ^Enc Encrypted: yes (print:yes copy:no change:no addNotes:no algorithm:AES-256) $ pdfimages digidepo_2530201_0001-001-050.pdf -all 14

Slide 15

Slide 15 text

画像からPDFファイルに変換 (Imagemagick) メモリが足りず失敗, $ convert 2530201/* 宇宙船ビーグル号の冒険.pdf : convert-im6.q16: cache resources exhausted `2530201/2530201-107.jpg' @ error/cache.c/OpenPixel convert-im6.q16: TooManyExceptions (exception processing is suspended) @ warning/exception.c/Th convert-im6.q16: cache resources exhausted `2530201/2530201-108.jpg' @ error/cache.c/OpenPixel 15

Slide 16

Slide 16 text

/etc/ImageMagick-6/policy.xml の resource 内の memory を 1024MiB → 8192MiB で動くように 6GB以上必要だった.リソースを食いすぎ…… $ sudo git -C /etc diff /etc/ImageMagick-6/policy.xml (5) diff --git a/ImageMagick-6/policy.xml b/ImageMagick-6/policy.xml index 4b878ce..aa54cbe 100644 --- a/ImageMagick-6/policy.xml +++ b/ImageMagick-6/policy.xml @@ -95,7 +95,7 @@ - + $ identify -list resource | grep ^\ \ Memory: Memory: 8GiB 16

Slide 17

Slide 17 text

を利用 少リソースかつ高速 :) img2pdf https://gitlab.mister-muffin.de/josch/img2pdf $ img2pdf -o 宇宙船ビーグル号の冒険-img2pdf.pdf 2530201/* $ find 2530201 -type f -print0 | sort -Vz | img2pdf -o 宇宙船ビーグル号の冒険.pdf $ time convert 2530201/* 宇宙船ビーグル号の冒険.pdf real 5m18.636s user 0m47.748s sys 0m31.136s $ time img2pdf -o 宇宙船ビーグル号の冒険-img2pdf.pdf 2530201/* real 0m1.279s user 0m0.556s sys 0m0.180s 17

Slide 18

Slide 18 text

本の余白を削除したい 以前は ImageMagick の crop で座標を指定して切り出ししてい た 大雑把に切り抜く感じ Imagemagick の trim で と fuzz で余白を検知させてカットを知 ったので今回はこれを試した fuzz の % は画像により丁度いい値を探す必要がある $ convert 2530201/2530201-001.jpg -fuzz 60% -trim 2530201-001-trim.jpg 18

Slide 19

Slide 19 text

余白がカットされ,3308×2310 → 2831×2099 に mogrify で全画像に反映 $ mogrify -fuzz 60% -trim 2530201/* 19

Slide 20

Slide 20 text

2つ目以降のPDFファイルも処理 1 古いデータを削除 2 PDF 画像を取り出し 3 連番部分を 50 加算したファイル名に改名 4 余白削除 5 非圧縮で zip アーカイブに追加 $ rm 2530201/* $ pdfimages -all ./digidepo_2530201_0001-051-100.pdf 2530201/2530201 $ rename 's/(\d+)-(\d+)/sprintf "$1-%03d",$2 + 50/e' 2530201/* $ mogrify -fuzz 60% -trim 2530201/* $ find 2530201 -print | sort -V | zip -@0 ./宇宙船ビーグル号の冒険.zip 1 2 3 4 5 20

Slide 21

Slide 21 text

Linux タブレットで閲覧 出来上がった画像群を .zip にまとめて Mcomix で閲覧 Full Screen 時に戻る操作が出来ない? PDFファイルに変換して閲覧 21

Slide 22

Slide 22 text

Android スマートフォンで…… 画面が小さいので辛い 1コマが見開き2ページ分なので真ん中から2つの画像に分割できな いか? ノド部分の座標は一意ではないので失敗するかも? とりあえず試す 22

Slide 23

Slide 23 text

見開きを2つに分割して1ファイル 1ページにしてみる 左右に2分割する例( output-0.jpg(左側), output-1.jpg(右側) が出来上がる ) 右綴じの場合このファイル名だと逆になってしまう…… $ convert -crop 50%x100% source.jpg output.jpg 23

Slide 24

Slide 24 text

(prename) でファイル名を変更 *-0.jpg → *-2.jpg に変換 *-1.jpg(右), *-2.jpg(左) になった PDFファイルにまとめる  ざっと見るとやはりノドがずれて文が切れてしまう場所もある remane $ rename -v 's/-0\.jpg$/-2\.jpg/' * $ find . -type f -print0 | sort -Vz | img2pdf -o ../宇宙船ビーグル号の冒険-half.pdf 24

Slide 25

Slide 25 text

25

Slide 26

Slide 26 text

まとめ 憧れのサンリオSF文庫が国立国会図書館デジタルコレクションに ちょっと閲覧しにくいのでダウンロードして加工 余白を削除し,zip や PDF ファイルに スマホ向けには 左右分割して小さい画面でも読みやすく 結構いい感じに読めるように カバーがないので などから表紙を 用意しても良さそう 「サンリオSF文庫カバーアート集」 26

Slide 27

Slide 27 text

奥付 発表 2024-05- 19(sun) 発表者 利用ソフトウェア + ライセンス 鹿児島Linux勉強会 2024.05(オンライン開催) Kenichiro Matohara(matoken) Neovim Asciidoctor Reveal.js CC BY 4.0 27