Skip to content

Unimake/Unimake.Wkhtmltopdf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Unimake.Wkhtmltopdf

Este projeto implementa uma versão mais simplificada da biblioteca https://github.com/fpanaccia/Wkhtmltopdf.NetCore para converter html em pdf, apenas para windows.
Obrigado fpanaccia por compartilhar a versão completa para .NET
Utiliza o projeto https://wkhtmltopdf.org/ para a conversão.

Como utilizar

Instale o pacote https://www.nuget.org/packages/Unimake.Wkhtmltopdf

Os arquivos da biblioteca Wkhtmltopdf devem estar disponibilizados no seu projeto na seguinte estrutura

    ├── Example.sln
    |   ├── Example.csproj
    |   ├──── Wkhtmltox
    |   |     ├── win-x64 <<-- Este diretório é obrigatório
    |   |     |   ├── wkhtmltopdf.exe
    |   |     |   └── wkhtmltox.dll

Para baixar as versões utilizadas na biblioteca, baixe em:
wkhtmltopdf.exe
wkhtmltox.dll

Para baixar versões mais atuais: https://wkhtmltopdf.org/downloads.html

Estes arquivos devem ser incluídos na sua solução e marcados como "Copy Always" para serem copiados para o diretório de build.
Se publicados em um servidor web, os mesmos deverão ser enviados juntamente com o pacote de distribuição.
O diretório "win-x64" é obrigatório

Esta estrutrura de arquivos, é a estrutrua padrão desta biblioteca, caso queira mudar, passe a configuração através das opções definidas em ConvertOptions.WkhtmltoxPath

Exemplo de código com biblioteca e diretórios alterados

var html = "<p>This is a paragraph.</p>";
var options = new ConvertOptions
{
	WkhtmltoxPath = "libs\\MyLibFolder"
};

var bytes = new HtmlToPdfConverter(options).GetPDFAsByteArray(html);
Assert.NotNull(bytes);

Recuperando um array de bytes e salvando em um arquivo .pdf

[Fact]
public void GetPDFAsByteArray()
{
	var html = "<p>This is a paragraph.</p>";
	var bytes = new HtmlToPdfConverter().GetPDFAsByteArray(html);
	Assert.NotNull(bytes);

	var fi = new FileInfo("test.pdf");

	if(fi.Exists)
	{
		fi.Delete();
	}

	File.WriteAllBytes(fi.FullName, bytes);

	//Open pdf file
	_ = Process.Start(new ProcessStartInfo
	{
		UseShellExecute = true,
		FileName = fi.FullName
	});
}

Recuperando uma string padrão Base64

[Fact]
public void GetPDFAsBase64()
{
	var html = "<p>This is a paragraph.</p>";
	var pdf = new HtmlToPdfConverter().GetPDFAsBase64(html);
	Assert.NotNull(pdf);

	//save to file
	var bytes = Convert.FromBase64String(pdf);
	Assert.NotNull(bytes);

	var fi = new FileInfo("test.pdf");

	if(fi.Exists)
	{
		fi.Delete();
	}

	File.WriteAllBytes(fi.FullName, bytes);

	//Open pdf file
	_ = Process.Start(new ProcessStartInfo
	{
		UseShellExecute = true,
		FileName = fi.FullName
	});
}

Veja outros exemplos de uso em Unimake.Wkhtmltopdf.Test

About

Converte html em pdf

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages