百以上の画像のあるシートを公表を使ってPDF化又は印刷する方法

Smartsheetを建設関係の安全・品質管理に使っているお客様から「セルに現場の画像を貼り付けていて、完成後にPDFにしているが、最初の百画像しか表示されないので、分割してPDFを作成する必要があり困っている」というお問い合わせがありました。

最初はSmartsheet APIを使って、「画像のURLの取得 → シートの列に貼り付け → Google Sheetにエクスポート → Google Sheetの=IMAGE(“URL”)の関数を使い画像取得 → PDF保存又は印刷」というAPIによるアプローチ(※)を検討していました。

しかし、より簡単な、Smartsheetの公表の機能を使い百画像以上のシートの全ての画像付きでPDF保存等する方法を思いつきましたので、説明いたします。

SmartsheetのPDFエクスポート

SmartsheetをPDF化するには、メニューのファイル>エクスポート>PDFにエクスポート により行います。
印刷で行う場合は、ファイル>印刷 と進み、出力をPDFにします。

martsheetのシートのPDFエクスポート
https://app.smartsheet.com/b/publish?EQBCT=481db4daa49f40c491716840605a2091

最初の百画像のみが含まれる

問題はSmartsheetのPDFエクスポート、印刷では最初の百画像のみが含まれるようなしようとなっていることです。冒頭で紹介したお客様のように、百を超える画像をシートのセルに添付されているお客様は、1つのPDFに全ての画像が収まらないので、PDFを分割して作成、再統合という手間がかかってしまいます。

例えば、下のイメージは備品管理で説明したシートの行をコピーして、五百以上の画像が含まれるシートを印刷したものですが、百を超える画像が省かれていることが確認できます。
(なお、自分で確認したい方は、この前のイメージにある公表用のリンクからシートを表示し、上の印刷のメニューで印刷を試みてみてください。)

100を超える画像は印刷されない
100を超える画像は印刷されない

これは印刷の例ですが、下のイメージのように「最初の百画像のみが含められます」のウォーニングが出て、エラーではなく、Smartsheetの仕様であることが分かります。

最初の100画像のみが含まれますのウォーニング
最初の100画像のみが含まれますのウォーニング

公表用のシートの印刷では全ての画像が表示される

これを解決する方法として思いついたのがシートをPublish(公表)して印刷する方法です。
下のイメージのように全てのが画像(この例では五百二十八行まで)が印刷されています。

パブリッシュしたイメージ行が100以上のシートの印刷
パブリッシュしたイメージ行が100以上のシートの印刷

シートの公表の方法と注意点

シートの公表については、Smartsheetのヘルプ&ラーニングの記事がありますが、少し、分かりにくいので簡単にイメージで説明します。

右側のメニューから公表を選択。

Publish(公表)のメニューは右側.
Publish(公表)のメニューは右側.

公開オプションを選択。ここでは画像表示に最低限必要な「読み取り専用 ー HTML」を選択しています。

読み取り専用の公開オプションの例
読み取り専用の公開オプションの例

プレビューでシートを表示。

公開用リンクをプレビュー
公開用リンクをプレビュー

プレビューが表示されたら、画面上を右クリックまたはCTRL+Pで印刷します。

右クリックまたはCtrlPで印刷
https://publish.smartsheet.com/c97a9c662c3f4e2cb5f90043527d06f9

上の方で表示したのと同じイメージですが、このような画面いなりますので、PDFに印刷します。(ここではAdobe PDFが表示されていますが、「PDFとして保存」とか「Microsoft Print to PDF」とかでも同じです。

パブリッシュしたイメージ行が100以上のシートの印刷
パブリッシュしたイメージ行が100以上のシートの印刷

注意点: PDF化後は公表をOFFにする

Publish(公表)を行うと、機密データが社外の人の目にさらされる危険性があります。公表シートのリンクアドレスを社外の人が推測することは不可能と思われますが、リンクが流出すると、内容を見られてしまいます。

そこでPDF化後は公表オプションをOFFにします。(イメージは3つ上にあります。)

他方、冒頭で紹介したお客様の例で、その物件の販売時に、その物件が安全、品質面で、しっかりとした管理を行っていることを広くアピールするために、このリンクや埋め込みコードを使って、シートをネット上アクセスできるようにすることも考えられます。
なお、この場合は、下のイメージのように公表に不適切なメールアドレスや社内機密情報がある列は非表示にして、最も権限の少ない「読み取り専用 ー HTML」で公表するのが無難です。

※APIによるアプローチ

ここでは、Smartsheet APIにより、セルの画像のURLを取得し、シートに列 (Image Temp URL) を設けて貼り付けている例のイメージを紹介します。
Smartsheet APIはプログラムの知識が必要で一般的でないので、このようなことも可能である、ということだけご理解いただき、こういったソルーションが必要な方は、別途お問い合わせください。

コメントを残す