Change text field styles
PyPDFForm gives you the ability to modify certain styles of text fields through code. This allows you to manipulate appearances of the texts without having to make changes to your PDF form template.
All these style changes can be done both globally upon instantiating a PdfWrapper
object and individually for each
text field widget.
This section of the documentation will use this PDF as an example.
Change font
Some fonts, for example Courier
and Helvetica
, are builtin as part of the PDF standards. These fonts can be set
without registration:
from PyPDFForm import PdfWrapper
form = PdfWrapper("sample_template.pdf", global_font="Courier")
form.widgets["test"].font = "Helvetica"
form.fill(
{
"test": "test_1",
"check": True,
"test_2": "test_2",
"check_2": False,
"test_3": "test_3",
"check_3": True,
},
)
with open("output.pdf", "wb+") as output:
output.write(form.read())
Other non-standard fonts, for example Liberation Serif, will need a TrueType file to be registered before they can be set:
from PyPDFForm import PdfWrapper
PdfWrapper.register_font("new_font_name", "LiberationSerif-Regular.ttf")
form = PdfWrapper("sample_template.pdf", global_font="new_font_name")
form.widgets["test"].font = "new_font_name"
form.fill(
{
"test": "test_1",
"check": True,
"test_2": "test_2",
"check_2": False,
"test_3": "test_3",
"check_3": True,
},
)
with open("output.pdf", "wb+") as output:
output.write(form.read())
Change font size
PyPDFForm allows setting font size using a numerical float
value:
from PyPDFForm import PdfWrapper
form = PdfWrapper("sample_template.pdf", global_font_size=20)
form.widgets["test"].font_size = 30.5
form.fill(
{
"test": "test_1",
"check": True,
"test_2": "test_2",
"check_2": False,
"test_3": "test_3",
"check_3": True,
},
)
with open("output.pdf", "wb+") as output:
output.write(form.read())
Change font color
PyPDFForm allows setting font color using an RGB numerical tuple
:
from PyPDFForm import PdfWrapper
form = PdfWrapper("sample_template.pdf", global_font_color=(1, 0, 0))
form.widgets["test"].font_color = (0.2, 0, 0.5)
form.fill(
{
"test": "test_1",
"check": True,
"test_2": "test_2",
"check_2": False,
"test_3": "test_3",
"check_3": True,
},
)
with open("output.pdf", "wb+") as output:
output.write(form.read())