เมื่อพูดถึงนักพัฒนา เราอาจเจอกรณีที่เราต้องสร้างเอกสาร PDF โดยทางโปรแกรมตามข้อมูลที่ป้อนเข้า ตัวอย่างเช่น คุณสามารถมีเว็บแอปที่สร้างใบแจ้งหนี้ PDF ตามข้อมูลการซื้อจากฐานข้อมูล
โชคดีที่ระบบนิเวศ Go มีขนาดใหญ่มากและมีเครื่องมือและฟีเจอร์ต่างๆ ในการสร้าง PDF ได้อย่างง่ายดายโดยไม่ต้องสร้างใหม่ตั้งแต่ต้น
ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีใช้แพ็คเกจ “fpdf” ซึ่งมีฟีเจอร์อันทรงพลังในการสร้างเอกสาร PDF ตามข้อมูลที่ป้อนเข้า
การตั้งค่าสภาพแวดล้อม
ก่อนที่เราจะดำเนินการต่อ ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งเครื่องมือต่อไปนี้:
- ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งคอมไพเลอร์ Go ล่าสุดบนระบบของคุณ
- โปรแกรมแก้ไขโค้ด
ติดตั้ง Gofpdf
เมื่อคุณตั้งค่าโปรเจ็กต์แล้ว ให้ใช้คำสั่ง “go get” เพื่อติดตั้งแพ็คเกจ “fpdf”
$ ไป รับ GitHub . กับ / ไป - - ไฟล์ PDF / fpdf
เมื่อติดตั้งแล้ว เราสามารถดำเนินการต่อและครอบคลุมคุณสมบัติต่างๆ ที่มีอยู่ในแพ็คเกจสำหรับการสร้าง PDF
สร้างเอกสาร PDF พื้นฐาน
พิจารณาโค้ดตัวอย่างต่อไปนี้ที่สาธิตวิธีใช้แพ็คเกจนี้เพื่อสร้าง PDF พื้นฐานโดยระบุข้อความอินพุตพื้นฐาน
บรรจุุภัณฑ์ หลัก
นำเข้า (
'github.com/go-pdf/fpdf'
)
ฟังก์ชั่น หลัก () {
ไฟล์ PDF := fpdf . ใหม่ ( 'พี' , 'มม' , 'เอ4' , '' )
ไฟล์ PDF . เพิ่มหน้า ()
ไฟล์ PDF . ตั้งค่าแบบอักษร ( “อาเรียล” , 'บี' , 16 )
ไฟล์ PDF . เซลล์ ( 40 , 10 , “ปวดก้นจังเลย...” )
ไฟล์ PDF . ไฟล์เอาท์พุตและปิด ( 'ลอเร็ม.pdf' )
}
ในตัวอย่างที่กำหนด เราเริ่มต้นด้วยการนำเข้าแพ็คเกจที่เราต้องการ ในกรณีของเรา เราต้องการเพียงแพ็คเกจ “fpdf” เท่านั้น
ต่อไป เราจะสร้างเอกสาร PDF ใหม่โดยใช้ฟังก์ชัน fpdf.New() และระบุคุณสมบัติ PDF เช่น การวางแนวหน้า หน่วยวัด และขนาด
ต่อไป เราจะเพิ่มหน้าใหม่โดยใช้ฟังก์ชัน AddPage()
จากนั้นเราดำเนินการตั้งค่าแบบอักษรและขนาดสำหรับเอกสารโดยใช้ฟังก์ชัน SetFont() นอกจากนี้เรายังเพิ่มพื้นที่สี่เหลี่ยมหรือที่เรียกว่าเซลล์ด้วยฟังก์ชัน Cell() เพื่อแสดงข้อความ
สุดท้ายนี้ เราสร้าง PDF และบันทึกด้วยวิธี OutputFileAndClose()
เพิ่มรูปภาพ
นอกจากนี้เรายังสามารถเพิ่มการรองรับรูปภาพตามที่แสดงในโค้ดตัวอย่างต่อไปนี้:
บรรจุุภัณฑ์ หลักนำเข้า (
'github.com/go-pdf/fpdf'
)
ฟังก์ชั่น หลัก () {
ไฟล์ PDF := fpdf . ใหม่ ( 'พี' , 'มม' , 'เอ4' , '' )
ไฟล์ PDF . เพิ่มหน้า ()
ไฟล์ PDF . ตัวเลือกรูปภาพ ( 'linux-tux.png' , 10 , 10 , 40 , 0 , เท็จ , fpdf . ตัวเลือกรูปภาพ { ประเภทรูปภาพ : : 'พีเอ็นจี' , อ่านDpi : : จริง }, 0 , '' )
ผิดพลาด := ไฟล์ PDF . ไฟล์เอาท์พุตและปิด ( 'ตัวอย่าง.pdf' )
ถ้า ผิดพลาด != ไม่มี {
ตื่นตกใจ ( ผิดพลาด )
}
}
ซึ่งควรรวมรูปภาพที่ระบุลงในเอกสาร
เอกสารหลายหน้าพร้อมส่วนหัวและส่วนท้าย
แพ็คเกจนี้ยังรองรับหลายเพจรวมถึงฟีเจอร์ต่างๆ เช่น ส่วนหัวและส่วนท้าย ดังที่แสดงในตัวอย่างต่อไปนี้:
บรรจุุภัณฑ์ หลักนำเข้า (
'strconv' // นำเข้าแพ็คเกจ strconv
'github.com/go-pdf/fpdf'
)
ฟังก์ชั่น หัวข้อ ( ไฟล์ PDF * fpdf . Fpdf ) {
ไฟล์ PDF . ตั้งค่าแบบอักษร ( “อาเรียล” , 'บี' , 12 )
ไฟล์ PDF . เซลล์ ( 0 , 10 , 'ส่วนหัวของหน้า' )
ไฟล์ PDF . แอล ( ยี่สิบ )
}
ฟังก์ชั่น ส่วนท้าย ( ไฟล์ PDF * fpdf . Fpdf ) {
ไฟล์ PDF . เซตวาย ( - - สิบห้า )
ไฟล์ PDF . ตั้งค่าแบบอักษร ( “อาเรียล” , 'ฉัน' , 8 )
ไฟล์ PDF . เซลล์ ( 0 , 10 , 'หน้าหนังสือ ' + strconv . จมน้ำตาย ( ไฟล์ PDF . หมายเลขหน้า ()))
}
ฟังก์ชั่น หลัก () {
ไฟล์ PDF := fpdf . ใหม่ ( 'พี' , 'มม' , 'เอ4' , '' )
ไฟล์ PDF . ตั้งค่า HeaderFunc ( ฟังก์ชั่น () { หัวข้อ ( ไฟล์ PDF ) })
ไฟล์ PDF . ตั้งค่า FooterFunc ( ฟังก์ชั่น () { ส่วนท้าย ( ไฟล์ PDF ) })
ไฟล์ PDF . เพิ่มหน้า ()
ไฟล์ PDF . ตั้งค่าแบบอักษร ( “อาเรียล” , '' , 12 )
สำหรับ ฉัน := 0 ; ฉัน < 40 ; ฉัน ++ {
ไฟล์ PDF . เซลล์ ( 0 , 10 , “พิมพ์หมายเลขบรรทัด” + strconv . จมน้ำตาย ( ฉัน ))
ไฟล์ PDF . แอล ( 12 )
}
ไฟล์ PDF . ไฟล์เอาท์พุตและปิด ( 'หลายหน้า.pdf' )
}
ในกรณีนี้ เรากำหนดฟังก์ชันส่วนหัวและส่วนท้ายเพื่อตั้งค่าเนื้อหาสำหรับส่วนเหล่านี้ของ PDF
จากนั้นเราใช้ SetHeaderFunc และ SetFooterFunc เพื่อระบุฟังก์ชันเป็นส่วนหัวและส่วนท้ายของเอกสาร
สุดท้ายนี้ เราใช้การวนซ้ำเพื่อสร้างบรรทัดข้อความหลายบรรทัดซึ่งส่งผลให้มีหลายหน้า ผลลัพธ์ PDF จะเป็นดังนี้:
ได้แล้ว!
บทสรุป
ในบทช่วยสอนนี้ เราได้เรียนรู้มากมายเกี่ยวกับการสร้าง PDF ใน Go โดยใช้แพ็คเกจ “fpdf” แพ็คเกจนี้มาพร้อมกับเครื่องมือและคุณสมบัติมากมายในการสร้าง PDF ตรวจสอบเอกสารเพื่อเรียนรู้เพิ่มเติม