मैं एक साथ कुछ पूरा कोड डाल दिया और नीचे समाधान के साथ समस्या का पता लगाने में सक्षम था: इस समाधान मैं भाग गया का उपयोग करते समय
var int8View = new Uint8Array(...); //populate int8View with the raw pdf data
PDFJS.getDocument(int8View).then(function(pdf) {
}
समस्या में अन्य उपयोगकर्ताओं ने देखा है (@MurWade और @ user94154) - stream must have data
त्रुटि संदेश। ऐसा लगता है कि समस्या निम्न पंक्ति में है:,
var int8View = new Uint8Array(...);
सरणी डेटा वाली ठीक से बनाया नहीं प्राप्त करता है के बाद से डेटा की उम्मीद स्वरूप में नहीं है। इसलिए, यह लाइन कुछ मामलों के लिए काम करती है, लेकिन यह सामान्य मामले में काम नहीं कर सकती है।
मैंने एक पूरा समाधान रखा है, जो कि बेहतर काम करता है। यह एक पीडीएफ फाइल लोड करता है, और यह इसे कच्चे पीडीएफ स्ट्रीम में परिवर्तित करता है। यह वास्तविक उद्देश्यों के उदाहरण के लिए परीक्षण प्रयोजनों के लिए है, पीडीएफ स्ट्रीम शायद एक अलग फैशन में प्राप्त की जाएगी। आप डीबगर में स्ट्रीम की जांच कर सकते हैं, और यह सादे पाठ के रूप में दिखाया जाएगा। इस नमूना के काम को बनाने के लिए कोड की मुख्य पंक्ति नीचे दी गई है। कच्चे पीडीएफ स्ट्रीम को सरणी में बदलने के बजाय, इसे डेटा में परिवर्तित करें।
var docInitParams = { data: pdfraw };
फिर डेटा लोड करने के साथ आगे बढ़ें। मानक कच्चे पीडीएफ स्ट्रीम को लोड करने और इसे प्रदर्शित करने के तरीके के बारे में पूर्ण कार्य नमूना नीचे दिया गया है। मैं पीडीएफ जेएस हैलो वर्ल्ड नमूना को शुरुआती बिंदु के रूप में इस्तेमाल करता था। यदि इस पर कोई स्पष्टीकरण आवश्यक है तो कृपया मुझे टिप्पणियों में बताएं।
'use strict';
PDFJS.getDocument('helloworld.pdf').then(function(pdf) {
pdf.getData().then(function(arrayBuffer) {
var pdfraw = String.fromCharCode.apply(null, arrayBuffer);
var docInitParams = {
data: pdfraw
};
PDFJS.getDocument(docInitParams).then(function(pdfFromRaw) {
pdfFromRaw.getPage(1).then(function(page) {
var scale = 1.5;
var viewport = page.getViewport(scale);
var canvas = document.getElementById('the-canvas');
var context = canvas.getContext('2d');
canvas.height = viewport.height;
canvas.width = viewport.width;
var renderContext = {
canvasContext: context,
viewport: viewport
};
page.render(renderContext);
});
});
});
});
स्रोत
2015-08-14 15:11:16
अच्छा, इस उत्तर को स्वीकार करना क्योंकि यह मेरे मूल से अधिक पूर्ण लगता है! – Swiss
धन्यवाद! मुझे बताएं कि क्या मैं इसमें सुधार करने के लिए कुछ भी कर सकता हूं। –
@ user94154, क्या उपर्युक्त समाधान आपके प्रश्न का उत्तर देता है? –