GASを使って簡単にPDFをドキュメントに変換する方法

GASでPDFをドキュメントに変換する方法があるって聞いたんですけど…具体的にはどうやればいいんでしょう…?
猫男
猫男
catman
catman
ふふふ、catmanがGASの力でPDFをGoogleドキュメントに変換する方法を教えてあげよう!

PDFをGoogleドキュメントに変換する基本

GASを使えば、PDFファイルを簡単にGoogleドキュメントに変換できる。まずはその基本から説明しよう。

GASでDrive APIを使用する準備

GASでPDFをドキュメントに変換するためには、Google Drive APIが必要だ。Drive APIを有効にしてアクセスできるようにしよう。

APIを使用するには、まずGoogle Cloud PlatformのプロジェクトでDrive APIを有効にする必要がある。

Google Apps Scriptのエディタに移動し、「サービスを追加」からDrive APIを選択して追加しよう。

PDFをGoogleドキュメントに変換するスクリプト

ここではGASを利用してPDFをドキュメントに変換する基本的なコードを紹介する。


function convertPdfToDoc(pdfFileId) {
  var pdfFile = DriveApp.getFileById(pdfFileId);
  var pdfBlob = pdfFile.getBlob();
  var resource = {
    title: pdfFile.getName().replace('.pdf', ''),
    mimeType: MimeType.GOOGLE_DOCS
  };
  var docFile = Drive.Files.insert(resource, pdfBlob, {
    convert: true
  });
  return docFile.id;
}

このスクリプトでは、PDFファイルのIDを指定してGASとして呼び出すことで、そのPDFをGoogleドキュメントに変換している。

使用するメソッドやプロパティについては後で解説しよう。

GASスクリプトの解説

それでは、具体的なスクリプトに使われているメソッドやクラスを詳しく見ていこう。

PDFファイルを取得する

DriveApp.getFileByIdはPDFファイルを取得するためのメソッドだ。

引数としてファイルのIDを指定し、それに基づいてPDFファイルを取得することができる。

次にpdfFile.getBlob()でそのファイルをBlob形式に変換している。

PDFをGoogleドキュメントに変換する

PdfBlobをGoogleドキュメントの形式に変換するためには、以下のResourceオブジェクトを活用している。


var resource = {
  title: pdfFile.getName().replace('.pdf', ''),
  mimeType: MimeType.GOOGLE_DOCS
};

Resourceオブジェクトにはドキュメントのタイトルを指定しており、元のPDFの名前から拡張子を取り除いたものを使用している。

さらに、MimeType.GOOGLE_DOCSを指定して、Googleドキュメント形式に変換することを指示している。

最後にDrive.Files.insert(resource, pdfBlob, {convert: true})を使ってGoogleドキュメントに変換し、新しいファイルのIDを返す。

このメソッドのconvertオプションをtrueにすることで、PDFをGoogleドキュメントに変換しているんだ。

練習問題

以下のPDFファイルをGASを使ってGoogleドキュメントに変換するスクリプトを完成させてみよう。

  • ファイル名: sample.pdf
  • ファイルID: 1aBcD2eFgHiJKLmnop3Q

解答と解説

 


function convertSamplePdfToDoc() {
  var pdfFileId = '1aBcD2eFgHiJKLmnop3Q';
  var pdfFile = DriveApp.getFileById(pdfFileId);
  var pdfBlob = pdfFile.getBlob();
  var resource = {
    title: pdfFile.getName().replace('.pdf', ''),
    mimeType: MimeType.GOOGLE_DOCS
  };
  var docFile = Drive.Files.insert(resource, pdfBlob, {
    convert: true
  });
  Logger.log('Document ID: ' + docFile.id);
}

上記のスクリプトでは、PDFファイルのIDとして’sample.pdf’のものを指定している。

DriveApp.getFileByIdを使ってファイルを取得し、Blob形式に変換する。

Googleドキュメントに変換した後、その新しいファイルのIDをログとして出力している。これが変換の結果となる。

GASでPDFをドキュメントに変換するなんてまるで魔法みたいですね…!これで仕事も効率的に進められそうです!
猫男
猫男
catman
catman
その通りだ。GASを使いこなせば、もっと多くのことを自動化できる。これからも頑張っていこう!