2014-09-17 8 views
5

पर गतिशील रूप से जेनरेट किए गए पीडीएफ संलग्न करें मैं पीडीएफ दस्तावेज़ों को गतिशील रूप से जेनरेट करने के लिए पीडीएफकिट और नोडजेएस का उपयोग कर रहा हूं, और मैं एक दस्तावेज़ को उस दस्तावेज़ को संलग्न करना चाहता हूं। इस समय मैं एनपीएम के माध्यम से मंड्रिल-एपीआई का उपयोग कर रहा हूं।nodejs pdfkit ईमेल (मैनडिल-एपीआई)

मैं इस मुद्दे के बिना पीडीएफ पैदा करते हैं और के माध्यम से ब्राउज़र में यह प्रदर्शित कर सकते हैं:

doc.pipe (रेस);

मैं बिना किसी समस्या के एक ईमेल भेज सकता हूं, लेकिन मैं उचित पीडीएफ सामग्री प्राप्त करने में बुरी तरह विफल रहा हूं। मैं काफी हद तक निश्चित हूं कि मैं वहां 99% रास्ता हूं - लेकिन मुझे कुछ याद आ रहा है। मैंने Google/StackOverflow आदि का उपयोग करके पढ़ने और परीक्षण करने का एक टन किया है लेकिन मैं अटक गया हूं।

मैं सामग्री हो रही है कि जब मैं एक बेस 64 डिकोड करना मुझे मिलता है:

% पीडीएफ-1.3% 7 0 obj < </कारक 15

मैं अपने पीडीएफ लगाव पाने में कामयाब रहे है 445KB की मान्य आकार में है, लेकिन इस ईमेल की सामग्री है:

--_ av-ती-H6i8tBBHL4BgoXnyC2Q सामग्री प्रकार: आवेदन/पीडीएफ सामग्री-स्थानांतरण-एन्कोडिंग: base64 सामग्री-विन्यास: लगाव; फ़ाइल नाम = "mytestPDF.pdf"

PDF1370obj/Predictor15/Colors1/BitsPerComponent8/Columns100e ndobj60obj/प्रकार/XObject/उपप्रकार/छवि/BitsPerComponent8/widt H100/Height19/फ़िल्टर/FlateDecode/DecodeParms70R/colorspace/मैं ndexed/DeviceRGB25580R/Length1751streamxdSSNEhGIRTRkWbY/nHaO MJln7t + vv89ylF111PlYNB9Nm6e9DENsd9FxLFUbOjrgt + ErRgWtj9vPCTBH oohMHl9oZ7IdpC/hxusjTHFFMcxhwIxPlbNorOB + bH8exrrA1DUnzKzq/uxi xT456nxtB59fQNiIrBT2apETJZieZvltpeThrObiZ4ydtY0koKJ2Epb940A1 iXyehONQVXiZr8jRP/NJ3bmjHA0sygAou4Q =

हालांकि मैंने इस पर घंटों तक गड़बड़ी की है, मेरी सबसे अच्छी बात यह है कि मेरे पीडीएफ सामग्री में लाइन ब्रेक/नई लाइन त्रुटियां हैं। जिस तरह से मुझे अपनी पीडीएफ सामग्री मिल रही है वह बफर नामक एक सरणी बनाकर है, फिर: doc.on ('data', buffers.push.bind (buffers));

मुझे लगता है कि मुझे जोड़ने/एन या/आर आदि जोड़ने की जरूरत है ... लेकिन मैं एक महीने या तो अब नोडजेएस और एंगुलरजेएस के साथ काम कर रहा हूं और मुझे पता है कि लगभग हर चीज मैं गलत करता हूं क्योंकि मैं मैं इस मामले को अधिक जटिल बना रहा हूं ... इसलिए मैं आपको लोगों के पास बदलता हूं और आशा करता हूं कि नई पीडीएफ दस्तावेज़ से सामग्री को संलग्न करने के लिए एक आसान तरीका है जिसे मैं पीडीएफकिट के साथ नोडजेएस का उपयोग कर ईमेल पर बना सकता हूं।

अग्रिम धन्यवाद ... कृपया मेरी रैंपिंग को माफ कर दो, लेकिन मैंने इसे लगभग 8 घंटे पहले शुरू किया (अब यह मेरा समय 3:25 बजे है)। :)

उत्तर

9

मुझे हाल ही में node.js के माध्यम से mandrill को एक ईमेल पीडीएफ लगाव पोस्ट करने के साथ एक ही समस्या थी, लेकिन इसे हल करने में कामयाब रहा।

यहाँ मैं क्या किया है:

generatePdf(inputData, function (err, doc) { 
     if (err) return callback(err); 

     var bufferChunks = []; 

     doc.on('readable', function() { 
      // Store buffer chunk to array 
      bufferChunks.push(doc.read()); 
     }); 
     doc.on('end', function() { 

      var pdfBuffer = Buffer.concat(bufferChunks), 
       pdfBase64String = pdfBuffer.toString('base64'); 

      // This string is perfectly ok to use as an attachment to the mandrillAPI 
      sendMandrillEmailWithAttachment(pdfBase64String); 
     }); 
    }); 

मुझे आशा है कि इस मदद करता है। यदि आपको अतिरिक्त सहायता की आवश्यकता है तो पिंग =)

+0

धन्यवाद मैराक्सस, यह वही है जो मुझे चाहिए। मैं आपकी सहायता की सराहना करता हूं !! – user2348688

+1

आपका बहुत स्वागत है।खुशी है कि मेरा संघर्ष आपकी मदद कर सकता है =) – mraxus

+0

कोई विचार क्या उन 'बफर' और 'पीडीएफबफर' चर हैं? – 2dvisio