যখন ডেভেলপারদের কথা আসে, তখন আমরা এমন উদাহরণের মুখোমুখি হতে পারি যেখানে আমাদের ইনপুট ডেটার উপর ভিত্তি করে পিডিএফ ডকুমেন্টগুলি প্রোগ্রাম্যাটিকভাবে তৈরি করতে হবে। উদাহরণস্বরূপ, আপনার কাছে একটি ওয়েব অ্যাপ থাকতে পারে যা ডাটাবেস থেকে কেনা তথ্যের উপর ভিত্তি করে পিডিএফ চালান তৈরি করে।
সৌভাগ্যবশত, গো ইকোসিস্টেম বিশাল এবং স্ক্র্যাচ থেকে বিল্ডিং ছাড়াই সহজে পিডিএফ জেনারেশন করার জন্য টুল এবং বৈশিষ্ট্য রয়েছে।
এই টিউটোরিয়ালে, আমরা শিখব কিভাবে 'fpdf' প্যাকেজটি ব্যবহার করতে হয় যা ইনপুট ডেটার উপর ভিত্তি করে PDF নথি তৈরি করতে শক্তিশালী বৈশিষ্ট্য প্রদান করে।
এনভায়রনমেন্ট সেটআপ
আমরা এগিয়ে যাওয়ার আগে, নিশ্চিত করুন যে আপনার কাছে নিম্নলিখিত সরঞ্জামগুলি ইনস্টল করা আছে:
- আপনার সিস্টেমে সর্বশেষ Go কম্পাইলার ইনস্টল করা আছে তা নিশ্চিত করুন
- একটি কোড সম্পাদক
Gofpdf ইনস্টল করুন
একবার আপনার প্রজেক্ট সেটআপ হয়ে গেলে, 'fpdf' প্যাকেজ ইনস্টল করতে 'go get' কমান্ডটি ব্যবহার করুন।
$ যাওয়া গিথুব পান . সঙ্গে / যাওয়া - পিডিএফ / fpdf
একবার ইনস্টল হয়ে গেলে, আমরা পিডিএফ তৈরির জন্য প্যাকেজ দ্বারা প্রদত্ত বৈশিষ্ট্যগুলিকে কভার করতে পারি।
একটি বেসিক পিডিএফ ডকুমেন্ট তৈরি করুন
নিম্নলিখিত উদাহরণ কোডটি বিবেচনা করুন যা একটি মৌলিক ইনপুট পাঠ্য দেওয়া একটি মৌলিক PDF তৈরি করতে এই প্যাকেজটি কীভাবে ব্যবহার করতে হয় তা প্রদর্শন করে।
প্যাকেজ প্রধান
আমদানি (
'github.com/go-pdf/fpdf'
)
ফাংশন প্রধান () {
পিডিএফ := fpdf . নতুন ( 'পি' , 'মিমি' , 'A4' , '' )
পিডিএফ . পাতা যোগ কর ()
পিডিএফ . সেটফন্ট ( 'আরিয়াল' , 'বি' , 16 )
পিডিএফ . সেল ( 40 , 10 , 'এটা পাছায় ব্যাথা...' )
পিডিএফ . আউটপুটফাইলএন্ডক্লোজ ( 'lorem.pdf' )
}
প্রদত্ত উদাহরণে, আমরা আমাদের প্রয়োজনীয় প্যাকেজগুলি আমদানি করে শুরু করি। আমাদের ক্ষেত্রে, আমাদের শুধুমাত্র 'fpdf' প্যাকেজ প্রয়োজন।
এরপর, আমরা fpdf.New() ফাংশন ব্যবহার করে একটি নতুন PDF নথি তৈরি করি এবং PDF বৈশিষ্ট্য যেমন পৃষ্ঠার অবস্থান, পরিমাপের একক এবং আকার নির্দিষ্ট করি।
এরপরে, আমরা AddPage() ফাংশন ব্যবহার করে একটি নতুন পৃষ্ঠা যোগ করি।
তারপরে আমরা SetFont() ফাংশন ব্যবহার করে নথির জন্য ফন্ট এবং আকার সেট করতে এগিয়ে যাই। আমরা পাঠ্য প্রদর্শনের জন্য Cell() ফাংশন সহ একটি আয়তক্ষেত্রাকার এলাকাও যোগ করি, যা একটি সেল নামেও পরিচিত।
অবশেষে, আমরা PDF তৈরি করি এবং OutputFileAndClose() পদ্ধতিতে সংরক্ষণ করি।
ইমেজ যোগ করুন
আমরা নিম্নলিখিত উদাহরণ কোডে দেখানো চিত্রগুলির জন্য একটি সমর্থন যোগ করতে পারি:
প্যাকেজ প্রধানআমদানি (
'github.com/go-pdf/fpdf'
)
ফাংশন প্রধান () {
পিডিএফ := fpdf . নতুন ( 'পি' , 'মিমি' , 'A4' , '' )
পিডিএফ . পাতা যোগ কর ()
পিডিএফ . ইমেজ অপশন ( 'linux-tux.png' , 10 , 10 , 40 , 0 , মিথ্যা , fpdf . ইমেজ অপশন { ইমেজ টাইপ : 'PNG' , ReadDpi : সত্য }, 0 , '' )
ভুল := পিডিএফ . আউটপুটফাইলএন্ডক্লোজ ( 'example.pdf' )
যদি ভুল != শূন্য {
আতঙ্ক ( ভুল )
}
}
এটি নথিতে নির্দিষ্ট চিত্র অন্তর্ভুক্ত করা উচিত।
শিরোনাম এবং পাদচরণ সহ বহু-পৃষ্ঠার নথি
প্যাকেজটি নিম্নলিখিত উদাহরণে দেখানো শিরোনাম এবং ফুটারগুলির মতো বৈশিষ্ট্য সহ একাধিক পৃষ্ঠাগুলিকে সমর্থন করে:
প্যাকেজ প্রধানআমদানি (
'strconv' // strconv প্যাকেজ আমদানি করুন
'github.com/go-pdf/fpdf'
)
ফাংশন হেডার ( পিডিএফ * fpdf . Fpdf ) {
পিডিএফ . সেটফন্ট ( 'আরিয়াল' , 'বি' , 12 )
পিডিএফ . সেল ( 0 , 10 , 'পেজের উপরের অংশ' )
পিডিএফ . Ln ( বিশ )
}
ফাংশন ফুটার ( পিডিএফ * fpdf . Fpdf ) {
পিডিএফ . সেটওয়াই ( - পনের )
পিডিএফ . সেটফন্ট ( 'আরিয়াল' , 'আমি' , 8 )
পিডিএফ . সেল ( 0 , 10 , 'পৃষ্ঠা' + strconv . নিমজ্জিত ( পিডিএফ . পৃষ্ঠা নং ()))
}
ফাংশন প্রধান () {
পিডিএফ := fpdf . নতুন ( 'পি' , 'মিমি' , 'A4' , '' )
পিডিএফ . SetHeaderFunc ( ফাংশন () { হেডার ( পিডিএফ ) })
পিডিএফ . SetFooterFunc ( ফাংশন () { ফুটার ( পিডিএফ ) })
পিডিএফ . পাতা যোগ কর ()
পিডিএফ . সেটফন্ট ( 'আরিয়াল' , '' , 12 )
জন্য i := 0 ; i < 40 ; i ++ {
পিডিএফ . সেল ( 0 , 10 , 'প্রিন্টিং লাইন নম্বর' + strconv . নিমজ্জিত ( i ))
পিডিএফ . Ln ( 12 )
}
পিডিএফ . আউটপুটফাইলএন্ডক্লোজ ( 'multipage.pdf' )
}
এই ক্ষেত্রে, আমরা পিডিএফ-এর এই বিভাগগুলির জন্য বিষয়বস্তু সেট করতে একটি হেডার এবং ফুটার ফাংশন সংজ্ঞায়িত করি।
তারপরে আমরা নথির জন্য হেডার এবং ফুটার হিসাবে ফাংশনগুলি নির্দিষ্ট করতে SetHeaderFunc এবং SetFooterFunc ব্যবহার করি।
অবশেষে, আমরা একাধিক টেক্সট লাইন তৈরি করতে একটি লুপ ব্যবহার করি যার ফলে একাধিক পৃষ্ঠা হয়। ফলস্বরূপ পিডিএফ নিম্নরূপ:
সেখানে আপনি এটা আছে!
উপসংহার
এই টিউটোরিয়ালে, আমরা “fpdf” প্যাকেজ ব্যবহার করে Go-তে PDF জেনারেশন সম্পর্কে অনেক কিছু শিখেছি। এই প্যাকেজটি পিডিএফ তৈরি করার জন্য প্রচুর টুলস এবং বৈশিষ্ট্যের সাথে পরিপূর্ণ। আরও জানতে ডক্স চেক করুন.