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

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

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

kritsadak
PHP Full Member
PHP Full Member
Posts: 30
Joined: 24/12/2018 10:18 am

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

Post by kritsadak » 25/12/2018 2:39 pm

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

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

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

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

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

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

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

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

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

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

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

ก่อน Run โปรแกรม
Image

หลัง Run โปรแกรม
Image
Image

ผลลัพท์
Image


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

Code: Select all

#! /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)

  • Similar Topics
    Replies
    Views
    Last post

Return to “Python Knowledge”

Who is online

Users browsing this forum: No registered users and 9 guests