PDFの資料からテキストを抜き出したいときに手作業でコピペするのは意外と面倒くさいです。
また、すべての行で改行が入ってしまうので改行を削除したりするのも手間がかかります。
そこで、ファイルをサーバーでテキストに変換し、その変換されたテキストの不要な改行や不要な行を削除するツールを作ってみました。
テキストの加工のみでも使用できます。テキストの加工のみならJavascriptで完結しており、サーバーでの処理はありません。
PDFをテキスト化して不要な改行や空白を調整するツール

今回は、PDFファイルを送信すると、テキスト化するとともに、不要な改行の削除やスペースの削除を簡単にできるツールを作りました。
PDFからテキストをコピペして、改行を削除してというのはなかなか面倒くさい作業です。
PDFをコピペすると必ず各行に改行が入ったり、余計な空白が入ったりと加工も手間がかかります。
そこで、PDFを一気にテキスト化して、各行の余計な空白の削除や、余計な空白行の削除などの工数やストレスを若干軽減できるようにツール化しました。


ツールでできること
今回作ったツールの主な機能です。
PDFの全文をテキスト化します
PDFファイルを選んで送信すると、PDFの全文をテキストに変換しテキストエリアに出力します。
ただし、変換可能なPDFファイルはフォントが埋め込まれている手作業でもコピペできるPDFファイルに限られます。
画像としてPDF化されているものはテキストの抽出は今回のツールではできません。
加工後のテキストはファイル出力も可能
PDFを変換したテキスト、それを加工したテキストについては、Copyボタンでクリップボードに取り込みますので、WordやExcelなどに貼り付け可能です。
そのほか、ファイル出力ボタンでテキストファイルとして出力することも可能です。
テキストの加工
PDFをテキスト化すると各行に改行が入ってしまったり、空白が入ってしまったりします。
これを削除する手間を削減できるようにツールにテキストの編集機能があります。
行頭空白削除・行末空白削除
各行の先頭や末尾に余計な空白がある場合に削除します。
削除したい範囲を選択してからボタンを押すと、一括して行頭のスペース、行末のスペースを削除することができます。
文書全体に適用したい場合は、全文選択ボタンですべてのテキストを選択した状態で実行してください。(これは他の機能も共通です。)
改行削除処理⇒改行削除確定
PDFをコピペすると元の文章では改行されていないものでも右端で改行が入ってしまいます。
この改行を削除するための機能です。
操作としては、改行削除処理ボタンで改行して、問題なければ行削除確定ボタンで確定させます。
改行の削除では閾値(初期設定は90%)を超える文字数は右端まで埋まっていて次の行につながっていると判断して改行を削除します。
閾値は文書で最も長い行の文字数を基準にして、その文字数にパーセントを掛けて文字数以上の行の改行は削除されます。
一方で、改行回避文字として設定するとその文字や文字列が次の行の先頭にある場合には閾値を超えていても改行削除の対象外となります。
この改行回避文字は、|(縦棒:シフト+キーボードの右上のほうのキー)でorで指定できます。
Javascriptの正規表現を使っているので、[0-9]で半角数字の0~9や[①-⑨]で○囲みの数字なども指定できます。(角括弧と間は半角ハイフン)。
(正規表現は”/^入力値/”という先頭一致で検索します。)
言語については、日本語の場合は改行削除時にスペースなし、英語を選択すれば改行時に半角スペースを挿入します。
改行削除処理ボタンを押すと改行が削除されるとともに、削除した個所に🔶(オレンジひし形)が挿入されるので、これを見て改行削除しない方がいい場所があれば手作業で改行して調整してください。
最後に改行削除確定ボタンを押すと🔶(オレンジひし形)が削除されます。
連続改行削除、空白行削除、改行削除
連続改行削除は連続した空白行があれば1行の空白になるよう改行を削除します。
空白が2行や4行空いている部分を選択して実行するとすべて空白行が1行になります。
空白行削除は空白行がなくなるように改行を削除します。
改行削除はすべての改行を削除し1行につなげます。
半角スペース、全角スペースの削除
文中に余計な空白が入っている場合に削除することができます。
選択範囲の半角スペース、全角スペースを削除するので、行頭、行末も含め選択範囲内のすべての半角スペース又は全角スペースが削除されます。
Copy、ファイル出力
Copyは、クリップボードにテキストエリアのテキストを出力します。
ファイル出力はテキストファイルを生成して保存します。
行削除ツール
PDFを一括してテキスト化するとヘッダーの文字列やフッターのページ数などもテキスト化されてしまいます。
このヘッダーやフッターの文字列の行を削除するためのツールです。

行削除ツールボタンを押すと画面が切り替わりツールの画面になります。
行削除ツールの使い方
行削除ツールでは、行をクリックする、一定文字数以下を検索して選択する、という操作で行が赤いハイライトになります。
そして、削除したい行をハイライトした状態で「ハイライト行を削除」ボタンを押すと、ハイライトになっている行が一括して削除されます。
ツールでは各行の冒頭の40文字程度だけ表示されており、それ以上は表示は省略されます。
クリックでのハイライト、ハイライト解除
テキストをクリックするとハイライトになり、もう一度クリックするとハイライトは解除されます。
またクリック操作ではなく、ダブルクリックでハイライト/解除にしたい場合には、ツール下部に切り替えのラジオボタンがあります。
一定文字数以下の検索、一括選択
一定の文字数(初期設定は5文字)以下の行を検索、一括選択できます。フッターのページ数などの削除に向いています。
「前へ」「次へ」ボタンで候補(青太字になります。)を切替え選択、解除でハイライトとその解除ができます。
一括選択、一括解除では該当する行を一括してハイライト、ハイライトの解除ができます。
特定の文字列の行
特定の文字列に該当する行を検索、一括選択することができます。
改行の回避同様に、|(縦棒)で複数の文字列を指定できます。
Javascriptの正規表現を使っていますので、正規表現での指定も可能です。
(”/^入力値$/”)で完全一致の検索となります。
ハイライト行の削除
ハイライト行の削除をしないと行は削除されません。
上記の操作で削除対象をハイライトしてからハイライト行を削除ボタンで行を削除してください。
削除は反映し閉じる、反映せず閉じる
削除できたら「削除反映し閉じる」ボタンで削除が反映されます。
ハイライト部分が残っているときはブラウズの機能でハイライト行が残っている警告がでます。
反映せずに閉じるボタンを押すと行改行ツールでの削除はすべてキャンセルされます。
PDFのテキスト化だけのつもりが、、、。
PDFをテキスト化するだけのつもりで作り始めました。
ついでに、ちょっと改行の調整ぐらいできるようにしておくか、とやり始めたら、結局、テキストの加工の機能のほうがマニアックに増えていってしまいました。
作業工数的には、本題のPDFのテキスト化が5%、テキストの加工ツール部分95%ぐらいというぐらいで、これが仕事だとめちゃくちゃ怒られそうなパターンになってしまいました。
PDFのテキスト化がおまけぐらいのツールになってしまいました。
コメント