LibreOfficeでフォーム入力可能なPDFを作ろう

社内で申請などで利用する様式や、外部の方に記入してもらってお繰り返してもらう書類などでは、現在一般的には「PDF」という形式がよく用いられています。Word形式やExcel形式などが以前は用いられていましたが、レイアウトが崩れる・改ざんされる・スマートフォンが主流になってきている中では、少々利用しにくいものになってきています。

しかし、PDFはもともと改ざんなどを防ぐ為の編集の出来ないフォーマットなので印刷して郵送や、記入してスキャンして送り返すなど、これはこれで不便です。そこで利用したいのが「入力の出来るPDF」を作って利用する方法です。この方法の場合、PDFなのに所定の場所に、スマートフォンやPCから直接入力して、そのファイルをそのまま送る事が可能になります

準備するもの

フォームPDFの値の取得やテキストボックスに値をセットするようなスクリプトもGoogle Apps Scriptにて作成してみました。以下のエントリーも合わせてご覧ください。

Google Apps ScriptでPDFフォームを操作する

LibreOffice DrawでPDF編集

概要

2023年最新版のLibreOffice 7.5.3ではPDF編集機能が非常に仕上がっていて、これまで業務では高額なサブスクであるAdobe Acrobat Proを利用していましたが、自分の業務ではGASのPDF編集プログラムやLibreOfficeで代替できるか試してみました。

結果は十分PDF編集ソフトとして利用できる精度にあります。不安な人は買い切りのJUST PDF 5を購入してみたりも良いでしょう(こちらも過去に検証済み)。よって初めからPDF化されてるファイル類にフォームを追加するのも問題なく行う事が可能です。

国産PDF編集ソフト JUST PDFを使ってみた

インストール上の注意点

LibreOfficeはいろいろな変遷を経て今日に至っていますが、いくつかインストール上の注意点があります。

  • インストール途中でMicrosoft Office形式への関連付けがあるがこれはスルーすること(したい人はすれば良いけれど)
  • アンインストールが結構時間が掛かるのと、なぜかChromeの終了を求められる事がある
  • インストール推奨は長期サポート版を推奨する(アーリーアダプターはベータ版に該当する)
  • 以前あった、Language Packは現在は別途提供ではなくなっている(今まで分かれてたこと自体オカシナことでしたが)

特に1つ目のOffice形式への関連付けはMicrosoft Officeがインストール済みならばするべきではありません。また本稿で利用するのはLibreDrawのみなので、CalcやWriter、Presenterなどは使う必要はありません。

図:最初からLanguage Packは入ってる

インストール手順

LibreOffice Drawを利用するにはインストールが必要です。以下の手順でインストールを行います。

  1. 本家ホームページより長期サポート版をダウンロードする(およそ350MB程度ある)
  2. インストーラを起動する
  3. カスタムインストールで進める
  4. そのまま次へ進む。
  5. ファイルの種類を問われるので、チェックを一切入れない状態で次へ進む。
  6. あとは適当に進めればインストールが完了する。

図:関連付けは行わない

PDF編集手順

LibreOffice DrawにてPDFを編集する手順は以下の通りです。

  1. PDFファイルをつかんで、デスクトップに作成されてるLibreOfficeのアイコンにドラッグ&ドロップ
  2. Drawが起動されて自動インポートされる
  3. 左サイドバーの各種パーツや、右サイドバーの書式で色々工夫して、作成(但し、領域色がデフォルトで「なし」になってるけれど、実際には色が存在するので透明にしたい場合は、一度変色して「なし」を指定する)
  4. 普通に保存するとODG形式となってしまうので、メニューからファイル=>次の形式でエクスポート=>PDFとして直接エクスポートを指定する
  5. この際に既存のPDFに上書きしてしまって問題ない。

PDFをDrawに関連付けしても良いのだけれど、Acrobat Readerなどで見る場合に面倒となるので基本は関連付けせずに上記の手順で作業を行う。

図:PDFエクスポート手順

作り方

まずは普通に様式を作り込みます。ここまではWordなどで普通に作れますね。問題はここから先。これをPDFにする時に、名前などの入力欄を設けて上げる必要があります。手順は以下の通り。

  1. LibreOfficeで作成済みの様式ファイルを読み込ませる。
  2. メニューより「フォーム」⇒「テキストボックス」を選択する。
  3. 入力欄を設けたい場所に、範囲指定すると、ボックスが出来る。
  4. 出現したテキストボックスをダブルクリックして設定を施してあげる(次項を参照)
  5. 設定が終わったら、メニューより「ファイル」⇒「エクスポート」を選択する。
  6. 保存する場所を指定し、ファイルの種類をPDFにしてあげる
  7. これで完成!!PDFビューアで開いてみると、テキストボックスに入力出来るようになってます。

試しにつくってみたファイルはこちらからダウンロード出来ます。このフォーム付きPDFファイルですが、PCならばAdobe ReaderやFoxit Readerなどで入力が可能です。また、Androidの場合もOneDrive PDF ViewerやAdobe Acrobat Readerなどではスマフォ上から入力が出来ました(ドライブPDFビューアは入力出来ませんでした)。

図:テキストボックス挿入画面

設定を施す

そのままでも利用することが出来ますが、このフォームは細かく設定が可能です。また、テキストボックスだけでなく、チェックボックス、オプションボックス、コンボボックスなども利用可能になっています。但し、一部注意点があります。設定はフォームコントロールをダブルクリックすると設定画面が開きます。

最大文字数

最大文字数は入力できる文字数を制限する為の設定です。0で無制限に入力可能です。通常はあまり設定はしませんのでそのままで良いと思います。どうしても文字数制限が必要な時にだけ、設定すると良いでしょう。

標準のテキスト

テキストボックスにデフォルトで入力済みの文字を設定します。通常は設定しません。注意点として、設定してPDFでエクスポートするまでは良いのですが、一度保存して開き直すと文字化けします(PDFのほうは問題ありません)。この文字化け解消法がないので、あまりこの設定は利用しないほうが良いかも。また、保存形式をODT形式にすると、フォームが消えます。

枠

枠なのですが、デフォルトは3Dになっています。凹んだボックスですね。最近のはやりは「フラット」なので、それに変更しても良いです。ただし、枠線なしにすると、入力欄が把握しにくくなるので、その場合は、「背景色」を設定で追加すると良いと思います。

テキストタイプ

通常は「1行」が設定されていますが、コメントや考察などを入力するような場合には、「複数行」にすると良いです。複数行にすると改行が可能になるので、長文入力することが可能になります。

図:テキストボックスの設定を施している様子

実際に入力してみる

こうして設定してエクスポートしたPDFファイルは、フォーム付きPDFとなり、書き込みの出来る特別なPDFファイルになっています。実際に入力してみるとわかりますが、上書き保存という概念がないので、そのまま閉じても保存されています。入力してもらってそのファイルを添付し、返してもらえれば、手書きの手間や郵送といった業務が効率化します(但し、印鑑が必要ならばペーパーレスにならないけれど)。

また、スマートフォンの各種PDFリーダーからも書き込みが可能なので、PC自体も必要ありません。

図:Android上でPDFに入力中!!

関連リンク

LibreOfficeでフォーム入力可能なPDFを作ろう” に対して2件のコメントがあります。

  1. 水本伸哉 より:

    入力フォームは出来たのですが、詳細に設定したデータは、pdfファイルで戻って来た時に
    どうやって収集すれば良いのでしょうか?

  2. officeの杜 より:

    水本さん

    officeの杜管理人です。
    PDFに埋め込まれたフォームに入力された値の取得はなかなか難易度が高いのですが、Google Apps Scriptで取得だけならば作成できました。以下のエントリーをご覧ください。

    https://officeforest.org/wp/2023/04/14/google-apps-script%E3%81%A7pdf%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%82%92%E6%93%8D%E4%BD%9C%E3%81%99%E3%82%8B/

    また、VBA等でも以下のサイトで操作する方法が紹介されています
    https://www.ka-net.org/blog/?p=6637

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。