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


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をログとして出力している。これが変換の結果となる。

