【Google Apps Script】PDFデータをfetchし、OCRでドキュメントファイルを作成する。
買い物のレシートとか、ビジネス文書とかの読み取りは、簡単に言うとコレ。
はろー、yukiです。
OCR(Optical Character Recognition)とは、光学文字認識のことです。
なんて書くと、難しく感じますが、最近だと使うのも簡単になっています。
OCRは、テキストでない情報をテキスト化することができる技術です。
テキストはtxt形式やdoc形式などで使用しますが、画像にある文字はテキストではなく、文字に見える画像です。
その文字に見えるものを、実際に文字(テキスト)にする技術がOCRと呼ばれるものです。
今回は、Google DriveのAPIにあるOCRを使用しました。
Google Apps ScriptだとDrive APIも簡単に利用できます。
OCRをするファイルは画像もできますが、今回はPDFを指定しています。
下記のコードを参考ください。
※ファイル作成部分(名前、ディレクトリ)を設定できるようにしています。
/////////////////////////////////////////////////////////// /// /// /// 対象のPDFファイルをfetchし、OCRでファイルを作成 /// /// /// /////////////////////////////////////////////////////////// // 作成するファイルのディレクトリ、名前を設定 // ※ファイル名には作成時の年月を付す var currentDay = Utilities.formatDate(new Date(), "JST", "yyMM"); // 2019年12月の場合 -> 1912 var fileDir = "ここにディレクトリのID"; var fileName = "ここにファイル名" + currentDay; // -> ファイル名1912 function makeFileByOCR() { // 作成するファイルを設定 var resource = { title: fileName, parents: [{"id": fileDir}], mimeType: 'application/pdf' }; // mimeType(MIME:メディアタイプ)は下記URLが詳しい // https://developer.mozilla.org/ja/docs/Web/HTTP/Basics_of_HTTP/MIME_types // 対象のファイルを取得 // ※fetchするデータをBLOB型に置き換える var response = UrlFetchApp.fetch('対象のPDFファイルのあるURL'); var mediaData = response.getBlob(); // getBlobメソッド // https://developers.google.com/apps-script/reference/drive/file#getblob // BLOB型は下記URLが詳しい // https://ja.javascript.info/blob // OCRを設定 var options = { ocr: true, ocrLanguage: 'ja' }; // ファイル作成 var makeFile = Drive.Files.insert(resource, mediaData, options); // Drive APIのFiles.insertメソッド // Files.insert(各パラメータ); // https://developers.google.com/drive/api/v2/reference/files/insert // Drive APIの使用例 ※[Uploading files]を参照 // https://developers.google.com/apps-script/advanced/drive }
mimeType
を他のメディア形式(拡張子)に変え、URLを指定すると、色々とOCRができるはずです。
OCR専用のAPIというよりは、 Drive APIにあるFile.insert
メソッドの一機能(パラメータ)ですね。
以上。