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
答案 0 :(得分:0)
这看起来像是类型的问题,你应该在js控制台中查找错误。
zip.file('Test',ArrayOfBlob[0])
中,file()不接受(yet)blob,您需要一个FileReader来获取每个文件的内容(并在生成结果之前等待所有文件的内容) )。URL.createObjectURL(zip.generate())
中,generate()会为您提供base64字符串,您应该使用generate({type:"blob"})
。