การสร้างไฟล์ PDF ด้วยภาษา Python บนระบบ Window

แชร์ความรู้ภาษา Python ไพทอน การเขียนโปรแกรมภาษาไพทอน

Moderator: mindphp, ผู้ดูแลกระดาน

kritsadak
PHP Full Member
PHP Full Member
โพสต์: 30
ลงทะเบียนเมื่อ: 24/12/2018 10:18 am

การสร้างไฟล์ PDF ด้วยภาษา Python บนระบบ Window

โพสต์โดย kritsadak » 25/12/2018 2:39 pm

PDF มักจะเป็นไฟล์ที่ต้องการปริ้น โดยจะไม่ทำการแก้ไขเพิ่มเติม หรือมีรูปแบบตัวอักษรเพิ่มเติมจากรูปแบบอักษรพื้นฐานก็ทำให้ข้อมูล Text นั้นตัวอักษรจะไม่เพี้ยนเมื่อนำไปเปิดในเครื่องอื่นที่ไม่ใช่เครื่องตัวเอง แต่ถ้าเป็นไฟล์ Word เมื่อนำไปเปิดเครื่องอื่นแล้ว อาจทำให้ข้อมูลตัวอักษรเพี้ยนได้ถ้าเครื่องนั้นไม่ได้ติดตั้งรูปแบบตัวอักษรที่ตรงกัน ที่นี้จะมาเขียนกันภาษา python

ขั้นแรกจะเริ่มด้วยการติดตั้ง Library ให้กับเครื่อง Window ดังภาพที่ (1)
รูปภาพ
ใช้คำสั่ง Conmmandline ดังนี้ ” pip3 install fpdf ” ระบบก็จะติดตั้ง Library FPDF ของ python ให้กับ window

ขั้นต่อมาส่วนของ Code จะต้อง import library FPDF ไปใน code ดังภาพที่ (2)
รูปภาพ

ส่วนต่อมาจะประกาศตัวแปร (ข้อมูลที่ต้องการจะใส่ในไฟล์ pdf) ดังภาพที่ (3)
รูปภาพ

ตัวอย่างที่ Path (ที่อยู่ของไฟล์) ที่เรียกใช้รูปแบบ Font หรือจะใช้เป็นที่อยู่ของไฟล์โปรแกรม / รูปภาพ / ที่ใช้บันทึกไฟล์ pdf ดังภาพที่ (4)
รูปภาพ

สร้าง method ขึ้นมาในชื่อ PDFInformation แล้วภายใน method ก็จะมี Parameter ที่รับเข้ามา ดังภาพที่ (5)
รูปภาพ

ตัวอย่าง รูปแบบของ font ในที่นี้จะใช้เป็น KinnariBold.ttf (หากไม่มีในเครื่อง ต้องหาโหลดเพิ่มเติม) ดังภาพที่ (6)
รูปภาพ

การตั้งค่าหน้ากระดาษ หน่วยเป็น มิลลิเมตร (กว้าง 100 มิล x สูง 50 มิล) ดังภาพที่ (7)
รูปภาพ

ในส่วนของ code การใส่ข้อมูลลงในไฟล์ pdf ดังภาพที่ (8)
รูปภาพ
- บรรทัดแรก : จะเป็นสร้างหน้ากระดาษ
- บรรทัด 2 : จะเป็นการเรียกใช้รูปแบบ Font (ชื่อfont, ที่อยู่ของfont, KinnariBolf.ttf)
- บรรทัด 3 และ 5 : จะ set ขนาดของ font มีขนาดเท่ากับ 17 และ 14
- บรรทัด 4, 7 และ 9 : จะเพิ่มข้อมูลลงใน pdf เช่น ชื่อ-นามสกุล, ที่อยู่ เป็นต้น และได้กำหนดให้มีระยะห่างจากขอบด้านซ้าย(Maginleft) ขนาดเท่ากับ 9,17 และ 25

การตั้งค่าขนาดรูปภาพ image(‘ชื่อไฟล์รูปภาพ’, ระยะแกน x, ระยะแกน y, ความกว้างของรูปภาพ) ดังภาพที่ (9)
รูปภาพ

การเรียกใช้งาน method PDFInformation โดยมี Spacial Varibles “__name__” จะเป็น main funtion ดังภาพที่ (10)
รูปภาพ

ก่อน Run โปรแกรม
รูปภาพ

หลัง Run โปรแกรม
รูปภาพ
รูปภาพ

ผลลัพท์
รูปภาพ


ตัวอย่าง Code ทั้งหมด

โค้ด: เลือกทั้งหมด

#! /usr/bin/python3
# -*- coding: utf-8 -*-

from fpdf import FPDF

NAME = "Yourname  Lastname"                        
ADDRESS = "555/55 Soi Senanikhom"
CITY = "Lat Phrao"
STATE = "กรุงเทพมหานคร"
COUNTRY = "ประเทศไทย"
POSTCODE = "10230"
PATH_SOURCE = "C:/Users/ksdkd/Desktop/pdf"               

def PDFInformation(PATH_SOURCE,NAME,ADDRESS,CITY,STATE,COUNTRY,POSTCODE):
  marginleft = 4
  fontstyle= 'KinnariBold.ttf'
  namefonts = 'kinnari'
  pdf = FPDF('P', 'mm', (100, 50))
  pdf.add_page()
  pdf.add_font(namefonts, '', PATH_SOURCE+"/"+fontstyle, uni=True)
  pdf.set_font(namefonts, '', 17)
  pdf.text(marginleft, 9, NAME)
  pdf.set_font(namefonts, '', 14)
  InformationLine1 = (ADDRESS+' '+CITY)
  pdf.text(marginleft, 17 ,InformationLine1)
  InformationLine2 = (STATE+' '+COUNTRY+' '+POSTCODE)
  pdf.text(marginleft , 25, InformationLine2)
  pdf.image('Y910.png', x=35, y=27, w=27)
  pdf.set_font(namefonts, '', 11)
  pdf.output('create PDF.pdf', 'F')
  print ("~ Create PDF ...")

if __name__ == '__main__':
  PDFInformation(PATH_SOURCE,NAME,ADDRESS,CITY,STATE,COUNTRY,POSTCODE)

ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 6 และ บุคคลทั่วไป 0 ท่าน