使用JSZip下载Salesforce PDF

时间:2015-08-10 15:41:29

标签: javascript salesforce visualforce apex jszip

SFDC开发人员。我创建了一个接受帐户ID&以表格形式在VF页面上显示一些信息。

我需要通过点击按钮上的不同帐户ID多次调用此页面。将这些表格作为PDF /文本文件以zip格式下载。我正在考虑使用JSZip将所有PDF /文本文件下载为一个zip。

我使用getContentAsPDF在变量中获得了此VF页面的Blob值。

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

编辑1:

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

Apex代码:

   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代码:

import numpy as np

from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import CountVectorizer


from sklearn.naive_bayes import MultinomialNB
from sklearn.linear_model import SGDClassifier
from sklearn import svm
from sklearn.svm import LinearSVC

from sklearn.pipeline import Pipeline

appleComputers = [];
appleFruits = [];
labels = [];

with open('apple-computers.txt','r') as f:
    for line in f:
        appleComputers.append(line)
        labels.append(1);

with open('apple-fruit.txt','r') as f:
    for line in f:
        appleFruits.append(line)
        labels.append(0);

text = appleComputers + appleFruits;
labels = np.asarray(labels)

#text_clf = Pipeline([('vect', CountVectorizer()),('tfidf', TfidfTransformer()),('clf', MultinomialNB()),])
text_clf = Pipeline([('vect', CountVectorizer()),('tfidf', TfidfTransformer()),('clf', LinearSVC(loss='hinge', penalty='l2')),])

text_clf = text_clf.fit(text, labels)


line = 'I am talking about apple the fruit we eat.'
line = 'I am talking about the product apple computer by Steve Jobs'
predicted = text_clf.predict(line);
print predicted

1 个答案:

答案 0 :(得分:0)

这看起来像是类型的问题,你应该在js控制台中查找错误。

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