from fpdf import FPDF
pdf1 = FPDF
pdf1.multi_cell(0, 5, 'This is my disclaimer. THESE WORDS NEED TO BE BOLD. These words do not need to be bold.', 0, 0, 'L')
pdf1.output("sample.pdf")
I use fpdf for php and had the same need. But as Olivier mentioned in the comments it is not possible. So I wrote a quick workaround, I have written a rough python implementation below. Probably not the most beautiful solution but it might serve you.
from fpdf import FPDF
class FPDF_bold_multicell(FPDF):
def write_multicell_with_styles(self,max_width, cell_height, text_list):
startx = self.get_x()
self.set_font('Arial', '', 16)
#loop through differenct sections in different styles
for text_part in text_list:
#check and set style
try:
current_style = text_part['style']
self.set_font('Arial', current_style, 16)
except KeyError:
self.set_font('Arial', '', 16)
#loop through words and write them down
space_width = self.get_string_width(' ')
for word in text_part['text'].split(' '):
current_pos = self.get_x()
word_width = self.get_string_width(word)
#check for newline
if (current_pos + word_width) > (startx + max_width):
#return
self.set_y(self.get_y() + cell_height)
self.set_x(startx)
pdf1.cell(word_width, 5, word)
#add a space
self.set_x(self.get_x() + space_width)
pdf1 = FPDF_bold_multicell()
pdf1.add_page()
text_list = [{'text':'This is my disclaimer.'},
{'style':'B','text':'THESE WORDS NEED TO BE BOLD.'},
{'text':'These words do not need to be bold.'},]
pdf1.write_multicell_with_styles(50, 5, text_list)
pdf1.output("sample.pdf")