見出し画像

[GAS]GoogleドライブのドキュメントファイルをPDFファイルとして作成 #3

GASを使えば、GoogleドライブのドキュメントファイルをPDFファイルとしてフォルダに自動作成することができます。

どのように作成するかこれから学んでいきましょう。

ドキュメントファイルをPDFファイルとして作成

#3で学ぶこと まとめ図

今回は「①Googleドライブのフォルダ取得」を行い「②ドキュメントファイルをPDF化」をして「③PDFファイルをフォルダに保存」という内容について解説してきたいと思います。

1.新しいプロジェクトを作成

Google ドライブからGASを作成しますので、Google Apps Scriptにアクセスします。

Google Apps ScriptのURL ←クリック

新しいプロジェクトを作成
「無題のプロジェクト」を立ち上げる

GASを作成できました。

2.プロジェクト名を変更

GASプロジェクトが作成できたら、デフォルトでは「無題のプロジェクト」になっているので、 こちらをクリックして適当な名前に変更し、[OK]ボタンをクリックしてください。

プロジェクト名を変更する

3.コードを入力する

これから詳細については説明しますので、まず下記コードを「コード.gs」のところにコピー&ペーストしてください。

function myFunction({
  const exportFolder = DriveApp.getFolderById(""); //書き出し用フォルダを取得

  var blob = DocumentApp.openById("").getBlob(); //ドキュメントのblob取得
  var pdffile = blob.getAs("application/pdf"); //blobをPDF化
  
  exportFolder.createFile(pdffile); //PDFをファイルとしてPDF書き出しフォルダに保存
}

こちらのコードを貼り付けたら、下記のような画面になると思います。

コードを貼り付けましょう

これから上記コードについて、確認します。

ここから難しく感じる方もいるかもしれませんが、肩の力を抜いて気楽に読んでください。

4.コードで何しているか理解する

コードで何をしているか、 少しづつ内容を分解して考えると理解しやすくなります。

①→②→③の順序で理解しよう

①Googleドライブのフォルダ取得

今回は、GoogleドライブにあるフォルダをID情報で呼び出します。

const exportFolder = DriveApp.getFolderById(""); //書き出し用フォルダを取得

「DriveApp.getFolderById("");」メソッドを使用して、指定しているフォルダの情報を呼び出します。これまでの学習で「GmailAppクラス」や 「DocumentAppクラス」を使いましたが、やり方は同じです。

またこちら「getFolderById()」メソッドでIDを指定してフォルダを取得します。

②ドキュメントファイルをPDF化

①で取得したフォルダにあるファイル情報を取得します。

 var blob = DocumentApp.openById("").getBlob(); //ドキュメントのblob取得
 var pdffile = blob.getAs("application/pdf"); //blobをPDF化

getBlobメソッドで、blobを取得します。

BLOBとは、データベースのフィールド定義などで用いられるデータ型の一つで、テキスト(文字列)や整数のように既存のデータ型としては用意されていない任意のバイナリデータを格納するためのもの。

IT用語辞典

getAsメソッドで、ファイルをPDF化します。

③PDFファイルをフォルダに保存

②のPDFファイルを、①のフォルダに新規ファイルとして保存しましょう。

exportFolder.createFile(pdffile); //PDFをファイルとしてPDF書き出しフォルダに保存

createFileメソッドを使うことで、新規ファイルを作成することができます。

5.コーディングしよう

では上記内容を踏まえて、実際にコーディングしてみましょう。

function myFunction({
  const exportFolder = DriveApp.getFolderById("1UZdNzPDsQfCiKcsKf1Xi3iEynN7JjsG5"); //書き出し用フォルダを取得

  var blob = DocumentApp.openById("1cOzUvSm5oaVv8nRwr_vfZRkdFoFWvKNCbRYLleEsDpo").getBlob(); //ドキュメントのblob取得
  var pdffile = blob.getAs("application/pdf"); //blobをPDF化
  
  exportFolder.createFile(pdffile); //PDFをファイルとしてPDF書き出しフォルダに保存
}

任意のフォルダIDを「getFolderById(フォルダID)」にいれるようにしてください。また任意のファイルIDを「openById(ファイルID)」にいれてください。

上記コードにあるIDは、私が作成したフォルダIDが入っていますので、ご自分が作成したフォルダIDに変更してください。

参考画面

6.プロジェクトを保存→実行

情報を入力したら、「プロジェクトを保存」をクリックしましょう。「プロジェクトを保存」が完了したら、「実行」をクリックしましょう。

「プロジェクトを保存」→「実行」

7.権限を確認→許可

毎度のことですが、初めてプログラミングを実行する場合、権限の承認が求められます。

権限を確認

「このプロジェクトがあなたのデータへのアクセス権限を必要としています。」と言うポップアップが出ますので、「権限を確認」をクリックしてください。

ドキュメントファイルをPDF化(安全ではないページ)に移動

次の画面で「このアプリはGoogleで確認されていません」と出るので「詳細」から「ドキュメントファイルをPDF化(安全ではないページ)に移動」をクリックしてください。

「許可」をクリック

次の画面で「許可」を求められますので、ご自身のアカウントであることを確認し「許可」をクリックしてください。

8.「実行完了」を確認

「許可」の確認が終わりましたら「実行ログ」を確認してみましょう。そして画面上で「実行開始」及び「実行完了」できているか確認しましょう。

「実行完了」を確認

プログラミングに問題がなければ、 実行ログに実行完了が表示されています。

サンプルフォルダにテストPDFファイル

私の場合は、GoogleドキュメントをPDFファイルとして「サンプルフォルダ」に書き出しましたので、上記画面のように保存されています。

9.GASでGoogleドライブのドキュメントファイルをPDFファイルとして作成のおさらい

GASでは、Googleドライブのファイルを呼び出すだけではなく、ファイル形式の変更やファイル新規作成などを行うこともできます。

getAs()
createFile()

上記メソッドを使うことで、ファイル形式変更や新規作成が可能です。

10.まとめ

いかがでしょうか?これまでのカリキュラムが理解できていると、そこまで難しくないですよね。

GASは、GmailやGoogleドキュメント、Googleスプレッドシート、Googleドライブ、Googleドライブで提供しているサービスについて横断的にデータを移行をすることができます。しかも特別なサーバーを用意する必要などありません。

次回は「#4 スプレッドシートファイルをPDF化」ついて解説していきたいと思います。

この記事が気に入ったらサポートをしてみませんか?