from ironpdf import *
# Instantiate Renderer
renderer = ChromePdfRenderer()
# Create a PDF from a HTML string using Python
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
# Export to a file or Stream
pdf.SaveAs("output.pdf")
# Advanced Example with HTML Assets
# Load external html assets: Images, CSS and JavaScript.
# An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", r"C:\site\assets")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
Lorsque l'on développe des programmes solides et résilients dans le langage de programmation Python, il est courant de devoir gérer gracieusement des erreurs temporaires, en particulier lorsqu'on travaille avec des services externes ou des opérations de réseau. C'est là que la puissante bibliothèque Python de réessais à usage général, Tenacity, se révèle utile. Les développeurs peuvent accroître la fiabilité et la robustesse de leurs opérations de génération de PDF en combinant Tenacity avec IronPDF, un cadre riche en fonctionnalités pour la création de documents PDF dans les applications Python.
Tenacity offre une structure adaptable et personnalisable pour relancer les tâches qui peuvent échouer ou soulever des exceptions en raison de problèmes transitoires tels que les dysfonctionnements du réseau, les dépassements de délai ou les interruptions de service. Tenacity simplifie le développement de la logique de réessai grâce à son API conviviale et à son vaste ensemble de fonctionnalités, ce qui permet aux développeurs de se concentrer sur la création de systèmes fiables plutôt que de se préoccuper de défaillances passagères.
Dans ce billet, nous allons passer en revue les avantages de l'intégration de la bibliothèque Tenacity avec IronPDF, présenter des exemples pratiques et donner des conseils sur la façon de créer des processus fiables de génération de PDF dans les applications Python. Les développeurs peuvent améliorer la robustesse et la fiabilité de leurs applications tout en fournissant aux consommateurs des documents PDF de haute qualité en combinant la puissance de Tenacity avec IronPDF.
Réessai basé sur un décorateur
Python permet aux programmeurs d'utiliser des décorateurs Python pour ajouter une logique de réessai aux fonctions ou aux méthodes. De ce fait, il est facile d'ajouter un comportement de réessai à des actions particulières sans modifier le code original.
Plans de réessai personnalisables
Tenacity propose plusieurs paramètres ajustables pour spécifier les plans de relance. Le nombre maximum de tentatives, l'intervalle entre les tentatives et les circonstances dans lesquelles les tentatives doivent avoir lieu sont tous personnalisables par les développeurs.
Retard exponentiel
Tenacity est en faveur du backoff exponentiel, une technique courante d'invocation de tentatives dans laquelle l'intervalle entre les tentatives croît de manière exponentielle avec le nombre de tentatives à chaque essai. Vous éviterez ainsi d'inonder le service cible de requêtes en cas de trafic important ou de congestion.
Gigue et aléa
Tenacity propose des options pour introduire de la gigue et du hasard dans les délais de réessai afin d'éviter les problèmes de synchronisation et de troupeau tonnant. Cela réduit la possibilité que plusieurs clients fassent une nouvelle tentative en même temps en répartissant les efforts de relance dans le temps.
Conditions de réessai et exceptions
En fonction de la valeur de retour de l'opération ou des exceptions soulevées, les développeurs peuvent créer des conditions de réessai uniques. Il est ainsi possible de déterminer avec précision quand et dans quelles conditions les tentatives doivent être effectuées.
Délais et échéances
Tenacity facilite la création de délais et d'échéances pour les opérations générales, garantissant que les tentatives de relance ne sont pas effectuées indéfiniment et que les opérations sont finalement interrompues si elles durent plus longtemps que les seuils prédéterminés.
Intégration avec les frameworks Python les plus répandus
Flask, Django et Celery ne sont que quelques-uns des cadres avec lesquels Tenacity interagit facilement. Les développeurs peuvent ainsi facilement ajouter une logique de réessai aux opérations d'arrière-plan, aux points de terminaison Web ou à toute autre partie de leurs systèmes.
L'attribut de réessai attaché à la fonction et ses tentatives doivent être enregistrés à l'aide d'un enregistreur désigné(comme un logger) et de relever un niveau d'enregistrement spécifique(comme DEBUG).
Pour commencer
Qu'est-ce qu'IronPDF ?
Nous pouvons créer, éditer et rendre des documents PDF à l'intérieur de programmes à l'aide de la célèbre boîte à outils IronPDF. Vous pouvez travailler avec des PDF de différentes manières : vous pouvez convertir des pages HTML en PDF, ajouter du texte, des images et des formes à des pages existantes, et extraire du texte et des images de pages existantes. Même à partir de contenu HTML, d'images ou de données brutes, vous pouvez créer de nouvelles pages PDF.
IronPDF est incroyablement facile à utiliser, ce qui est l'un de ses principaux avantages. Grâce à l'API conviviale de Python et à sa documentation complète, les développeurs peuvent facilement commencer à créer des PDF à partir de leurs projets. IronPDF possède également deux autres fonctionnalités : la vitesse et l'efficacité, qui permettent aux développeurs de créer rapidement des documents PDF de haute qualité.
Quelques avantages d'IronPDF :
Transformation d'images, de données brutes et de HTML en PDF.
Suppression des images et du texte des fichiers PDF.
Ajout d'en-têtes, de pieds de page et de filigranes aux fichiers PDF.
Protection des fichiers PDF par mots de passe et cryptage.
La capacité de signer et de remplir des formulaires par voie électronique.
Installer les bibliothèques
L'installation des dépendances requises et l'intégration des deux bibliothèques dans votre flux de production de PDF sont les premières étapes de l'utilisation conjointe de Tenacity et IronPDF dans une application Python.
pip install tenacity
pip install ironpdf
Dans votre script Python, importez les modules requis de Tenacity et IronPDF for Python :
from tenacity import retry, stop_after_attempt, wait_fixed
from IronPdf import IronPdf
from tenacity import retry, stop_after_attempt, wait_fixed
from IronPdf import IronPdf
PYTHON
Utilisez le décorateur Tenacity @retry pour orner votre méthode de génération de PDF et définir le comportement du retry, par exemple retry forever :
@retry(stop=stop_after_attempt(3)) : Indique qu'après trois tentatives, la fonction doit cesser d'essayer de réitérer l'appel. wait_fixed(2) : Indique qu'il doit y avoir une pause de 2 secondes entre chaque tentative de nouvel appel.
Appelez votre fonction de création de PDF et transmettez-lui le texte HTML. En cas d'exception, Tenacity réessaie automatiquement la fonction conformément aux paramètres de réessai prédéfinis.
try:
html_content = "<html><body><h1>Hello, IronPDF!</h1></body></html>"
generate_pdf(html_content)
print("PDF generated successfully")
except Exception as e:
print("Failed to generate PDF:", e)
try:
html_content = "<html><body><h1>Hello, IronPDF!</h1></body></html>"
generate_pdf(html_content)
print("PDF generated successfully")
except Exception as e:
print("Failed to generate PDF:", e)
PYTHON
En modifiant des facteurs tels que le nombre de tentatives, la condition de tentative et la condition d'attente, l'intervalle entre les tentatives et les circonstances dans lesquelles les tentatives doivent avoir lieu, vous pouvez encore modifier le comportement des tentatives. Tenacity comprend différentes méthodes de relance et stratégies de relance et de condition d'attente que vous pouvez utiliser pour affiner le comportement de la relance en fonction de vos besoins.
Exemple de sortie
Voici le résultat généré par le code ci-dessus :
Conclusion
En résumé, Tenacity et IronPDF constituent ensemble une solution puissante pour créer des flux de production de PDF robustes et fiables dans les applications Python. Les développeurs peuvent s'assurer que leurs processus de génération de PDF sont robustes et résistent aux défaillances temporaires et aux tentatives de réessai en utilisant les puissantes capacités de génération de PDF d'IronPDF et la logique de réessai personnalisable de Tenacity.
Grâce à l'ensemble des fonctionnalités de Tenacity, les développeurs peuvent ajuster avec précision les tactiques de relance pour des conditions multiples, spécifier des critères de relance uniques, personnaliser les relances en cas d'exception et inclure des options de configuration sophistiquées. Tenacity permet aux développeurs de gérer avec élégance les défaillances momentanées, telles que les pannes de réseau ou les interruptions de service, et garantit que les processus cruciaux de création de PDF sont immédiatement relancés.
En conclusion, les développeurs peuvent créer des solutions de production PDF fiables et robustes, capables de faire face aux rigueurs du monde réel, en utilisant Tenacity avec IronPDF. Cette combinaison offre une base solide pour créer des flux de production PDF fiables et évolutifs dans les applications Python, qu'il s'agisse de produire des factures, des rapports ou des documents.
Une licence à vie pour IronPDF est incluse dans le package pour un prix raisonnable. Pour de nombreux systèmes, le package est disponible pour un $749 très abordable. Les titulaires de licence bénéficient d'un accès 24 heures sur 24 au support technique en ligne. Veuillez consulter la page relative à l'octroi de licences pour obtenir de plus amples informations sur la redevance. Pour en savoir plus sur les produits d'Iron Software, consultez la page de la bibliothèque.
Avant de devenir ingénieur logiciel, Kannapat a obtenu un doctorat en ressources environnementales à l'université d'Hokkaido au Japon. Tout en poursuivant ses études, Kannapat est également devenu membre du Vehicle Robotics Laboratory, qui fait partie du Department of Bioproduction Engineering (département d'ingénierie de la bioproduction). En 2022, il a mis à profit ses compétences en C# pour rejoindre l'équipe d'ingénieurs d'Iron Software, où il se concentre sur IronPDF. Kannapat apprécie son travail car il apprend directement auprès du développeur qui écrit la majeure partie du code utilisé dans IronPDF. Outre l'apprentissage par les pairs, Kannapat apprécie l'aspect social du travail chez Iron Software. Lorsqu'il n'écrit pas de code ou de documentation, Kannapat peut généralement être trouvé en train de jouer sur sa PS5 ou de revoir The Last of Us.
< PRÉCÉDENT OpenTelemetry dans les applications Python
SUIVANT > Web Scraping avec BeautifulSoup en Python
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucun engagement de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre démo en direct gratuite
Fiable par plus de 2 millions d'ingénieurs dans le monde entier