FileMaker の画像取り込みで複数のフィールドにマッピングする

Hitoshi Arakawa | 2024/02/02 Fri 04:00

英単語を覚えるため、情報カード(3x5 インチサイズのカード)を使ったフラッシュカード(暗記カード)を作っていた。しかし枚数が増えてきたのでスキャンして PDF 化した。

PDF 化してドキュメントにしてしまうと暗記をするには向かない。そこで、FileMaker に取り込んで FileMaker 上で暗記をすることにした。FileMaker なら学習の復習周期を管理できたり、紙のフラッシュカードではできないことができる。

最初から FileMaker で暗記アプリを作っておけばいいという意見がありそうだが、語学では発音記号を書いたりするので紙のカードはそれはそれで意味があった。だから、紙のフラッシュカードの画像をそのまま FileMaker に取り込むことにした。

なお、もともと FileMaker でのフラッシュカード(画像を使わないもの)は作っている。今回は PDF を FileMaker に取り込む方法についての投稿なので、暗記アプリの作り方は省略する。

環境:macOS Ventura 13.5(英語環境)、Claris FileMaker Pro 20.3.1.31

まず FileMaker の暗記アプリに、問題用の画像を配置するオブジェクトフィールドと解答用の画像を配置するオブジェクトフィールドを作っておいた。

FileMaker に PDF の各ページを取り込むには一旦 PDF を画像化することになる。Adobe Acrobat で PNG に書き出せばいい。書き出されたファイルは以下のようにファイル名末尾に連番が付けられる。カードの表と裏のカードが交互に画像ファイルとして出力されたわけだ。

{ファイル名}_Page_0001.png
{ファイル名}_Page_0002.png
{ファイル名}_Page_0003.png
...

(書き出されるページ数が 1000 枚を超えているので連番が4桁になっており、そのとき4桁未満の数字は頭に0が加えられる。例えば、書き出しページ数が 100 〜 999 枚なら3桁になる。)

通常 FileMaker に画像を取り込むには、「File>Inport Records>Folder」でフォルダを指定すれば、複数の画像を一括でオブジェクトフィールドに取り込める。しかし、この方法だと取り込み先のオブジェクトフィールドは1つしか指定できない。今回はフラッシュカードの表と裏の画像(=問題と解答の画像2枚)を、2つのオブジェクトフィールドにそれぞれマッピングしたいのだ。

これを実現するにはスクリプトを利用する。

以下のようなスクリプトを作成した。PNG ファイルへのパスは /HDD/flashcards/EnglishFlashCards_Page_0001.png だとする。


僕の場合は、最初に開始ページ番号(PNG のページ番号)をダイアログで聞いていたり、目視チェックのためループごとに1秒止めたりといったことをしている。作業はあえて 10 レコードごとで止めている。

特に注意が必要なところだけメモしておこう。

  • 取り込み画像のファイルパスは Mac の場合、imagemac: で始める。
  • ページ番号の桁数調整のため Case による場合分けが必要(カードの表と裏でページ番号の桁数が切り替わる場合もある)。これをしないとファイルパスを正しく指定できず、画像を取り込めない。
  • 画像の取り込みには、一旦 Go to Field で対象フィールドに行った上で、Insert Picture でファイルパスを指定して取り込む。

これで FileMaker での画像を使ったフラッシュカードができた。

参考:
import images script
https://community.claris.com/en/s/question/0D50H00006h9ADhSAM/import-images-script

import images into container field in database table
https://community.claris.com/en/s/question/0D50H00006h8sJeSAI/import-images-into-container-field-in-database-table

Amazon | ふじさん企画 「最厚口」 情報カード 3×5inc (75×125mm) 1000枚 3×5-1000-J135 | 単語帳・単語カード | 文房具・オフィス用品
https://amzn.to/3w1OPzF