पर मैं सवाल लंबे समय उम्र पूछी निर्माता है, इसलिए मैं कुछ विवरण में गलत हो सकता है।
Blob
जैसा कि इसे बाहर निकला है, उसे सरणी बफर की आवश्यकता है। यही कारण है कि बेस 64 बाइट्स को पहले सरणी बफर में परिवर्तित करने की आवश्यकता है।
function saveByteArray(reportName, byte) {
var blob = new Blob([byte]);
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
var fileName = reportName + ".pdf";
link.download = fileName;
link.click();
};
यहाँ कैसे एक साथ इन दो कार्यों का उपयोग करने के लिए है:
var sampleArr = base64ToArrayBuffer(data);
saveByteArray("Sample Report", sampleArr);
function base64ToArrayBuffer(base64) {
var binaryString = window.atob(base64);
var binaryLen = binaryString.length;
var bytes = new Uint8Array(binaryLen);
for (var i = 0; i < binaryLen; i++) {
var ascii = binaryString.charCodeAt(i);
bytes[i] = ascii;
}
return bytes;
}
यहाँ एक पीडीएफ फाइल को सेव करने के लिए अपने कार्य है:
यहाँ ऐसा करने के लिए समारोह है
स्रोत
2016-05-20 07:38:54
यह +1 टिप्पणी का एक छोटा सा है। मैं वही काम करने की कोशिश कर रहा हूं, और एक ही परिणाम के साथ - एक दूषित पीडीएफ। पीडीएफ खुल जाएगा, मेरे पास अपेक्षित पृष्ठों की संख्या है, लेकिन कोई टेक्स्ट नहीं है। मुझे संदेह है कि यह मुद्दा पीडीएफ के एन्कोडिंग में है, या इसे '[परिणामबीस]' से ब्लॉब में परिवर्तित कर रहा है ... मैं सुनना चाहूंगा कि आप समाधान के साथ आए हैं या नहीं। –
@runlevelsix, हाँ मैंने यह समझ लिया! कृपया नीचे मेरा जवाब देखें और देखें कि यह आपके लिए भी काम करता है –