Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /usr/bin/env python
- # -*- coding: utf-8 -*-
- # ======================================================
- # demo3.py
- # ------------------------------------------------------
- # Created for Full Circle Magazine Issue #159 July 2020
- # Written by G.D. Walters
- # Copyright (c) 2020 by G.D. Walters
- # This source code is released under the MIT License
- # ======================================================
- from fpdf import FPDF
- import sys
- import os
- class PDF(FPDF):
- def header(self):
- # Arial bold 15
- self.set_font('Arial', 'B', 15)
- # Calculate width of title and position
- w = self.get_string_width(title) + 6
- self.set_x((210 - w) / 2)
- # Title
- self.cell(w, 9, title, 0, 1, 'C', 0)
- # Line break
- self.ln(10)
- def footer(self):
- # Position at 1.5 cm from bottom
- self.set_y(-15)
- # Arial italic 8
- self.set_font('Arial', 'I', 8)
- # Text color in gray
- self.set_text_color(128)
- # Page number
- self.cell(0, 10, 'Page ' + str(self.page_no()), 0, 0, 'C')
- def chapter_body(self, name, fontfamily=None, fontattrib=None, fontsize=None):
- # Read text file
- with open(name, 'rb') as fh:
- txt = fh.read().decode('latin-1')
- if fontfamily==None:
- # Times 12
- self.set_font('Times', '', 12)
- else:
- self.set_font(fontfamily, fontattrib,fontsize)
- # Output justified text
- self.multi_cell(0, 5, txt)
- # Line break
- self.ln()
- title = 'Demo3 for Full Circle Magazine'
- pdf = PDF('p', 'mm', 'letter')
- pdf.alias_nb_pages()
- pdf.set_title(title)
- # Properties start here...
- pdf.set_author('G.D. Walters')
- pdf.set_subject('Demonstration program for Full Circle Magazine Issue #159')
- pdf.set_keywords("PDF, Demonstration, Full Circle Magazine")
- pdf.set_creator("Python")
- # Properties end here...
- pdf.add_page()
- pdf.chapter_body('demotext1.txt')
- pdf.chapter_body('demotext2.txt','Arial','B',14)
- pdf.chapter_body('birthdays2.py','Courier','B',11)
- pdf.output('demo3.pdf', 'F')
- if sys.platform.startswith("linux"):
- os.system("xdg-open ./demo3.pdf")
- else:
- os.system("./demo3.pdf")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement