Googleドキュメントのタブを一気に印刷・PDF化したい
2024年にリリースされたGoogleドキュメントの「ドキュメントタブ機能」。非常に便利ですし、Google Meetの議事録機能で生成したドキュメントもこの機能を用いてメモと文字起こしが分けられて収まっています。
しかし、1つ課題点が。印刷しようとしたりPDF化しようとすると「タブ毎に印刷やPDF化しなければならない」という点。印刷しなければいいというアグレッシブな切り捨てもできますが、現実世界はそうたやすくないです。これをなんとかします。
使用するサンプル
現場の人から、タブがいっぱいあると印刷が大変すぎるとか、PDF化したいんだけれど、これ全部PDF出力して結合しなきゃいけないの?とか言われます。まぁ、その通りなのですが、間違いなく嫌な顔されます。
発生している現象
バグではなく仕様なのかもしれませんが、現実問題としてこれは「不便過ぎます」。印刷やPDF化を実行した時に、現在アクティブにしてるものや、メニューからダウンロードでPDFを選ぶと、1つ目のタブのものだけがPDF化されてダウンロードされてきます。
一個開いてはPDF化なんてやってられないので、これは困ったと問い合わせが来るわけです。ということで探索してみた所、Google Communityに回避策が提示されていましたので、実際に取り組んでみたところ一括でPDF化することができました。
もともとタブ機能はページレスやページ分けが同居できる特殊な仕様なので1つ1つは独立したDocumentという位置づけなのでしょう。
図:全部ひとまとめにPDF化ができない
一括で印刷・PDF化する手順
さて、肝心のタブを一括でPDFにする方法ですが、Google Drive上から作業を行います。
手作業で行う場合
手作業で行う場合には以下の手順でPDF化や印刷を実行することが可能です。
- Google Drive上で対象のドキュメントを右クリックする
- アプリで開く→プレビューをクリックする
- プレビューモードでドキュメントが開かれると全部が表示された状態になる
- この状態でダウンロードをクリックするとdocx形式でダウンロードが可能です。
- 印刷ボタンをクリックすると、PDF閲覧みたいな状態になるので、右上の再度ダウンロードボタンをクリックするとPDFでダウンロードが可能です。
- 右上の再度印刷ボタンをクリックした場合には印刷ダイアログが出てきて一括で印刷が可能です。
但し欠点が1つあって、タブ名だけで1枚表示されてしまってるので、2つタブがあるとこの無駄な紙が一度の印刷で2枚でてきてしまうのと、印刷後に除外する手間が発生してしまいます。
macOSの場合はこれを除外したい場合には、以下の手順をします
- 前述の6.の手順の段階で、印刷ボタンをクリックする
- 印刷ダイアログに「PDFをプレビュー」というのがあるのでクリックする
- macOSのプレビューアプリで開かれるので、Ctrl + Pか印刷を実行します。
- 印刷ダイアログが出てくるので、ここでページは選択部分にチェックを入れます。
- 左サイドバーから不要なページをクリックしてチェックを除外します。
- あとは印刷部数を指定して印刷します。
複雑そうに見えますが手順が少々多いだけですので、
図:プレビューする手順
図:2段階目のプレビュー画面で出力可能
図:プレビューアプリで開いた時
図:ページ除外して印刷を実行する
URLを細工してみる
GoogleドキュメントのURLにちょっと細工をして実行してみる手もあります。
- URL最後のedit以下の部分を削って、「export?format=pdf」を加えて実行する
これだけです。これでPDFで直接ダウンロードされます。これはGASでよく使っているテクニックで、昔のGoogleドキュメントのPDF出力用URLで現在もまだ生きてるテクニックです。
但し、前述にもあるように、タブ名のページがまんま含まれてる状態でエクスポートされるので、PDF編集ソフトで除外して再結合みたいな工程が必要です。このURLテクニックは印刷指定するページを指定ができないので、この手順が必要になりますが前述の手数よりはずっと少ないのである意味楽かもしれません。
GASからPDF化する場合
GASからの場合は通常通りのPDFエクスポートのコードを利用すれば良いだけなので、タブであろうとなんであろうと、前述のURL細工と変わらないので、特別なことをせずともPDF化が可能です。但しタブ名のページがそのまま含まれる問題は解決できません。
しかし、新方式のPDF出力ではページ指定が可能なのですが、スプレッドシート用のコードなのでおそらくこのまま使えないのではないかと思います。
一方で旧来の方法で一旦出力したものを、pdf-libで分割し再結合する処理を装備できれば、タブ名の入ったページの場所が事前にわかってるケース(Meetの議事録みたいなパターン)では、除外指定した結果と同じファイルを手に入れることが可能ではないかと思います。