実現したいこと
指定のGoogleドライブに格納されている複数(10~15個想定)のPDFを1つのPDFに結合したく、こちらのサイトに記載しているスクリプトを参照しました。
https://officeforest.org/wp/2018/11/25/google-apps-script%E3%81%A7pdf%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B/#%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89:~:text=%E3%82%8C%E3%81%B0OK%E3%80%82-,%E8%A4%87%E6%95%B0%E3%81%AEPDF%E3%82%92%E7%B5%90%E5%90%88%E3%81%99%E3%82%8B,-Cloud%20Functions%E3%82%92
発生している問題・分からないこと
officeの杜で共有されているベースとなっているコードが削除されているせいで、mergePdfs()の詳細が不明なのですが、実行するとエラーになります。
エラーメッセージ
error
1ReferenceError: mergePdfs is not defined
該当のソースコード
//結合するPDFが入ってるフォルダ var mergeman = "ここにPDFファイルの入ってるフォルダのIDを入れる"; //PDFを結合する function pdf_merge() { //UIを取得 let ui = SpreadsheetApp.getUi(); //フォルダを取得する let folder = DriveApp.getFolderById(mergeman); //フォルダ内のPDFをリスト化 let pdflist = folder.getFiles(); //リスト用の配列 let mergearr = []; //拡張子の指定(正規表現) let pattern = /.*\.pdf$/; //結合後ファイル名の指定 let filename = "結合後のPDF.pdf" //mergearrにPDFデータをpush while (pdflist.hasNext()){ //ファイルを取得 var file = pdflist.next(); //拡張子をチェック if (pattern.test(file.getName())){ mergearr.push(file); } } //PDF結合実行 let mergedFile = mergePdfs(folder, filename, mergearr); //終了メッセージ ui.alert("PDFの結合が完了しました。") }
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
特になし(同じエラーメッセージ)
補足
特になし
スクリプトエディタに、
mergePdfsの関係のコード(かなり長いですが…)を全てコピペしてありますか?(短い方ではなく折りたたんである長い方です。)
それとも関数名を変更したとか。
エラーはmergePdfsという関数がない場合のものです。
>mergePdfsの関係のコード(かなり長いですが…)を全てコピペしてありますか?(短い方ではなく折りたたんである長い方です。)
コメントありがとうございます。
すみません、これがどこに置いてあるどのコードかわからず、教えていただけないでしょうか?
エラーメッセージからmergePdfsを定義するソースコードが必要なんだろうなと思いつつもそれがどれなのかがわからなくて困っていました。
お示しのサイトで「複数のPDFを結合する」という見出しのところの
「こちらのサイトで掲示されているコード」というリンクで紹介されているコードです。
お示しのコードもここを参照されたのではないのでしょうか。
お返事いただきありがとうございます。
リンク先に飛びますと、「現在、ファイルを開くことができません。アドレスを確認して、もう一度試してください。」と出てしまいます。他のmergePdfs()を紹介しているサイトにおいてもソースコードはこちら、とリンクが貼ってあるのですが、「現在、ファイルを開くことができません。アドレスを確認して、もう一度試してください。」のページが出るのでソースコードが削除されてしまっているという事なのでしょうか。
当方では、開けますので、リンクの場所が違っていませんか?
次の、<<>>の部分ですよ。
複数のPDFを結合する
Cloud Functionsを使わないと出来ないと思っていたPDFの結合ですが、Google Apps ScriptのV8対応によって、スクリプトだけで結合が出来るようになったようです。<<こちらのサイトに掲示されてるコード>>を利用する事で、...
コードありました、処理できました!
最初にご指摘の通りたたんであるコードに気づかず、別のリンク先の方にあるものだと思い込んでいました。
ご丁寧にありがとうございます、お騒がせいたしました。

回答1件
あなたの回答
tips
プレビュー