OpenAC.Net.NFSe.DANFSe.PDFSharp
1.0.0
Prefix Reserved
dotnet add package OpenAC.Net.NFSe.DANFSe.PDFSharp --version 1.0.0
NuGet\Install-Package OpenAC.Net.NFSe.DANFSe.PDFSharp -Version 1.0.0
<PackageReference Include="OpenAC.Net.NFSe.DANFSe.PDFSharp" Version="1.0.0" />
<PackageVersion Include="OpenAC.Net.NFSe.DANFSe.PDFSharp" Version="1.0.0" />
<PackageReference Include="OpenAC.Net.NFSe.DANFSe.PDFSharp" />
paket add OpenAC.Net.NFSe.DANFSe.PDFSharp --version 1.0.0
#r "nuget: OpenAC.Net.NFSe.DANFSe.PDFSharp, 1.0.0"
#:package OpenAC.Net.NFSe.DANFSe.PDFSharp@1.0.0
#addin nuget:?package=OpenAC.Net.NFSe.DANFSe.PDFSharp&version=1.0.0
#tool nuget:?package=OpenAC.Net.NFSe.DANFSe.PDFSharp&version=1.0.0
OpenAC.Net.NFSe.DANFSe.PDFSharp
Biblioteca .NET para geração, visualização e exportação do DANFSe (Documento Auxiliar da NFS-e) em PDF utilizando PDFsharp 6.x e QRCoder.
- 100% Open Source (MIT): Sem custos de licença, limites de uso ou marcas d'água comerciais.
- Native AOT & Multiplataforma: Fontes TrueType (LiberationSans) embutidas nos recursos do assembly, garantindo compatibilidade imediata com Linux (Debian, Ubuntu, Alpine, Docker, Distroless), Windows e macOS sem necessidade de instalar fontes no sistema operacional.
- Fiel ao padrão ACBr: Convertido a partir do modelo de referência em Pascal (
ACBr.DANFSeX.FPDFA4Retrato.pas).
📦 Instalação
Adicione o pacote via NuGet:
.NET CLI:
dotnet add package OpenAC.Net.NFSe.DANFSe.PDFSharp
Package Manager Console:
Install-Package OpenAC.Net.NFSe.DANFSe.PDFSharp
PackageReference:
<PackageReference Include="OpenAC.Net.NFSe.DANFSe.PDFSharp" Version="1.0.0" />
🚀 Como Usar
1. Utilizando Métodos de Extensão no OpenNFSe
A forma mais simples e direta de gerar o DANFSe é através dos métodos de extensão no próprio objeto OpenNFSe:
using OpenAC.Net.NFSe;
using OpenAC.Net.NFSe.DANFSe.PDFSharp.Extensions;
var openNFSe = new OpenNFSe();
// ... Carregar ou emitir notas ...
// 1. Exportar diretamente para arquivo PDF
openNFSe.ImprimirPDF(@"C:\NFSe\Danfse.pdf", opt =>
{
opt.CabecalhoLinha1 = "PREFEITURA MUNICIPAL DE SÃO PAULO";
opt.CabecalhoLinha2 = "SECRETARIA MUNICIPAL DA FAZENDA";
opt.ExibirQRCode = true;
opt.Homologacao = false;
});
// 2. Exportar para uma Stream (ex: download em Controller / Minimal API ASP.NET Core)
using var ms = new MemoryStream();
openNFSe.ImprimirPDF(ms);
byte[] pdfBytes = ms.ToArray();
// 3. Obter bytes diretamente
byte[] bytes = openNFSe.GerarPDF();
// 4. Imprimir / Abrir no visualizador padrão
openNFSe.Imprimir(opt => opt.MostrarPreview = true);
2. Utilizando o Componente OpenDANFSePDFSharp Diretamente
Você também pode instanciar o gerador diretamente com objetos NotaServico:
using OpenAC.Net.NFSe.DANFSe.PDFSharp;
using OpenAC.Net.NFSe.DANFSe.PDFSharp.Configuracao;
using OpenAC.Net.NFSe.Nota;
var options = new DANFSePDFSharpOptions
{
CabecalhoLinha1 = "PREFEITURA MUNICIPAL",
CabecalhoLinha2 = "SECRETARIA DE FINANÇAS",
ExibirQRCode = true,
LogoPrefeituraPath = @"C:\Imagens\brasao_prefeitura.png",
LogoPrestadorPath = @"C:\Imagens\logo_empresa.png"
};
var danfse = new OpenDANFSePDFSharp(options);
// Gerar a partir de uma ou várias notas
danfse.ImprimirPDF(notaServico, @"C:\NFSe\Nota.pdf");
3. Utilizando Métodos Estáticos Rápidos
// Salvar em arquivo
OpenDANFSePDFSharp.GerarPDF(notaServico, @"C:\NFSe\Nota.pdf");
// Salvar em Stream
using var ms = new MemoryStream();
OpenDANFSePDFSharp.GerarPDF(notaServico, ms);
// Obter bytes
byte[] pdf = OpenDANFSePDFSharp.GerarPDF(notaServico);
⚙️ Opções de Configuração (DANFSePDFSharpOptions)
| Propriedade | Tipo | Padrão | Descrição |
|---|---|---|---|
CabecalhoLinha1 |
string |
"PREFEITURA MUNICIPAL" |
Texto da 1ª linha do cabeçalho da prefeitura. |
CabecalhoLinha2 |
string |
"SECRETARIA MUNICIPAL DE FINANÇAS" |
Texto da 2ª linha do cabeçalho da prefeitura. |
LogoPrefeituraBytes |
byte[]? |
null |
Logotipo da prefeitura / brasão em bytes. |
LogoPrefeituraPath |
string? |
null |
Caminho do arquivo de imagem do logotipo da prefeitura. |
LogoPrestadorBytes |
byte[]? |
null |
Logotipo do prestador em bytes. |
LogoPrestadorPath |
string? |
null |
Caminho do arquivo de imagem do logotipo do prestador. |
ExibirQRCode |
bool |
true |
Exibe o QR Code no cabeçalho se houver link da NFS-e. |
Homologacao |
bool |
false |
Adiciona marca d'água de ambiente de homologação (SEM VALOR FISCAL). |
Cancelada |
bool |
false |
Adiciona marca d'água de nota cancelada (NOTA CANCELADA). |
QuebraDeLinha |
string |
"" |
Caractere ou delimitador especial para quebra de linhas na discriminação. |
MensagemRodape |
string |
"" |
Mensagem do rodapé (pode usar \| para separar Esquerda\|Centro\|Direita). |
MargemHorizontalMm |
double |
8.0 |
Margem lateral em milímetros. |
MargemVerticalMm |
double |
8.0 |
Margem superior/inferior em milímetros. |
Seguranca |
DANFSeSegurancaConfig |
... |
Opções de senha e restrições de segurança do PDF. |
🔒 Criptografia e Proteção do PDF com Senha
Permite definir senhas de abertura e permissões granulares:
var options = new DANFSePDFSharpOptions
{
Seguranca = new DANFSeSegurancaConfig
{
SenhaUsuario = "123456", // Senha exigida para abrir e visualizar
SenhaProprietario = "adminMaster", // Senha do proprietário / administrador
PermitirImpressao = true, // Permite impressão
PermitirModificacao = false, // Bloqueia alterações
PermitirCopiarConteudo = false // Bloqueia cópia de texto
}
};
openNFSe.ImprimirPDF(@"C:\NFSe\Danfse_Protegido.pdf", opt => opt.Seguranca = options.Seguranca);
📄 Licença
Este projeto é distribuído sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 is compatible. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 is compatible. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.6.2
- OpenAC.Net.NFSe (>= 1.8.0)
- PDFsharp (>= 6.2.4)
- QRCoder (>= 1.8.0)
-
.NETFramework 4.8
- OpenAC.Net.NFSe (>= 1.8.0)
- PDFsharp (>= 6.2.4)
- QRCoder (>= 1.8.0)
-
.NETStandard 2.0
- OpenAC.Net.NFSe (>= 1.8.0)
- PDFsharp (>= 6.2.4)
- QRCoder (>= 1.8.0)
-
net10.0
- OpenAC.Net.NFSe (>= 1.8.0)
- PDFsharp (>= 6.2.4)
- QRCoder (>= 1.8.0)
-
net8.0
- OpenAC.Net.NFSe (>= 1.8.0)
- PDFsharp (>= 6.2.4)
- QRCoder (>= 1.8.0)
-
net9.0
- OpenAC.Net.NFSe (>= 1.8.0)
- PDFsharp (>= 6.2.4)
- QRCoder (>= 1.8.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 0 | 8/21/2026 |