【问题标题】:Salesforce PDF download using JSZip使用 JSZip 下载 Salesforce PDF
【发布时间】:2015-08-10 15:41:29
【问题描述】:

SFDC 开发人员在这里。我创建了一个 VF 页面,它接受 Account id 并以表格形式在 VF 页面上显示一些信息。

我需要在单击按钮时使用不同的帐户 ID 多次调用此页面并将其中的表格下载为 zip 中的 PDF/文本文件。我正在考虑使用 JSZip 将所有 PDF/文本文件下载为一个 zip。

我已经使用 getContentAsPDF 在变量中获得了这个 VF 页面的 Blob 值。

基本上我需要知道如何为每个帐户表使用此 Blob 值并将其放入单独的文件中,然后将这些文件下载一个 Zip。任何想法如何进行?

编辑 1:

所以在下面的代码中,我们可以看到我们在控制器中生成了一个 Blob 列表。单击 VF 页面按钮时,我将 Blob 列表作为参数发送到 JavaScript 函数。在该功能中,我试图将每个 blob 添加到 zip 并下载。但是我没有下载任何东西。

Apex 代码:

CkIds = returnCommaSeparatedString(setOFCommKitID);
        pr = New PageReference('/apex/PDFPage?id=' + iICPRec +'&CKIds='+CkIds);
        pdf = pr.getContentAsPDF();
        lstOfBlob.add(pdf);

JavaScript 代码:

   var IdString;
    var ArrayOfBlob = []; 
    function CallMe(TempVar, VarTemp){
        alert(TempVar);alert(VarTemp);
        IdString = TempVar;
        ArrayOfBlob = VarTemp;
        var zip = new JSZip();
        for (var i=0; i < ArrayOfBlob.length; i++)
        {
            zip.file('Test',ArrayOfBlob[0]);
        }
        var blobLink = document.getElementById('CustomLink');
        blobLink.download = "CommunicationKit.zip";
        blobLink.href = window.URL.createObjectURL(zip.generate());
        blobLink.click();

【问题讨论】:

    标签: javascript salesforce visualforce apex jszip


    【解决方案1】:

    这似乎是类型的问题,您应该在 js 控制台中查找错误。

    • zip.file('Test',ArrayOfBlob[0])file() 不接受 (yet) blob,您需要一个 FileReader 来获取每个文件的内容(并在生成结果之前等待所有这些内容)。
    • URL.createObjectURL(zip.generate()) 中,generate() 会给你一个base64 字符串,你应该在你的情况下使用generate({type:"blob"})

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-14
      • 2016-07-26
      相关资源
      最近更新 更多