Header and Footer not Displaying in PDF Output
Issue Description:
I am using the pdfkit library to convert HTML content to a PDF file with specified header and footer HTML. However, the header and footer are not showing up in the generated PDF.Also, it is not working when I pass HTML local paths in 'header-html' and 'footer-html' options.
Code Snippet:
import pdfkit
def convert_html_to_pdf(html_content, output_pdf, header_html, footer_html):
options = {
'page-size': 'A4',
'no-images': '',
'margin-top': '15mm',
'margin-right': '15mm',
'margin-bottom': '15mm',
'margin-left': '15mm',
'header-html': header_html,
'footer-html': footer_html,
}
pdfkit.from_string(html_content, output_pdf, options=options)
if __name__ == "__main__":
# Dummy HTML content
html_content = """
<!DOCTYPE html>
<html>
<head>
<title>Sample HTML to PDF</title>
</head>
<body>
<h1>Hello, this is the main content of the page!</h1>
<p>This is a sample HTML content.</p>
</body>
</html>
"""
# Dummy header HTML content
header_html = """
<!DOCTYPE html>
<html>
<head>
<title>Header</title>
</head>
<body>
<header>
<h2>This is the header of the page</h2>
</header>
</body>
</html>
"""
# Dummy footer HTML content
footer_html = """
<!DOCTYPE html>
<html>
<head>
<title>Footer</title>
</head>
<body>
<footer>
<p>This is the footer of the page</p>
</footer>
</body>
</html>
"""
# Output PDF file
output_pdf = "output_file.pdf"
# Convert HTML to PDF
convert_html_to_pdf(html_content, output_pdf, header_html, footer_html)
print(f"PDF generated: {output_pdf}")
Hello, I'm facing the same issue when adding header elements to the generated PDF files. The simplest way I found was to add the header directly in the HTML and control it using the CSS @media property.
@media print {
#header {
position: fixed;
top: 0;
width: 100%;
}
}
Getting the same issue. Tried giving footer.html path as well as the footer_str. But still nothing is coming on the footer.
problem solved here: https://stackoverflow.com/questions/34274637/pdfkit-headers-and-footers pdfkit require .html files as header/footer, so making temp files will solve the problem it's not the perfect solution, but it's how it will make it work