Maison > Questions et réponses > le corps du texte
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粉3846792662023-09-12 13:53:44
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()