473 votes

Convertir HTML en PDF en .NET

Je veux générer un PDF en passant le contenu HTML à une fonction. J'ai utilisé iTextSharp pour cela, mais il ne fonctionne pas bien lorsqu'il rencontre des tableaux et la mise en page devient désordonnée.

Y a-t-il un meilleur moyen ?

0 votes

Vous pouvez utiliser GemBox.Document pour ça. Aussi aquí vous pouvez trouver un exemple de code pour convertir un fichier HTML en fichier PDF.

0 votes

Quelle version d'iTextSharp utilisez-vous et pouvez-vous partager votre html ?

0 votes

Toujours pas de réponse à ma demande d'informations complémentaires. Veuillez également ajouter si vous utilisez HTMLWorker ou XMLWorker.

194voto

Marko Points 2000

Essayez wkhtmtopdf . C'est le meilleur outil que j'ai trouvé jusqu'à présent.

1 votes

Cet outil est excellent ! L'utilisation du moteur webkit est bien supérieure aux alternatives utilisant IE.

6 votes

Il s'agit d'un exécutable autonome. Vous pouvez le lancer comme un processus, en passant l'URL du document HTML comme argument.

5 votes

J'ai essayé de créer des liaisons .NET ( github.com/bamccaig/WkHtmlToPdfDflat ), mais j'ai du mal à le faire fonctionner (je n'arrive même pas à le faire fonctionner en utilisant les liaisons C directement à partir de C) :\\N-.

28voto

Jason Points 391

La plupart des convertisseurs HTML vers PDF s'appuient sur IE pour effectuer l'analyse et le rendu du HTML. Cela peut se briser lorsque l'utilisateur met à jour son IE. Ici est celle qui ne repose pas sur l'IE.

Le code est quelque chose comme ceci :

EO.Pdf.HtmlToPdf.ConvertHtml(htmlText, pdfFileName);

Comme beaucoup d'autres convertisseurs, vous pouvez passer du texte, un nom de fichier ou une URL. Le résultat peut être enregistré dans un fichier ou un flux.

0 votes

Je suis d'accord - le PDF essentiel était le meilleur parmi plus de 10 que j'ai essayé. Le support est fantastique.

36 votes

Il n'est pas utile car vous devez acheter la bibliothèque

51 votes

D1jhoni1b, en quoi cela le rend-il inutile ? S'il s'agit d'un outil payant, on peut dire qu'il est cher, mais pas inutile sur ce seul critère.

13voto

Stewart Points 2275

Winnovative propose une bibliothèque PDF .Net qui prend en charge la saisie HTML. Ils offrent un nombre illimité essai gratuit . Selon la manière dont vous souhaitez déployer votre projet, cela peut être suffisant.

4 votes

N'oubliez pas que, lors de la dernière vérification, winnovative était incompatible avec IE9 (car elle utilisait le moteur de rendu GDI d'IE, qui a été supprimé dans IE9). Par conséquent, si IE9 est installé sur la machine que vous utilisez, la conversion ne fonctionnera pas. Il se peut qu'ils aient corrigé ce problème au moment où vous lisez ces lignes, mais de nombreux composants commerciaux utilisaient le moteur de rendu d'IE et se sont retrouvés en difficulté avec IE9, il est donc utile de vérifier.

0 votes

Winnovative a été le plus facile à configurer et a fonctionné dès le départ. Mais : 1. il ne fonctionne PAS sur les sites web Azure, seulement sur CloudApp. 2. il est lent, il faut au moins 8 secondes pour générer un simple PDF sur une VM Azure D1.

0 votes

Confirmez. C'est vraiment lent. J'ai comparé avec wkhtmltopdf.

8voto

Paul Points 61

Il y a également une nouvelle application de génération de documents basée sur le Web. DocRaptor.com . Il semble facile à utiliser, et il y a une option gratuite.

8voto

Stewart Points 2275

Si vous n'avez pas vraiment besoin d'une véritable bibliothèque .Net PDF, il existe de nombreuses Outils gratuits de conversion de HTML en PDF dont beaucoup peuvent être exécutés à partir d'une ligne de commande.

Une solution serait de choisir l'une d'entre elles et d'écrire une enveloppe fine autour de celle-ci en C#. Par exemple, comme cela est fait dans ce tutoriel .

0 votes

Le tutoriel utilise un composant d'un site web qui n'existe plus.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X