GASのDriveAppでPDFファイルを作成する方法

先生

GASとDriveAppを使えば、ドキュメントもスプレッドシートも、自由自在にPDF化!業務効率爆上げ間違いなし🚀

GASでPDFファイルを作成する基本

Google Apps Script(GAS)を使ってPDFファイルを作成する方法について解説します。GASは、Google Workspaceの各種サービスを自動化したり、連携させたりするのに非常に便利なツールです。特に、Googleドキュメントやスプレッドシートの内容をPDFとして保存する処理は、業務効率化に大きく貢献します。

この記事では、DriveAppを使ってPDFファイルを作成する基本的な手順から、応用的なテクニックまでを丁寧に解説します。初心者の方でも理解しやすいように、具体的なコード例を交えながら説明していきますので、ぜひ参考にしてください。

DriveAppとは?

DriveAppは、GASでGoogle Driveを操作するためのサービスです。これを使うことで、ファイルの作成、検索、移動、削除など、Google Drive上の様々な操作を自動化できます。PDFファイルの作成もその一つです。

DriveAppを使うためには、GASのスクリプト内でDriveAppオブジェクトを取得する必要があります。このオブジェクトを通じて、Google Drive上のファイルやフォルダにアクセスし、操作を行います。

DriveAppを使うことで、手動で行っていたファイル管理作業を自動化し、時間を有効活用できます。

PDFファイルを作成する基本的な手順

GASでPDFファイルを作成する基本的な手順は以下の通りです。

1. Googleドキュメントを作成: まず、PDFに変換したい内容をGoogleドキュメントに記述します。GASからドキュメントIDを指定してアクセスします。

2. ドキュメントをPDFとして保存: DriveAppgetFileById()メソッドでドキュメントを取得し、getAs('application/pdf')メソッドでPDF形式に変換します。

3. PDFファイルを保存: 変換されたPDFデータを、DriveAppcreateFile()メソッドを使ってGoogle Driveに保存します。

function createPdfFromDocument(documentId, pdfFileName) {
  // Googleドキュメントを取得
  var doc = DocumentApp.openById(documentId);
  var docName = doc.getName();
  
  //ドキュメントの内容をPDFに変換
  var pdf = DriveApp.getFileById(documentId).getAs('application/pdf');

  // PDFファイルを保存
  DriveApp.createFile(pdf).setName(pdfFileName);

  Logger.log('PDF file created successfully!');
}

上記のコードは、指定されたGoogleドキュメントをPDFに変換し、指定されたファイル名でGoogle Driveに保存する関数です。

このコードを実行する際には、documentId(GoogleドキュメントのID)とpdfFileName(保存するPDFファイルの名前)を適切に設定してください。

サンプルコードと詳細な解説

以下に、より詳細なサンプルコードと解説を示します。この例では、特定のフォルダにPDFファイルを保存する方法も示しています。

function createPdfInFolder(documentId, pdfFileName, folderId) {
  // Googleドキュメントを取得
  var doc = DocumentApp.openById(documentId);
  var docName = doc.getName();

  // ドキュメントの内容をPDFに変換
  var pdf = DriveApp.getFileById(documentId).getAs('application/pdf');
  
  // 保存先のフォルダを取得
  var folder = DriveApp.getFolderById(folderId);

  // PDFファイルをフォルダに保存
  folder.createFile(pdf).setName(pdfFileName);

  Logger.log('PDF file created successfully in folder!');
}

このコードでは、folderIdを使って保存先のフォルダを指定しています。folderIdは、Google Drive上のフォルダのIDです。フォルダIDは、Google Driveでフォルダを開いた時のURLに含まれています。

フォルダを指定することで、PDFファイルを整理しやすくなります。

エラーハンドリング

GASでPDFファイルを作成する際には、エラーが発生する可能性があります。例えば、指定されたドキュメントIDが存在しない場合や、フォルダIDが無効な場合などです。これらのエラーを適切に処理するために、try...catchブロックを使用します。

function createPdfWithErrorHandler(documentId, pdfFileName, folderId) {
  try {
    // Googleドキュメントを取得
    var doc = DocumentApp.openById(documentId);
    var docName = doc.getName();

    // ドキュメントの内容をPDFに変換
    var pdf = DriveApp.getFileById(documentId).getAs('application/pdf');

    // 保存先のフォルダを取得
    var folder = DriveApp.getFolderById(folderId);

    // PDFファイルをフォルダに保存
    folder.createFile(pdf).setName(pdfFileName);

    Logger.log('PDF file created successfully in folder!');
  } catch (e) {
    Logger.log('Error: ' + e);
  }
}

tryブロック内でPDFファイルの作成処理を行い、エラーが発生した場合はcatchブロックでエラー内容をログに出力します。これにより、問題の原因を特定しやすくなります。

応用テクニック

PDFファイルを作成する際に、ファイル名を日付やタイムスタンプに基づいて自動的に生成することができます。これにより、ファイル管理が容易になります。

function createPdfWithTimestamp(documentId, folderId) {
  // 現在の日時を取得
  var now = new Date();
  var timestamp = Utilities.formatDate(now, 'JST', 'yyyyMMdd_HHmmss');

  // PDFファイル名を作成
  var pdfFileName = 'Document_' + timestamp + '.pdf';

  // Googleドキュメントを取得
  var doc = DocumentApp.openById(documentId);
  var docName = doc.getName();

  // ドキュメントの内容をPDFに変換
  var pdf = DriveApp.getFileById(documentId).getAs('application/pdf');

  // 保存先のフォルダを取得
  var folder = DriveApp.getFolderById(folderId);

  // PDFファイルをフォルダに保存
  folder.createFile(pdf).setName(pdfFileName);

  Logger.log('PDF file created successfully with timestamp!');
}

上記のコードでは、Utilities.formatDate()メソッドを使って、現在の日時を特定のフォーマットの文字列に変換しています。この文字列をファイル名に含めることで、一意なファイル名を生成できます。

参考リンク

まとめ

GASのDriveAppを使うことで、GoogleドキュメントをPDFファイルとして簡単に作成し、Google Driveに保存することができます。この記事では、基本的な手順から、エラーハンドリング、応用テクニックまでを解説しました。これらの知識を活用して、業務効率化を実現してください。