Convertir des fichiers HTML en PDF à l'aide de WeasyPrint
P粉729198207
P粉729198207 2023-09-11 14:54:49
0
1
625

J'ai de nombreux fichiers HTML et je souhaite les enregistrer sous forme de fichiers PDF locaux

J'ai donc essayé d'utiliser weasyprint pour convertir, mais je n'ai pas réussi

Quelqu'un peut-il m'aider à écrire le code ?

def pdf_generate():
    try:

        pdf_file = HTML(string='56129.html').write_pdf()
        with open("my_pdf_file.pdf", 'wb') as f:
            f.write(pdf_file)

    except Exception as e:
        print(str(e))
        return None

J'ai le fichier HTML localement et je souhaite également enregistrer le fichier PDF localement

J'ai mis en œuvre la réponse

def pdf_generate():
    try:
        #将'56129.html'替换为你的HTML文件的路径
        html_file_path = 'farm_management/scripts/56129.html'

        html = HTML(filename=html_file_path)

        pdf_file_path = 'my_pdf_file.pdf'

        pdf_file = html.write_pdf(pdf_file_path)
        with open("my_pdf_file.pdf", 'wb') as f:
            f.write(pdf_file)

        print(f'PDF文件已写入至:{pdf_file_path}')

    except Exception as e:
        print(str(e))

Et l'erreur suivante s'est produite

需要一个类似字节的对象,而不是'NoneType'

P粉729198207
P粉729198207

répondre à tous(1)
P粉384679266

Si votre fichier HTML est une chaîne, vous devez utiliser la méthode HTML(string=html_string).write_pdf().

Cependant, s'il s'agit d'un fichier dans votre répertoire local, vous devez utiliser la méthode HTML(filename=html_file_path).write_pdf().

Le code est le suivant :

from weasyprint import HTML

def pdf_generate():
    try:
        # 将'56129.html'替换为您的HTML文件的路径
        html_file_path = '56129.html'

        html = HTML(filename=html_file_path)

        pdf_file_path = 'my_pdf_file.pdf'

        html.write_pdf(pdf_file_path)

        print(f'PDF文件已写入:{pdf_file_path}')

    except Exception as e:
        print(str(e))

pdf_generate()
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal