إنشاء PDF في Golang (PDF)

Ansha Pdf Fy Golang Pdf



يعد تنسيق المستندات المحمولة أو PDF للاختصار تنسيق ملفات شائعًا ومتعدد الاستخدامات بشكل لا يصدق ويتم استخدامه في المستندات. يتم دعم PDF في جميع الأنظمة الأساسية والأنظمة تقريبًا، مما يجعله خيارًا ممتازًا لمشاركة المستندات.

عندما يتعلق الأمر بالمطورين، قد نواجه حالات نحتاج فيها إلى إنشاء مستندات PDF برمجيًا بناءً على بيانات الإدخال. على سبيل المثال، يمكن أن يكون لديك تطبيق ويب يقوم بإنشاء فواتير PDF بناءً على معلومات الشراء من قاعدة البيانات.

لحسن الحظ، فإن نظام Go البيئي ضخم وهناك أدوات وميزات لإنشاء PDF بسهولة دون البناء من الصفر.







في هذا البرنامج التعليمي، سوف نتعلم كيفية استخدام الحزمة 'fpdf' التي توفر ميزات قوية لإنشاء مستندات PDF بناءً على البيانات المدخلة.



إعداد البيئة

قبل المتابعة، تأكد من تثبيت الأدوات التالية:



  1. تأكد من تثبيت أحدث مترجم Go على نظامك
  2. محرر التعليمات البرمجية

قم بتثبيت Gofpdf

بمجرد الانتهاء من إعداد مشروعك، استخدم الأمر 'go get' لتثبيت الحزمة 'fpdf'.





$ يذهب احصل على جيثب . مع / يذهب - بي دي إف / com.fpdf

بمجرد التثبيت، يمكننا المتابعة وتغطية الميزات التي توفرها الحزمة لإنشاء PDF.

إنشاء مستند PDF أساسي

خذ بعين الاعتبار رمز المثال التالي الذي يوضح كيفية استخدام هذه الحزمة لإنشاء ملف PDF أساسي مع إعطاء نص إدخال أساسي.



طَرد رئيسي

يستورد (
'github.com/go-pdf/fpdf'
)

func رئيسي () {
بي دي إف := com.fpdf . جديد ( 'ف' , 'مم' , 'A4' , '' )
بي دي إف . إضافة صفحة ()
بي دي إف . SetFont ( 'أريال' , 'ب' , 16 )
بي دي إف . خلية ( 40 , 10 , 'إنه ألم في المؤخرة...' )
بي دي إف . ملف الإخراج وإغلاق ( 'لوريم.pdf' )
}

في المثال المذكور، نبدأ باستيراد الحزم التي نحتاجها. في حالتنا، نحتاج فقط إلى الحزمة “fpdf”.

بعد ذلك، نقوم بإنشاء مستند PDF جديد باستخدام الدالة fpdf.New() ونحدد خصائص PDF مثل اتجاه الصفحة ووحدة القياس والحجم.

بعد ذلك، نضيف صفحة جديدة باستخدام وظيفة AddPage().

ننتقل بعد ذلك إلى تعيين الخط وحجم المستند باستخدام وظيفة SetFont(). نضيف أيضًا منطقة مستطيلة، تُعرف أيضًا باسم الخلية، مع وظيفة الخلية () لعرض النص.

أخيرًا، نقوم بإنشاء ملف PDF وحفظه باستخدام طريقة OutputFileAndClose().

أضف الصور

يمكننا أيضًا إضافة دعم للصور كما هو موضح في كود المثال التالي:

طَرد رئيسي

يستورد (
'github.com/go-pdf/fpdf'
)

func رئيسي () {
بي دي إف := com.fpdf . جديد ( 'ف' , 'مم' , 'A4' , '' )
بي دي إف . إضافة صفحة ()
بي دي إف . خيارات الصورة ( 'لينكس-tux.png' , 10 , 10 , 40 , 0 , خطأ شنيع , com.fpdf . خيارات الصورة { نوع الصورة : 'بي إن جي' , قراءةDpi : حقيقي }, 0 , '' )
يخطئ := بي دي إف . ملف الإخراج وإغلاق ( 'مثال.pdf' )
لو يخطئ != لا شيء {
ذعر ( يخطئ )
}
}

يجب أن يتضمن هذا الصورة المحددة في المستند.

مستند متعدد الصفحات يحتوي على رؤوس وتذييلات

تدعم الحزمة أيضًا صفحات متعددة بما في ذلك ميزات مثل الرؤوس والتذييلات كما هو موضح في المثال التالي:

طَرد رئيسي

يستورد (
'ستركونف' // قم باستيراد حزمة strconv

'github.com/go-pdf/fpdf'
)

func header ( بي دي إف * com.fpdf . قوات الدفاع الشعبي ) {
بي دي إف . SetFont ( 'أريال' , 'ب' , 12 )
بي دي إف . خلية ( 0 , 10 , 'رأس الصفحة' )
بي دي إف . Ln ( عشرين )
}

func تذييل ( بي دي إف * com.fpdf . قوات الدفاع الشعبي ) {
بي دي إف . سيتي ( - خمسة عشر )
بي دي إف . SetFont ( 'أريال' , 'أنا' , 8 )
بي دي إف . خلية ( 0 , 10 , 'صفحة ' + strconv . غرق ( بي دي إف . رقم الصفحة ()))
}

func رئيسي () {
بي دي إف := com.fpdf . جديد ( 'ف' , 'مم' , 'A4' , '' )
بي دي إف . SetHeaderFunc ( func () { header ( بي دي إف ) })
بي دي إف . SetFooterFunc ( func () { تذييل ( بي دي إف ) })

بي دي إف . إضافة صفحة ()
بي دي إف . SetFont ( 'أريال' , '' , 12 )
ل أنا := 0 ; أنا < 40 ; أنا ++ {
بي دي إف . خلية ( 0 , 10 , 'رقم سطر الطباعة' + strconv . غرق ( أنا ))
بي دي إف . Ln ( 12 )
}

بي دي إف . ملف الإخراج وإغلاق ( 'متعددة الصفحات.pdf' )
}

في هذه الحالة، نحدد وظائف الرأس والتذييل لتعيين محتويات هذه الأقسام من ملف PDF.

نستخدم بعد ذلك SetHeaderFunc وSetFooterFunc لتحديد الوظائف كرأس وتذييل للمستند.

وأخيرًا، نستخدم حلقة لإنشاء أسطر متعددة من أسطر النص مما يؤدي إلى صفحات متعددة. ملف PDF الناتج هو كما يلي:

ها هو ذا!

خاتمة

في هذا البرنامج التعليمي، تعلمنا الكثير عن إنشاء ملفات PDF في Go باستخدام الحزمة 'fpdf'. تأتي هذه الحزمة مليئة بالكثير من الأدوات والميزات لإنشاء ملفات PDF. تحقق من المستندات لمعرفة المزيد.