Professional Documents
Culture Documents
Creating PDF Documents With Python - GeeksforGeeks
Creating PDF Documents With Python - GeeksforGeeks
In this article, we will be learning how to create PDFs in Python. A very famous module named
pypdf2 is used to modify and read existing pdfs but its major disadvantage is that it cannot create
new pdf files. So Today we are looking to learn about another python module named reportlab
that helps us to create new pdf files and edit our heart’s content on it.
Module Required:
Step-by-step Approach:
Step 1:
We start by importing the modules and classes. Canvas is used to draw things on the pdf, ttfonts
and pdfmetrics will help us to use custom TTF fonts in the pdf, and colors would help us to pick
colours easily without remembering their hex values.
Python3
# importing modules
from reportlab.pdfgen import canvas
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfbase import pdfmetrics
fromyou
We use cookies to ensure reportlab.lib import
have the best browsing colors
experience on our website. By using our site, you acknowledge that you Got It !
have read and understood our Cookie Policy & Privacy Policy
Step 2:
Start Your Coding Journey Now! Login Register
Next, we initialize all the things we would b writing and drawing in the document to specific
variables to easily call them when needed.
Python3
Step 3:
Next, we initialize a canvas object with the name of the pdf and set the title to be documentTitle.
Python3
Step 4:
Next, we register our external font to the reportlab fonts using pdfmetrics and TTFont and
assigned it a name. Next, we set the new font with a size. Then we draw the string on the pdf
using the drawCentredString function that takes the x and y values as the center of the text to the
written and the left, right, top and bottom of the text are adjusted accordingly. Note that we need
the TTF file to be present in the folder to execute the commands.
Python3
Step 5:
Next for the subtitle, we do the same thing except for this time the colour of the subtitle to be
blue, and this time we use a standard font that ships in natively with reportlab.
Python3
Step 6:
Next, we draw a line and then enter several lines of text that we defined earlier inside a list. The
first line defines the starting x and y position of the text. The next two lines set the font, font-size
and font-color of the text. The next two lines traverse through each element in the list and add it
as a line to the text. The last line draws the text to the screen.
Python3
# drawing a line
pdf.line(30, 710, 550, 710)
pdf.drawText(text)
Step 7:
At last, we draw a picture on the pdf using the drawInlineImage function in which the parameters
are the path of the image and the x and y coordinates of the image. In this case, the image was
in the same directory as the py file, so according to the relative path, we need to write only the
name of the file with the extension, if it was in some other directory, a relevant correct relative
path should be used.
Python3
Python3
# importing modules
from reportlab.pdfgen import canvas
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfbase import pdfmetrics
from reportlab.lib import colors
# drawing a line
pdf.line(30, 710, 550, 710)
Output:
Attention geek! Strengthen your foundations with the Python Programming Foundation
Course and learn the basics.
To begin with, your interview preparations Enhance your Data Structures concepts with the
Python DS Course. And to begin with your Machine Learning Journey, join the Machine
Learning - Basic Level Course
Like 1
Previous Next
MongoDB - copyTo() Method Multi-plot grid in Seaborn
Improved By : simranarora5sos
Writing code in comment? Please use ide.geeksforgeeks.org, generate link and share the link here.
Load Comments
WHAT'S NEW
View Details
View Details
View Details
Queue in Python
Deque in Python
Defaultdict in Python
feedback@geeksforgeeks.org
In Media Structures Work & CPP Django Tutorial Pick Topics to Write
Video
Tutorials
Sign In Sign Up
Username or email
Password
Sign In
Password
Institution/Organization
Sign Up
or
Google
Facebook
LinkedIn
GitHub
Username/Email
Back to Login
Reset Password