Zoho WorkDriveの画像をZoho Writerの差し込みフィールドで使用する方法

Zoho WorkDriveの画像をZoho Writerの差し込みフィールドで使用する方法

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

AIに説明してもらう:ChatGPT| Perplexity| Claude

概要

Zoho Writerで差し込み文書を作成する際、画像を正しく表示するには、画像項目に公開URLを指定する必要があります。画像がZoho WorkDriveに保存されている場合は、公開ダウンロードURLを生成して、画像項目に使用できます。

この記事では、WorkDriveの操作画面、WorkDrive API、またはDelugeスクリプトを使用してこれを行う複数の方法について説明します。

方法1:WorkDriveの操作画面(UI)の使用

1. WorkDriveフォルダー内の対象の画像に移動します。


2. [その他](3点リーダー)をクリックし、[新しいダウンロードリンク]を選択します。
3. ポップアップウィンドウでダウンロードリンクを作成し、コピーします。
4. コピーしたリンクの末尾に?directDownload=Trueを追加します。

例:

元のリンク:https://workdrive.zohoexternal.com/external/abc123/download
最終リンク:https://workdrive.zohoexternal.com/external/abc123/download?directDownload=True

最終リンクを、Zoho Writerの画像項目の入力値として使用します。

方法2:WorkDrive APIの使用

次のAPIを使用して、プログラムからダウンロードリンクを作成できます。

エンドポイント:POST <workdrive domain>/api/v1/links
必要なスコープ:WorkDrive.files.CREATE

サンプルペイロード:
{
'data': {
'attributes': {
'resource_id': 'g576y886ac79ac5************',
'link_name': 'sample_link',
'link_type': 'download',
'request_user_data': false,
'allow_download': true,
'expiration_date': '2021-12-12',
'download_link': {
'download_limit': '5'
}
},
'type': 'links'
}
}

サンプルレスポンス:

レスポンス内の「download_url」キーを確認します。
Info
Writerで使用する前に、download_urlの末尾に?directDownload=Trueを追加します。

方法3:Delugeスクリプトの使用

ステップ1:WorkDriveへの画像のアップロード

以下のスクリプトを使用して、画像をWorkDriveにアップロードします。
workdrive_folder_id = 'g576*****';
responseData = zoho.workdrive.uploadFile(image1,workdrive_folder_id,image1.getFileName(),true,'<connection_name>');
workdrive_resourceid = '';
if(responseData != null){
responseList = responseData.get('data');
responseData = responseList.get(0);
workdrive_resourceid = responseData.get('attributes').get('resource_id');
}

ステップ2:ダウンロードリンクの作成

以下のスクリプトを使用して、WorkDrive内の画像の外部ダウンロードリンクを作成します。
attribute = Map();
attribute.put('resource_id', workdrive_resourceid);
attribute.put('allow_download', true);
attribute.put('request_user_data', false);
attribute.put('link_name', 'sample_link');
attribute.put('expiration_date', '2021-12-12');

attributeMap = Map();
attributeMap.put('attributes', attribute);
attributeMap.put('type', 'links');
param = Map();
param.put('data', attributeMap);
paramString = param.toString();

mp = Map();
mp.put('Accept', 'application/vnd.api+json');
makeExternalLink = invokeurl
[
url :'
https://workdrive.zoho.com/api/v1/links'
type :POST
parameters:paramString
headers:mp
connection:'<connection_name>'
];

linkobj = makeExternalLink.get('data');
downloadlink = '';
if(linkobj != null)
{
constructURl = linkobj.get('attributes').get('download_url');
downloadlink = constructURl + '?directDownload=True';
}

サンプルダウンロードリンク:
https://workdrive.zohoexternal.com/external/b24042070f8fb42dc9a54132bcc610ab/download?directDownload=True

この最終ダウンロードリンクを、Writerテンプレートの画像項目の値として使用します。

まとめ

使用する方法が操作画面、API、Delugeのいずれであっても、重要な要件は次のとおりです。
  1. Zoho WorkDriveから公開ダウンロードURLを取得する必要があります。
  2. URLの末尾に?directDownload=Trueを追加します。
これにより、Zoho Writerの差し込み処理中に、リンクが画像項目の値として正しく機能します。

トラブルシューティング

1. エラー/現象:サブフォームや画像の差し込み項目の一部の画像が、差し込み後のPDFに表示されません。特に、Zoho WorkDriveに保存された多数の画像を外部共有リンクで差し込む場合に発生します。

考えられる原因:Zoho WorkDriveの外部共有リンクには、1秒あたり40リクエストのスロットリング制限があります。PDFの差し込み処理中、Writerは画像をダウンロードするために複数の並列リクエストを送信します。制限を超えると、一部の画像ダウンロードリクエストが失敗し、出力PDFで画像が欠落します。

推奨される解決策:
  1. 大量の画像を差し込む場合は、画像の差し込み項目にWorkDriveの外部共有リンクを使用しないでください。
  2. 代わりに、外部共有リンクではなく画像ファイルの直接ダウンロードリンクを使用するか、画像ソースがスロットリングなしで複数の同時ダウンロードリクエストを処理できることを確認してください。
  3. 画像URLを更新した後、差し込みを再試行します。