雪ん子パースペクティヴ

読むとちょっとタメになるエントリー。コメントあると嬉しいです。

【Google Apps Script】PDFデータをfetchし、OCRでドキュメントファイルを作成する。

買い物のレシートとか、ビジネス文書とかの読み取りは、簡単に言うとコレ。

 

はろー、yukiです。

 

OCR(Optical Character Recognition)とは、光学文字認識のことです。

なんて書くと、難しく感じますが、最近だと使うのも簡単になっています。

OCRは、テキストでない情報をテキスト化することができる技術です。

テキストはtxt形式やdoc形式などで使用しますが、画像にある文字はテキストではなく、文字に見える画像です。

その文字に見えるものを、実際に文字(テキスト)にする技術がOCRと呼ばれるものです。

 

今回は、Google DriveAPIにある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メソッドの一機能(パラメータ)ですね。

 

 

以上。

 

 

Googleアドセンス