В приведенном ниже примере мне также нужно добавить оглавление. В xhtml2pdf <pdf:toc />
необходимо вставить в html файл для добавления оглавления. Но проблема в том, где его добавить. Документ xhtml2pdf говорит только о добавлении в html-файл. Я не знаю, где это добавить. Я пытался добавить его во многих местах, все это возвращало какую-то ошибку. Я также искал в Интернете какие-либо примеры, но не смог найти ни одного.
from xhtml2pdf import pisa # import python module
# Define your data
sourceHtml = """
html>
<head>
<style>
@page {
size: a4 portrait;
@frame header_frame { /* Static Frame */
-pdf-frame-content: header_content;
left: 50pt; width: 512pt; top: 50pt; height: 40pt;
}
@frame content_frame { /* Content Frame */
left: 50pt; width: 512pt; top: 90pt; height: 632pt;
}
@frame footer_frame { /* Another static Frame */
-pdf-frame-content: footer_content;
left: 50pt; width: 512pt; top: 772pt; height: 20pt;
}
}
</style>
</head>
<body>
<!-- Content for Static Frame 'header_frame' -->
<div id="header_content">Lyrics-R-Us</div>
<!-- Content for Static Frame 'footer_frame' -->
<div id="footer_content">(c) - page <pdf:pagenumber>
of <pdf:pagecount>
</div>
<!-- HTML Content -->
<h1>Title Page</h1>
<h1>Chapter 1</h1>
</body>
</html>
"""
outputFilename = "test.pdf"
# Utility function
def convertHtmlToPdf(sourceHtml, outputFilename):
# open output file for writing (truncated binary)
resultFile = open(outputFilename, "w+b")
# convert HTML to PDF
pisaStatus = pisa.CreatePDF(
sourceHtml, # the HTML to convert
dest=resultFile) # file handle to recieve result
# close output file
resultFile.close() # close output file
# return True on success and False on errors
return pisaStatus.err
# Main program
if __name__ == "__main__":
pisa.showLogging()
convertHtmlToPdf(sourceHtml, outputFilename)
1
ksananthu
4 Ноя 2019 в 18:28
1 ответ
Поместите его куда угодно, будьте осторожны, он каким-то образом имеет смысл с пробелами, поэтому, чтобы заставить его работать, вставьте div
, как показано ниже
<div>
<pdf:toc />
</div>
0
starenka
28 Янв 2021 в 16:23
Похожие вопросы
Новые вопросы
python-3.x
НЕ ИСПОЛЬЗУЙТЕ, ЕСЛИ ВАШ ВОПРОС ТОЛЬКО ДЛЯ PYTHON 3. Всегда используйте вместе со стандартным тегом [python].