PDF の結合・分割・墨消しを、ブラウザの中だけで行う道具です。ファイルはサーバへ送信されません。 このページでは、その仕組みと、それをご自分で確かめる方法を説明します。
PDF の読み込み・表示・並べ替え・墨消し・書き出しは、すべてお使いのブラウザの中で行われます。 サーバがしているのは、この画面を作るためのファイルを配ることだけです。
PDF がこの枠から出ることはありません。
HTML・JavaScript・CSS を配るだけ。
ファイルを受け取る窓口がありません。
黒い四角を上に重ねるだけの墨消しは、消えていません。 下の文字はデータとして残ったままなので、四角を動かしたり、文字をコピーしたり、 別のソフトで開いたりすれば読めてしまいます。情報漏えいの原因としてよく知られたものです。
かわりに、墨消しをしたページは画像になります。 そのページでは文字の選択・検索ができなくなり、ファイルも少し大きくなります。 これは避けられない代償です。確実に消すとは、そういうことです。
墨消しをしていないページには手を加えません。文字はそのまま残ります。
書き出したファイルから文字を取り出して、消したはずの文字が無いことを確認できます。
pdftotext 書き出したファイル.pdf - | grep "消したはずの文字"
何も出てこなければ、そのページに文字データは残っていません。
「送っていません」という文章を信じていただく必要はありません。 ブラウザに付いている開発者ツールで、通信をそのまま見ることができます。
pdfjs)cmaps)。同梱したものを読みますpdf-lib)サーバ側にファイルを受け取る窓口が無いことも、外から確かめられます。
curl -i -X POST --data-binary @書類.pdf https://tebako.ncgv.jp/pdf/
405 Method Not Allowed が返ります。読み取り(GET)以外は受け付けません。 本文の大きさも 1 キロバイトまでに制限してあり、PDF が入る余地がありません。
| 結合 | 複数の PDF を落とすと、落とした順に1つの並びになります。そのまま書き出せば1つの PDF になります。 |
|---|---|
| 分割 | 「1ページずつ別の PDF にする」を選ぶか、ページを選んで「選んだページ」だけを書き出します。 |
| 並べ替え | 各ページの ◀ ▶ で前後に動かします。 |
| 回転 | ⟳ で 90 度ずつ回します。墨消しの範囲も一緒に回ります。 |
| 不要なページ | ✕ で一覧から外します。元のファイルには手を加えません。 |
| 墨消し | 「墨消し」を押し、消したいところをなぞって囲みます。いくつでも指定できます。 |
ページの表示に pdf.js(Apache-2.0)、PDF の組み立てに pdf-lib(MIT)、 画面の組み立てに Preact(MIT)を、いずれも改変せずに使っています。