Добавление оглавления в xhtml2pdf - PullRequest
1 голос
/ 04 ноября 2019

Ниже примера мне также нужно добавить оглавление. В 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)

...