jsPDF প্লাগইন ব্যবহার করতে সক্ষম। এটি HTML প্রিন্ট করতে সক্ষম করতে আপনাকে নির্দিষ্ট প্লাগইন অন্তর্ভুক্ত করতে হবে এবং তাই নিম্নলিখিতগুলি করতে হবে:
- Https://github.com/MrRio/jsPDF এ যান এবং সর্বশেষ সংস্করণটি ডাউনলোড করুন।
- আপনার প্রকল্পে নিম্নলিখিত স্ক্রিপ্টগুলি অন্তর্ভুক্ত করুন:
- jspdf.js
- jspdf.plugin.from_html.js
- jspdf.plugin.split_text_to_size.js
- jspdf.plugin.standard_fonts_metrics.js
আপনি যদি নির্দিষ্ট উপাদানগুলিকে উপেক্ষা করতে চান তবে আপনাকে সেগুলিকে একটি আইডি দিয়ে চিহ্নিত করতে হবে, যা আপনি তখন জেএসপিডিএফের একটি বিশেষ উপাদান হ্যান্ডলারটিতে উপেক্ষা করতে পারেন। সুতরাং আপনার এইচটিএমএল দেখতে হবে:
<!DOCTYPE html>
<html>
<body>
<p id="ignorePDF">don't print this to pdf</p>
<div>
<p><font size="3" color="red">print this to pdf</font></p>
</div>
</body>
</html>
তারপরে আপনি পপআপে তৈরি পিডিএফ খুলতে নিম্নলিখিত জাভাস্ক্রিপ্ট কোডটি ব্যবহার করুন:
var doc = new jsPDF();
var elementHandler = {
'#ignorePDF': function (element, renderer) {
return true;
}
};
var source = window.document.getElementsByTagName("body")[0];
doc.fromHTML(
source,
15,
15,
{
'width': 180,'elementHandlers': elementHandler
});
doc.output("dataurlnewwindow");
আমার জন্য এটি একটি সুন্দর এবং পরিপাটি পিডিএফ তৈরি করেছে যা কেবল "এইটিকে পিডিএফ প্রিন্ট করুন" অন্তর্ভুক্ত করে।
দয়া করে মনে রাখবেন যে বিশেষ উপাদান হ্যান্ডলাররা কেবলমাত্র বর্তমান সংস্করণে আইডি নিয়ে কাজ করে যা গিটহাব ইস্যুতেও বর্ণিত । এতে বলা হয়েছে:
নোড গাছের প্রতিটি উপাদানগুলির সাথে ম্যাচিং সম্পন্ন হওয়ার কারণে, আমার ইচ্ছাটি এটি যত তাড়াতাড়ি করা সম্ভব। সেক্ষেত্রে এর অর্থ হ'ল "কেবলমাত্র উপাদান আইডি মিলেছে" উপাদান আইডিগুলি এখনও jQuery স্টাইলে করা হয় "# আইডি", তবে এর অর্থ এই নয় যে সমস্ত jQuery নির্বাচক সমর্থিত।
সুতরাং '#ignorePDF' এর পরিবর্তে '.ignorePDF' এর মতো শ্রেণি নির্বাচকদের সাথে প্রতিস্থাপন করা আমার পক্ষে কার্যকর হয়নি। পরিবর্তে আপনাকে প্রতিটি উপাদানগুলির জন্য একই হ্যান্ডলার যুক্ত করতে হবে, যা আপনি পছন্দ করতে পারেন:
var elementHandler = {
'#ignoreElement': function (element, renderer) {
return true;
},
'#anotherIdToBeIgnored': function (element, renderer) {
return true;
}
};
উদাহরণগুলি থেকে এটিও বলা হয়েছে যে 'এ' বা 'লি' এর মতো ট্যাগ নির্বাচন করা সম্ভব। সর্বাধিক ব্যবহারের ক্ষেত্রে এটি অযৌক্তিক কিছুটা হলেও হতে পারে:
আমরা বিশেষ উপাদান হ্যান্ডলার সমর্থন করি। তাদের আইডি বা নোড নামের জন্য jQuery- স্টাইল আইডি নির্বাচনকারীর সাথে নিবন্ধন করুন। ("# আইএএমআইডি", "ডিভি", "স্প্যান" ইত্যাদি) বর্তমানে অন্য কোনও ধরণের নির্বাচক (শ্রেণি, যৌগিক) জন্য কোনও সমর্থন নেই।
যোগ করার জন্য একটি খুব গুরুত্বপূর্ণ বিষয় হ'ল আপনি আপনার স্টাইলের সমস্ত তথ্য (সিএসএস) হারাবেন। ভাগ্যক্রমে জেএসপিডিএফ এইচ 1, এইচ 2, এইচ 3 ইত্যাদি সুন্দরভাবে ফর্ম্যাট করতে সক্ষম হয়েছে যা আমার উদ্দেশ্যে যথেষ্ট ছিল। অতিরিক্তভাবে এটি কেবল পাঠ্য নোডের মধ্যেই পাঠ্য মুদ্রণ করবে, যার অর্থ এটি টেক্সারিয়াস এবং এর মতো মানগুলি প্রিন্ট করবে না। উদাহরণ:
<body>
<ul>
<!-- This is printed as the element contains a textnode -->
<li>Print me!</li>
</ul>
<div>
<!-- This is not printed because jsPDF doesn't deal with the value attribute -->
<input type="textarea" value="Please print me, too!">
</div>
</body>