Skip to content

Commit dd5ffca

Browse files
committed
Finalizado a impressão em QuestPdf.
1 parent c553857 commit dd5ffca

10 files changed

Lines changed: 124 additions & 11 deletions

File tree

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
using QuestPDF.Fluent;
2+
using QuestPDF.Helpers;
3+
using QuestPDF.Infrastructure;
4+
5+
namespace OpenAC.Net.NFSe.DANFSe.QuestPdf.Commom;
6+
7+
internal class PrintConstant
8+
{
9+
public const string OpenSans = "Open Sans";
10+
public const string UbuntuCondensed = "Ubuntu";
11+
public const float BorderSize = 0.5f;
12+
public const float TitleSize = 2.3f;
13+
public static readonly TextStyle ItemTitleStyle;
14+
public static readonly TextStyle ItemContentStyle;
15+
public static readonly TextStyle BoxTitleStyle;
16+
public static readonly TextStyle BoxContentStyle;
17+
18+
static PrintConstant()
19+
{
20+
ItemTitleStyle = TextStyle.Default.FontSize(8)
21+
.FontColor(Colors.Black)
22+
.FontFamily(OpenSans);
23+
24+
ItemContentStyle = TextStyle.Default.FontSize(10).Bold()
25+
.FontColor(Colors.Black)
26+
.FontFamily(OpenSans)
27+
.Bold();
28+
29+
BoxTitleStyle = TextStyle.Default.FontSize(5)
30+
.FontColor(Colors.Black)
31+
.FontFamily(UbuntuCondensed);
32+
33+
BoxContentStyle = TextStyle.Default.FontSize(8)
34+
.FontColor(Colors.Black)
35+
.FontFamily(UbuntuCondensed)
36+
.Bold();
37+
}
38+
}
128 KB
Binary file not shown.
Binary file not shown.

src/OpenAC.Net.NFSe.DANFSe.QuestPdf/OpenAC.Net.NFSe.DANFSe.QuestPdf.csproj

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,11 @@
5858
<PackageReference Include="QuestPDF" Version="2024.7.3" />
5959
</ItemGroup>
6060

61+
<ItemGroup>
62+
<None Remove="Font\OpenSans-Regular.ttf" />
63+
<EmbeddedResource Include="Font\OpenSans-Regular.ttf" />
64+
<None Remove="Font\UbuntuCondensed-Regular.ttf" />
65+
<EmbeddedResource Include="Font\UbuntuCondensed-Regular.ttf" />
66+
</ItemGroup>
67+
6168
</Project>

src/OpenAC.Net.NFSe.DANFSe.QuestPdf/QuestPdfDANFSe.cs

Lines changed: 52 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,40 @@
33
using System.Linq;
44
using OpenAC.Net.DFe.Core.Common;
55
using OpenAC.Net.NFSe.Configuracao;
6+
using OpenAC.Net.NFSe.DANFSe.QuestPdf.Layout;
67
using OpenAC.Net.NFSe.Nota;
8+
using QuestPDF.Drawing;
79
using QuestPDF.Fluent;
10+
using QuestPDF.Infrastructure;
811
using QuestPDF.Previewer;
912

1013
namespace OpenAC.Net.NFSe.DANFSe.QuestPdf;
1114

15+
/// <summary>
16+
///
17+
/// </summary>
1218
public class QuestPdfDANFSe : OpenDANFSeBase<QuestPdfDANFSeOptions, FiltroDFeReport>
1319
{
1420
#region Constructors
1521

22+
static QuestPdfDANFSe()
23+
{
24+
FontManager.RegisterFontFromEmbeddedResource("OpenAC.Net.NFSe.DANFSe.QuestPdf.Font.OpenSans-Regular.ttf");
25+
FontManager.RegisterFontFromEmbeddedResource("OpenAC.Net.NFSe.DANFSe.QuestPdf.Font.UbuntuCondensed-Regular.ttf");
26+
}
27+
28+
/// <summary>
29+
///
30+
/// </summary>
31+
public QuestPdfDANFSe()
32+
{
33+
Configuracoes = new QuestPdfDANFSeOptions();
34+
}
35+
36+
/// <summary>
37+
///
38+
/// </summary>
39+
/// <param name="config"></param>
1640
public QuestPdfDANFSe(ConfigNFSe config)
1741
{
1842
Configuracoes = new QuestPdfDANFSeOptions(config);
@@ -22,25 +46,47 @@ public QuestPdfDANFSe(ConfigNFSe config)
2246

2347
#region Methods
2448

25-
public override async void Imprimir(NotaServico[] notas)
49+
/// <inheritdoc />
50+
public override void Imprimir(NotaServico[] notas)
2651
{
27-
var document = Document.Merge(notas.Select(x => new DANFSeDocument(Configuracoes, x)));
28-
await document.ShowInPreviewerAsync();
52+
var document = GerarPdf(notas);
53+
document.GeneratePdfAndShow();
2954
}
3055

56+
/// <inheritdoc />
3157
public override void ImprimirPDF(NotaServico[] notas)
3258
{
33-
throw new NotImplementedException();
59+
var document = GerarPdf(notas);
60+
document.GeneratePdf(Configuracoes.NomeArquivo);
3461
}
3562

63+
/// <inheritdoc />
3664
public override void ImprimirPDF(NotaServico[] notas, Stream stream)
3765
{
38-
throw new NotImplementedException();
66+
var document = GerarPdf(notas);
67+
document.GeneratePdf(stream);
3968
}
4069

41-
public override void ImprimirHTML(NotaServico[] notas) => new NotImplementedException();
70+
/// <inheritdoc />
71+
public override void ImprimirHTML(NotaServico[] notas) => throw new NotImplementedException();
4272

73+
/// <inheritdoc />
4374
public override void ImprimirHTML(NotaServico[] notas, Stream stream) => throw new NotImplementedException();
4475

76+
77+
private IDocument GerarPdf(NotaServico[] notas) => Document.Merge(notas.Select(GetDocument));
78+
79+
private IDocument GetDocument(NotaServico nota)
80+
{
81+
return Configuracoes.Layout switch
82+
{
83+
LayoutImpressao.ABRASF => new DANFSeABRASAFDocument(Configuracoes, nota),
84+
LayoutImpressao.ABRASF2 => new DANFSeABRASAFDocument(Configuracoes, nota),
85+
LayoutImpressao.DSF => new DANFSeABRASAFDocument(Configuracoes, nota),
86+
LayoutImpressao.Ginfes => new DANFSeABRASAFDocument(Configuracoes, nota),
87+
_ => throw new ArgumentOutOfRangeException()
88+
};
89+
}
90+
4591
#endregion Methods
4692
}

src/OpenAC.Net.NFSe.DANFSe.QuestPdf/QuestPdfDANFSeOptions.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,13 @@ public sealed class QuestPdfDANFSeOptions : DANFSeOptions<FiltroDFeReport>
1010
{
1111
#region Constructors
1212

13+
/// <summary>
14+
///
15+
/// </summary>
16+
public QuestPdfDANFSeOptions() : base(ConfigNFSe.Default)
17+
{
18+
}
19+
1320
/// <summary>
1421
///
1522
/// </summary>
@@ -19,4 +26,10 @@ public QuestPdfDANFSeOptions(ConfigNFSe configuracoes) : base(configuracoes)
1926
}
2027

2128
#endregion Constructors
29+
30+
#region Properties
31+
32+
public static QuestPdfDANFSeOptions Default { get; } = new(ConfigNFSe.Default);
33+
34+
#endregion Properties
2235
}

src/OpenAC.Net.NFSe.Demo/FormMain.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -301,9 +301,6 @@ private void btnFindCertificate_Click(object sender, EventArgs e)
301301
private void btnImprimirDANFSe_Click(object sender, EventArgs e)
302302
{
303303
GerarRps();
304-
var danfe = new QuestPdfDANFSe(openNFSe.Configuracoes);
305-
danfe.Imprimir(openNFSe.NotasServico.ToArray());
306-
307304
openNFSe.Imprimir(o => o.MostrarPreview = true);
308305
}
309306

@@ -588,9 +585,10 @@ private void GerarRps()
588585

589586
nfSe.Servico.ItemListaServico = itemListaServico;
590587
nfSe.Servico.CodigoTributacaoMunicipio = CodigoTributacaoMunicipio;
591-
nfSe.Servico.Discriminacao = "MANUTENCAO TÉCNICA / VOCÊ PAGOU APROXIMADAMENTE R$ 41,15 DE TRIBUTOS FEDERAIS, R$ 8,26 DE TRIBUTOS MUNICIPAIS, R$ 256,57 PELOS PRODUTOS/SERVICOS, FONTE: IBPT.";
588+
nfSe.Servico.Discriminacao = "MANUTENCAO TÉCNICA";
592589
nfSe.Servico.CodigoMunicipio = municipio.Codigo;
593590
nfSe.Servico.Municipio = municipio.Nome;
591+
nfSe.OutrasInformacoes = "VOCÊ PAGOU APROXIMADAMENTE R$ 41,15 DE TRIBUTOS FEDERAIS, R$ 8,26 DE TRIBUTOS MUNICIPAIS, R$ 256,57 PELOS PRODUTOS/SERVICOS, FONTE: IBPT.";
594592
if (municipio.Provedor.IsIn(NFSeProvider.SiapNet))
595593
{
596594
nfSe.Servico.ResponsavelRetencao = ResponsavelRetencao.Prestador;

src/OpenAC.Net.NFSe.Demo/Program.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using System.Text;
33
using System.Windows.Forms;
4+
using QuestPDF.Infrastructure;
45

56
namespace OpenAC.Net.NFSe.Demo;
67

@@ -12,6 +13,8 @@ internal static class Program
1213
[STAThread]
1314
static void Main()
1415
{
16+
QuestPDF.Settings.License = LicenseType.Community;
17+
1518
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
1619
Application.EnableVisualStyles();
1720
Application.SetCompatibleTextRenderingDefault(false);

src/OpenAC.Net.NFSe/Configuracao/ConfigNFSe.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ public ConfigNFSe()
5353
#endregion Constructor
5454

5555
#region Properties
56+
57+
public static ConfigNFSe Default { get; } = new();
5658

5759
/// <summary>
5860
/// Gets the prestado padrão.

src/OpenAC.Net.NFSe/OpenNFSe.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,13 @@ public sealed class OpenNFSe : OpenDisposable, IOpenLog
6060

6161
public OpenNFSe()
6262
{
63-
Configuracoes = new ConfigNFSe();
63+
Configuracoes = ConfigNFSe.Default;
64+
NotasServico = new NotaServicoCollection(Configuracoes);
65+
}
66+
67+
public OpenNFSe(ConfigNFSe configuracoes)
68+
{
69+
Configuracoes = configuracoes;
6470
NotasServico = new NotaServicoCollection(Configuracoes);
6571
}
6672

0 commit comments

Comments
 (0)