🔧 AI Nachrichten KI-Angriffe: Geheimdienste sollen neue Befugnisse erhalten(11.09.2026 um 11:00 Uhr)
🔧 AI Nachrichten Podcast: ChatGPT schwatzt Nutzern in Deutschland jetzt Werbung auf(28.08.2026 um 08:46 Uhr)
🐧 Linux TippsPACMAN: KI-Framework steuert Fusionsplasma in Echtzeit(11.09.2026 um 10:46 Uhr)
📰 IT NachrichtenAutismus und ADHS mit früher Weichmacher-Exposition verknüpft(12.09.2026 um 09:04 Uhr)
🪟 Windows TippsMicrosoft bringt Emoji 17.0 auf Windows 11(31.08.2026 um 08:16 Uhr)
⚠️ Malware / Trojaner / VirenNeue Android-Malware schreit Sie an, wenn Sie nicht zahlen(11.09.2026 um 10:33 Uhr)
📰 IT Nachrichten7-max: Tool bringt 10 bis 20 Prozent mehr Tempo für Programme(12.09.2026 um 09:30 Uhr)
⚠️ Malware / Trojaner / VirenHandy: Wer diese App installiert hat, sollte sein Gerät besser zurücksetzen(11.09.2026 um 16:55 Uhr)
🔧 AI Nachrichten KI-Angriffe: Geheimdienste sollen neue Befugnisse erhalten(11.09.2026 um 11:00 Uhr)
🔧 AI Nachrichten Podcast: ChatGPT schwatzt Nutzern in Deutschland jetzt Werbung auf(28.08.2026 um 08:46 Uhr)
🐧 Linux TippsPACMAN: KI-Framework steuert Fusionsplasma in Echtzeit(11.09.2026 um 10:46 Uhr)
📰 IT NachrichtenAutismus und ADHS mit früher Weichmacher-Exposition verknüpft(12.09.2026 um 09:04 Uhr)
🪟 Windows TippsMicrosoft bringt Emoji 17.0 auf Windows 11(31.08.2026 um 08:16 Uhr)
⚠️ Malware / Trojaner / VirenNeue Android-Malware schreit Sie an, wenn Sie nicht zahlen(11.09.2026 um 10:33 Uhr)
📰 IT Nachrichten7-max: Tool bringt 10 bis 20 Prozent mehr Tempo für Programme(12.09.2026 um 09:30 Uhr)
⚠️ Malware / Trojaner / VirenHandy: Wer diese App installiert hat, sollte sein Gerät besser zurücksetzen(11.09.2026 um 16:55 Uhr)

🔧 Programmierung 🕛 vor 1 Jahr 8 Min Lesezeit
0

HTML2PDF.Lib: A melhor forma de converter HTML para PDF com .Net

↗ Quelle (dev.to)
🗣️ Stimme:


Para usar:



Instale o pacote...




CODE
dotnet add package Html2Pdf.Lib






E converta seu HTML para PDF.




CODE
using Html2Pdf.Lib;

var arguments = new Arguments().
.SetPageOrientation(PageOrientation.Landscape)
.SetPageSize(PageSize.A4);
var html = "<h1>Html to PDF</h1><p>Html to PDF converter</p>";
var pdf = Converter.FromHtml(html, arguments);
File.WriteAllBytes($"html2pdf.pdf", pdf);






É isso...






Quem nunca precisou gerar PDF a partir de um HTML?



Aliás, a gente só faz dessa forma porque é um .



Até hoje eu me questiono por que ainda usamos o PDF para compartilhamento de documentos. Já passou da hora de termos um formato aberto, e mais simples. Nada contra a Adobe, mas só quem precisa lidar com esse tipo de coisa, sabe o quanto o pâncreas dói.



Conversando com o onde ele mantém uma biblioteca que converte HTML para PDF.



Fui olhar com calma e vi que esse pacote utiliza uma outra lib chamada




Logo de cara eu pensei em migrar o projeto do HtmlToPDFCore para netstandard2.1, porém esbarrei em um grande problema: a lib Wkhtmltopdf.NetCore não suportava essa migração!



da lib Wkhtmltopdf.NetCore e logo de cara vi que o projeto foi descontinuado. Mesmo assim, naveguei entre o código para entender mais como as coisas funcionavam.

Percebi um grande uso de reflection, não que isso seja um grande problema, mas eu penso que é bom a gente evitar ao máximo isso, justamente para não termos problemas ao compilar nossas aplicações em AOT. Fiz um post que fala um pouco sobre isso e recomendo muito a leitura: passando inúmeros argumentos para efetuar a conversão.




Esse executável foi criado pelo time do QT e você pode ler mais sobre ele .


Não era pedir muito... sendo assim, resolvi criar uma nova biblioteca, atendendo esses três cenários. (Ok, são quatro, na e e sua sintaxe garbosa.



Usando o método FromRazorTemplate<T>, é possível gerarmos um PDF a partir de um template como esse:




CODE
public record Product(string Name, decimal Price);
public record Order(string CustomerName, string CustomerAddress, string CustomerPhoneNumber, List<Product> Products);

var razorTemplate =
"""
<!DOCTYPE html>
<html>
<head>
<title>Customer Details</title>
</head>
<body>
<h1>Customer Details</h1>
<p><strong>Name:</strong> @Model.CustomerName</p>
<p><strong>Address:</strong> @Model.CustomerAddress</p>
<p><strong>Phone Number:</strong> @Model.CustomerPhoneNumber</p>

<h2>Products (@Model.Products.Count)</h2>
@if(Model.Products.Any())
{
<table>
<thead>
<tr>
<th>Product Name</th>
<th>Price</th>
</tr>
</thead>
<tbody>
@foreach (var product in Model.Products)
{
<tr>
<td>@product.Name</td>
<td>@product.Price.ToString("C")</td>
</tr>
}
</tbody>
</table>
}
else
{
<p>No products found.</p>
}
</body>
</html>
""";

var order = new Order("Roberto Rivellino", "Rua São Jorge, 777", "+55 11 912345678", [
new("Product 1", 9.99m),
new("Product 2", 19.99m),
new("Product 3", 29.99m)
]);
var byteArrayRazorTemplate = Converter.FromRazorTemplate(razorTemplate, order, arguments);






Basicamente podemos utilizar o poder do csharp juntamente com o HTML, remetendo aos bons e velhos tempos do ASP 3 para gerarmos um PDF com valores dinâmicos. Não é incrível? Tirando a parte do ASP 3 é incrível sim!!!



Mas não é só isso! Muitas vezes precisamos gerar um lote de PDFs, dada uma lista de itens, por exemplo. Algo como, gerar informe de imposto de renda para um conjunto de pessoas.



E é pra isso que temos o método FromRazorTemplateBatch:




CODE
var byteArrayRazorTemplateList = Converter.FromRazorTemplateBatch(razorTemplate, [ order1, order2, order3, order4 ], arguments);
for (int i = 0; i < byteArrayRazorTemplateList.Count; i++)
{
var pdf = byteArrayRazorTemplateList.ElementAt(i);
...
}






E você deve estar se perguntando, como que o template com sintaxe razor é "compilado". Para tal feito, utilizo a lib Open Source e MIT .



Quero manter esse pacote sempre atualizado e espero que mais e mais pessoas nos ajude nessa tarefa.



É isso!



Até a próxima!!!

Vollständiger Original-Bericht
Ausführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf dev.to.
↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 0%
🟡 In Evaluierung 0%
🟢 Keine Auswirkung 0%
Spannende Innovation 0%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
1 Quelle
KI-Angriffe: Geheimdienste sollen neue Befugnisse erhalten
1 Quelle
Podcast: ChatGPT schwatzt Nutzern in Deutschland jetzt Werbung auf
1 Quelle
PACMAN: KI-Framework steuert Fusionsplasma in Echtzeit
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten HTML2PDF.Lib: A melhor forma de converter HTML para PDF com .Net

Thematisch verwandte Begriffe: HTML2PDFLib, melhor, forma, converter · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...