The effective page width is the area between the left and right margin of the document. If those margins are 1.0 inch wide and the paper format is letter (8.5×11 in) with portrait orientation then the effective page width (or epw) is 8.5 – 1.0 – 1.0 = 6.5 inches. That is the area available to write or draw.
Of course we have the entire page surface at our disposition, but it is within that region that users expect the content.
# Import FPDF class from fpdf import FPDF # Create instance of FPDF class # Letter size paper, use inches as unit of measure pdf=FPDF(format='letter', unit='in') # Add new page. Without this you cannot create the document. pdf.add_page() # Remember to always put one of these at least once. pdf.set_font('Times','',10.0) # Text in cell 2.5 inches wide, automatic height (0.0) # starting at left margin pdf.cell(2.5,0.0,'Hello World!') pdf.ln(0.25) # Let's put 5 more of this so text goes beyond page margins. Ugly result. # To avoid this you must always be aware of your page dimensions. for i in range(5): pdf.cell(2.5,0.0,'Hello World!') pdf.ln(0.50) # Let us use the page dimensions to better position those cells. # The full page width is stored in pdf.w and the full height in pdf.h # We will substract from pdf.w both left and right margins. Here we are # infering both are the same dimension. effective_page_width = pdf.w - 2*pdf.l_margin pdf.set_font('Times','B',10.0) pdf.cell(1.0, 0.0, 'Using effective page width of %s inches to adjust cells \ width to make them fit inside page dimensions' % effective_page_width, 'U') pdf.ln(0.25) pdf.set_font('Times','',10.0) # Using page width we will adjust cell width to make them all fit # inside the page. The length of the text will determine if this # will work or not for i in range(5): pdf.cell(effective_page_width/5.0,0.0,'Hello World!') # output content into a file ('F') named 'hello08.pdf' pdf.output('hello08.pdf','F')