2015-08-10 3 views
0

SFDC разработчик здесь. Я создал страницу VF, которая принимает идентификатор учетной записи &, отображает некоторую информацию на странице VF в табличной форме.Salesforce PDF скачать с помощью JSZip

Мне нужно сделать несколько звонков на эту страницу с разными идентификаторами учетной записи на кнопке & скачать таблицы в формате PDF/Text в ZIP-архиве. Я думал об использовании JSZip для загрузки всех файлов PDF/Text в один ZIP-файл.

У меня есть значение Blob этой страницы VF в переменной, использующей getContentAsPDF.

В принципе, мне нужно знать, как использовать это значение Blob для каждой таблицы учетных записей и помещать его в отдельные файлы, загружать эти файлы по одному ZIP. Любые идеи, как действовать?

EDIT 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(); 

ответ

0

Это выглядит как вопрос с типами, вы должны искать ошибки в консоли Js.

  • в zip.file('Test',ArrayOfBlob[0]), file() не принимает (yet) сгустки, вам нужно FileReader, чтобы получить содержимое каждого файла (и ждать, пока все из них, прежде чем генерировать результат).
  • в URL.createObjectURL(zip.generate()), generate() предоставит вам строку base64, вы должны использовать generate({type:"blob"}) в вашем случае.
Смежные вопросы