@ninepay/nfse-pdf-generator 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +132 -0
  3. package/assets/fonts/arial/ARIAL.TTF +0 -0
  4. package/assets/fonts/arial/ARIALBD 1.TTF +0 -0
  5. package/assets/fonts/arial/ARIALBD.TTF +0 -0
  6. package/assets/fonts/arial/ARIALBI 1.TTF +0 -0
  7. package/assets/fonts/arial/ARIALBI.TTF +0 -0
  8. package/assets/fonts/arial/ARIALBLACKITALIC.TTF +0 -0
  9. package/assets/fonts/arial/ARIALI 1.TTF +0 -0
  10. package/assets/fonts/arial/ARIALLGT.TTF +0 -0
  11. package/assets/fonts/arial/ARIALLGTITL.TTF +0 -0
  12. package/assets/fonts/arial/ARIALN.TTF +0 -0
  13. package/assets/fonts/arial/ARIALNB.TTF +0 -0
  14. package/assets/fonts/arial/ARIALNBI.TTF +0 -0
  15. package/assets/fonts/arial/ARIALNI.TTF +0 -0
  16. package/assets/fonts/arial/ARIBLK.TTF +0 -0
  17. package/assets/fonts/arial/ArialCE.ttf +0 -0
  18. package/assets/fonts/arial/ArialCEBoldItalic.ttf +0 -0
  19. package/assets/fonts/arial/ArialCEItalic.ttf +0 -0
  20. package/assets/fonts/arial/ArialCEMTBlack.ttf +0 -0
  21. package/assets/fonts/arial/ArialMdm.ttf +0 -0
  22. package/assets/fonts/arial/ArialMdmItl.ttf +0 -0
  23. package/assets/fonts/arial/arialceb.ttf +0 -0
  24. package/assets/logo-nfse.png +0 -0
  25. package/dist/NfsePdfGenerator.d.ts +14 -0
  26. package/dist/NfsePdfGenerator.d.ts.map +1 -0
  27. package/dist/NfsePdfGenerator.js +103 -0
  28. package/dist/NfsePdfGenerator.js.map +1 -0
  29. package/dist/index.d.ts +3 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +6 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/sections/dados-nfse.d.ts +3 -0
  34. package/dist/sections/dados-nfse.d.ts.map +1 -0
  35. package/dist/sections/dados-nfse.js +93 -0
  36. package/dist/sections/dados-nfse.js.map +1 -0
  37. package/dist/sections/emitente.d.ts +3 -0
  38. package/dist/sections/emitente.d.ts.map +1 -0
  39. package/dist/sections/emitente.js +61 -0
  40. package/dist/sections/emitente.js.map +1 -0
  41. package/dist/sections/header.d.ts +3 -0
  42. package/dist/sections/header.d.ts.map +1 -0
  43. package/dist/sections/header.js +86 -0
  44. package/dist/sections/header.js.map +1 -0
  45. package/dist/sections/informacoes-complementares.d.ts +3 -0
  46. package/dist/sections/informacoes-complementares.d.ts.map +1 -0
  47. package/dist/sections/informacoes-complementares.js +23 -0
  48. package/dist/sections/informacoes-complementares.js.map +1 -0
  49. package/dist/sections/intermediario.d.ts +2 -0
  50. package/dist/sections/intermediario.d.ts.map +1 -0
  51. package/dist/sections/intermediario.js +12 -0
  52. package/dist/sections/intermediario.js.map +1 -0
  53. package/dist/sections/servico.d.ts +3 -0
  54. package/dist/sections/servico.d.ts.map +1 -0
  55. package/dist/sections/servico.js +39 -0
  56. package/dist/sections/servico.js.map +1 -0
  57. package/dist/sections/tomador.d.ts +3 -0
  58. package/dist/sections/tomador.d.ts.map +1 -0
  59. package/dist/sections/tomador.js +61 -0
  60. package/dist/sections/tomador.js.map +1 -0
  61. package/dist/sections/totais-tributos.d.ts +3 -0
  62. package/dist/sections/totais-tributos.d.ts.map +1 -0
  63. package/dist/sections/totais-tributos.js +46 -0
  64. package/dist/sections/totais-tributos.js.map +1 -0
  65. package/dist/sections/tributacao-federal.d.ts +3 -0
  66. package/dist/sections/tributacao-federal.d.ts.map +1 -0
  67. package/dist/sections/tributacao-federal.js +43 -0
  68. package/dist/sections/tributacao-federal.js.map +1 -0
  69. package/dist/sections/tributacao-municipal.d.ts +3 -0
  70. package/dist/sections/tributacao-municipal.d.ts.map +1 -0
  71. package/dist/sections/tributacao-municipal.js +89 -0
  72. package/dist/sections/tributacao-municipal.js.map +1 -0
  73. package/dist/sections/valores.d.ts +3 -0
  74. package/dist/sections/valores.d.ts.map +1 -0
  75. package/dist/sections/valores.js +37 -0
  76. package/dist/sections/valores.js.map +1 -0
  77. package/dist/types.d.ts +108 -0
  78. package/dist/types.d.ts.map +1 -0
  79. package/dist/types.js +3 -0
  80. package/dist/types.js.map +1 -0
  81. package/dist/utils/code-mappings.d.ts +9 -0
  82. package/dist/utils/code-mappings.d.ts.map +1 -0
  83. package/dist/utils/code-mappings.js +83 -0
  84. package/dist/utils/code-mappings.js.map +1 -0
  85. package/dist/utils/drawing-utils.d.ts +4 -0
  86. package/dist/utils/drawing-utils.d.ts.map +1 -0
  87. package/dist/utils/drawing-utils.js +38 -0
  88. package/dist/utils/drawing-utils.js.map +1 -0
  89. package/dist/utils/font-manager.d.ts +12 -0
  90. package/dist/utils/font-manager.d.ts.map +1 -0
  91. package/dist/utils/font-manager.js +27 -0
  92. package/dist/utils/font-manager.js.map +1 -0
  93. package/dist/utils/formatters.d.ts +11 -0
  94. package/dist/utils/formatters.d.ts.map +1 -0
  95. package/dist/utils/formatters.js +94 -0
  96. package/dist/utils/formatters.js.map +1 -0
  97. package/dist/utils/layout-constants.d.ts +16 -0
  98. package/dist/utils/layout-constants.d.ts.map +1 -0
  99. package/dist/utils/layout-constants.js +19 -0
  100. package/dist/utils/layout-constants.js.map +1 -0
  101. package/dist/utils/xml-parser.d.ts +3 -0
  102. package/dist/utils/xml-parser.d.ts.map +1 -0
  103. package/dist/utils/xml-parser.js +140 -0
  104. package/dist/utils/xml-parser.js.map +1 -0
  105. package/package.json +63 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Arthur Fonseca
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,132 @@
1
+ # NFS-e PDF Generator
2
+
3
+ Gerador de PDF para NFS-e Nacional (Nota Fiscal de Serviços Eletrônica) seguindo o padrão da Nota Fiscal Brasil.
4
+
5
+ ## 📦 Instalação
6
+
7
+ ```bash
8
+ npm install @ninepay/nfse-pdf-generator
9
+ ```
10
+
11
+ ## 🚀 Uso Básico
12
+
13
+ ```typescript
14
+ import { NfsePdfGenerator } from '@ninepay/nfse-pdf-generator';
15
+ import fs from 'fs';
16
+
17
+ async function gerarPDF() {
18
+ // Criar instância do gerador
19
+ const generator = new NfsePdfGenerator();
20
+
21
+ // Configurar cabeçalho (opcional)
22
+ generator.setHeader({
23
+ danfseVersionText: 'DANFSE - Documento Auxiliar da Nota Fiscal de Serviços Eletrônica',
24
+ titleText: 'NFS-e Nacional',
25
+ nfseLogoPath: './assets/logo-nfse.png' // opcional
26
+ });
27
+
28
+ // Configurar dados do município (opcional)
29
+ generator.setMunicipality({
30
+ name: 'Prefeitura Municipal',
31
+ department: 'Secretaria de Fazenda',
32
+ phone: '(11) 1234-5678',
33
+ email: 'contato@prefeitura.gov.br',
34
+ imagePath: './assets/brasao.png' // opcional
35
+ });
36
+
37
+ // Fazer parse do XML
38
+ generator.parseXml('./caminho/para/nfse.xml');
39
+
40
+ // Gerar PDF
41
+ const pdfDoc = await generator.generate();
42
+
43
+ // Salvar em arquivo
44
+ pdfDoc.pipe(fs.createWriteStream('nota-fiscal.pdf'));
45
+ pdfDoc.end();
46
+ }
47
+
48
+ gerarPDF();
49
+ ```
50
+
51
+ ## 📖 Exemplo Completo
52
+
53
+ ```typescript
54
+ import { NfsePdfGenerator } from '@ninepay/nfse-pdf-generator';
55
+ import fs from 'fs';
56
+ import path from 'path';
57
+
58
+ async function main() {
59
+ try {
60
+ const generator = new NfsePdfGenerator(
61
+ 'Minha Empresa', // author
62
+ 'Sistema de NFS-e', // creator
63
+ 'Documento Auxiliar da NFS-e' // subject
64
+ );
65
+
66
+ // Configurações opcionais
67
+ generator
68
+ .setHeader({
69
+ danfseVersionText: 'DANFSE - Versão 1.0',
70
+ titleText: 'Nota Fiscal de Serviços Eletrônica',
71
+ nfseLogoPath: path.resolve(__dirname, '../assets/logo-nfse.png')
72
+ })
73
+ .setMunicipality({
74
+ name: 'Prefeitura de São Paulo',
75
+ department: 'Secretaria Municipal de Fazenda',
76
+ phone: '(11) 3113-9000',
77
+ email: 'atendimento@prefeitura.sp.gov.br',
78
+ imagePath: path.resolve(__dirname, '../assets/brasao-sp.png')
79
+ });
80
+
81
+ // Parse do XML da NFS-e
82
+ generator.parseXml('./nfse-exemplo.xml');
83
+
84
+ // Gerar PDF
85
+ const pdf = await generator.generate();
86
+
87
+ // Salvar arquivo
88
+ const outputPath = './output/nfse-gerada.pdf';
89
+ pdf.pipe(fs.createWriteStream(outputPath));
90
+ pdf.end();
91
+
92
+ console.log(`✅ PDF gerado com sucesso: ${outputPath}`);
93
+ } catch (error) {
94
+ console.error('❌ Erro ao gerar PDF:', error);
95
+ }
96
+ }
97
+
98
+ main();
99
+ ```
100
+
101
+ ## 🎨 Personalização
102
+
103
+ ### Cabeçalho (Header)
104
+
105
+ ```typescript
106
+ generator.setHeader({
107
+ danfseVersionText: string, // Texto da versão do DANFSE
108
+ titleText: string, // Título principal
109
+ nfseLogoPath: string // Caminho para logo da NFS-e (opcional)
110
+ });
111
+ ```
112
+
113
+ ### Dados do Município
114
+
115
+ ```typescript
116
+ generator.setMunicipality({
117
+ name: string, // Nome do município/prefeitura
118
+ department: string, // Departamento/secretaria
119
+ phone: string, // Telefone de contato
120
+ email: string, // Email de contato
121
+ imagePath: string // Caminho para brasão/logo (opcional)
122
+ });
123
+ ```
124
+
125
+ ## 📋 Requisitos
126
+
127
+ - Node.js >= 14
128
+ - TypeScript >= 4.5 (se usar TypeScript)
129
+
130
+ ## 📝 Licença
131
+
132
+ ISC
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,14 @@
1
+ import { HeaderData, MunicipalityHeaderData } from "./types";
2
+ export declare class NfsePdfGenerator {
3
+ private pdf;
4
+ private header;
5
+ private municipality;
6
+ private data?;
7
+ private font;
8
+ constructor(author?: string, creator?: string, subject?: string);
9
+ setHeader(data: HeaderData): this;
10
+ setMunicipality(data: MunicipalityHeaderData): this;
11
+ parseXml(xmlFilePath: string): this;
12
+ generate(): Promise<PDFKit.PDFDocument>;
13
+ }
14
+ //# sourceMappingURL=NfsePdfGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NfsePdfGenerator.d.ts","sourceRoot":"","sources":["../src/NfsePdfGenerator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAgB,MAAM,SAAS,CAAC;AAqB3E,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,GAAG,CAAqB;IAChC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,IAAI,CAAC,CAAe;IAC5B,OAAO,CAAC,IAAI,CAAW;gBAGrB,MAAM,SAAiB,EACvB,OAAO,SAAwB,EAC/B,OAAO,SAAgC;IA2BlC,SAAS,CAAC,IAAI,EAAE,UAAU;IAK1B,eAAe,CAAC,IAAI,EAAE,sBAAsB;IAK5C,QAAQ,CAAC,WAAW,EAAE,MAAM;IAKtB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;CAuGrD"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.NfsePdfGenerator = void 0;
7
+ const pdfkit_1 = __importDefault(require("pdfkit"));
8
+ const xml_parser_1 = require("./utils/xml-parser");
9
+ const formatters_1 = require("./utils/formatters");
10
+ const drawing_utils_1 = require("./utils/drawing-utils");
11
+ const header_1 = require("./sections/header");
12
+ const dados_nfse_1 = require("./sections/dados-nfse");
13
+ const emitente_1 = require("./sections/emitente");
14
+ const tomador_1 = require("./sections/tomador");
15
+ const intermediario_1 = require("./sections/intermediario");
16
+ const servico_1 = require("./sections/servico");
17
+ const tributacao_municipal_1 = require("./sections/tributacao-municipal");
18
+ const tributacao_federal_1 = require("./sections/tributacao-federal");
19
+ const valores_1 = require("./sections/valores");
20
+ const totais_tributos_1 = require("./sections/totais-tributos");
21
+ const informacoes_complementares_1 = require("./sections/informacoes-complementares");
22
+ const layout_constants_1 = require("./utils/layout-constants");
23
+ const font_manager_1 = require("./utils/font-manager");
24
+ class NfsePdfGenerator {
25
+ constructor(author = "NFS-e System", creator = "NFS-e PDF Generator", subject = "Documento Auxiliar da NFS-e") {
26
+ this.header = {};
27
+ this.municipality = {};
28
+ this.font = "Arial";
29
+ this.pdf = new pdfkit_1.default({
30
+ size: [
31
+ (0, formatters_1.mm)(layout_constants_1.LAYOUT_CONSTANTS.pageWidthMm),
32
+ (0, formatters_1.mm)(layout_constants_1.LAYOUT_CONSTANTS.pageHeightMm),
33
+ ],
34
+ layout: "portrait",
35
+ autoFirstPage: false,
36
+ margins: {
37
+ top: (0, formatters_1.mm)(layout_constants_1.LAYOUT_CONSTANTS.margin),
38
+ right: (0, formatters_1.mm)(layout_constants_1.LAYOUT_CONSTANTS.margin),
39
+ bottom: (0, formatters_1.mm)(layout_constants_1.LAYOUT_CONSTANTS.margin),
40
+ left: (0, formatters_1.mm)(layout_constants_1.LAYOUT_CONSTANTS.margin),
41
+ },
42
+ });
43
+ this.pdf.info.Author = author;
44
+ this.pdf.info.Creator = creator;
45
+ this.pdf.info.Subject = subject;
46
+ // Registrar fontes customizadas
47
+ (0, font_manager_1.registerFonts)(this.pdf);
48
+ this.pdf.font(this.font).fontSize(8);
49
+ }
50
+ setHeader(data) {
51
+ this.header = { ...this.header, ...data };
52
+ return this;
53
+ }
54
+ setMunicipality(data) {
55
+ this.municipality = { ...this.municipality, ...data };
56
+ return this;
57
+ }
58
+ parseXml(xmlFilePath) {
59
+ this.data = (0, xml_parser_1.parseXmlFile)(xmlFilePath);
60
+ return this;
61
+ }
62
+ async generate() {
63
+ if (!this.data)
64
+ throw new Error("Chame parseXml() antes de generate()");
65
+ this.pdf.addPage({
66
+ size: [
67
+ (0, formatters_1.mm)(layout_constants_1.LAYOUT_CONSTANTS.pageWidthMm),
68
+ (0, formatters_1.mm)(layout_constants_1.LAYOUT_CONSTANTS.pageHeightMm),
69
+ ],
70
+ margins: {
71
+ top: (0, formatters_1.mm)(layout_constants_1.LAYOUT_CONSTANTS.margin),
72
+ right: (0, formatters_1.mm)(layout_constants_1.LAYOUT_CONSTANTS.margin),
73
+ bottom: (0, formatters_1.mm)(layout_constants_1.LAYOUT_CONSTANTS.margin),
74
+ left: (0, formatters_1.mm)(layout_constants_1.LAYOUT_CONSTANTS.margin),
75
+ },
76
+ });
77
+ (0, header_1.renderHeader)(this.pdf, this.header, this.municipality, layout_constants_1.LAYOUT_CONSTANTS.margin, this.font);
78
+ (0, drawing_utils_1.addHorizontalLine)(this.pdf, layout_constants_1.LAYOUT_CONSTANTS.pageWidthMm, layout_constants_1.LAYOUT_CONSTANTS.margin);
79
+ await (0, dados_nfse_1.renderDadosNfse)(this.pdf, this.data, this.font);
80
+ (0, drawing_utils_1.addHorizontalLine)(this.pdf, layout_constants_1.LAYOUT_CONSTANTS.pageWidthMm, layout_constants_1.LAYOUT_CONSTANTS.margin);
81
+ (0, emitente_1.renderEmitente)(this.pdf, this.data, this.font);
82
+ (0, drawing_utils_1.addHorizontalLine)(this.pdf, layout_constants_1.LAYOUT_CONSTANTS.pageWidthMm, layout_constants_1.LAYOUT_CONSTANTS.margin);
83
+ (0, tomador_1.renderTomador)(this.pdf, this.data, this.font);
84
+ (0, drawing_utils_1.addHorizontalLine)(this.pdf, layout_constants_1.LAYOUT_CONSTANTS.pageWidthMm, layout_constants_1.LAYOUT_CONSTANTS.margin);
85
+ (0, intermediario_1.renderIntermediario)(this.pdf);
86
+ (0, drawing_utils_1.addHorizontalLine)(this.pdf, layout_constants_1.LAYOUT_CONSTANTS.pageWidthMm, layout_constants_1.LAYOUT_CONSTANTS.margin);
87
+ (0, servico_1.renderServico)(this.pdf, this.data, this.font);
88
+ (0, drawing_utils_1.addHorizontalLine)(this.pdf, layout_constants_1.LAYOUT_CONSTANTS.pageWidthMm, layout_constants_1.LAYOUT_CONSTANTS.margin);
89
+ (0, tributacao_municipal_1.renderTributacaoMunicipal)(this.pdf, this.data, this.font);
90
+ (0, drawing_utils_1.addHorizontalLine)(this.pdf, layout_constants_1.LAYOUT_CONSTANTS.pageWidthMm, layout_constants_1.LAYOUT_CONSTANTS.margin);
91
+ (0, tributacao_federal_1.renderTributacaoFederal)(this.pdf, this.data, this.font);
92
+ (0, drawing_utils_1.addHorizontalLine)(this.pdf, layout_constants_1.LAYOUT_CONSTANTS.pageWidthMm, layout_constants_1.LAYOUT_CONSTANTS.margin);
93
+ (0, valores_1.renderValores)(this.pdf, this.data, this.font);
94
+ (0, drawing_utils_1.addHorizontalLine)(this.pdf, layout_constants_1.LAYOUT_CONSTANTS.pageWidthMm, layout_constants_1.LAYOUT_CONSTANTS.margin);
95
+ (0, totais_tributos_1.renderTotaisTributos)(this.pdf, this.data);
96
+ (0, drawing_utils_1.addHorizontalLine)(this.pdf, layout_constants_1.LAYOUT_CONSTANTS.pageWidthMm, layout_constants_1.LAYOUT_CONSTANTS.margin);
97
+ (0, informacoes_complementares_1.renderInformacoesComplementares)(this.pdf, this.data, this.font);
98
+ (0, drawing_utils_1.drawDocumentBorder)(this.pdf, layout_constants_1.LAYOUT_CONSTANTS.pageWidthMm, layout_constants_1.LAYOUT_CONSTANTS.pageHeightMm, layout_constants_1.LAYOUT_CONSTANTS.margin);
99
+ return this.pdf;
100
+ }
101
+ }
102
+ exports.NfsePdfGenerator = NfsePdfGenerator;
103
+ //# sourceMappingURL=NfsePdfGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NfsePdfGenerator.js","sourceRoot":"","sources":["../src/NfsePdfGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { NfsePdfGenerator } from "./NfsePdfGenerator";
2
+ export type { MunicipalityInfo } from "./types";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NfsePdfGenerator = void 0;
4
+ var NfsePdfGenerator_1 = require("./NfsePdfGenerator");
5
+ Object.defineProperty(exports, "NfsePdfGenerator", { enumerable: true, get: function () { return NfsePdfGenerator_1.NfsePdfGenerator; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA"}
@@ -0,0 +1,3 @@
1
+ import { NfseCoreData } from "../types";
2
+ export declare function renderDadosNfse(pdf: PDFKit.PDFDocument, data: NfseCoreData, font: string): Promise<void>;
3
+ //# sourceMappingURL=dados-nfse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dados-nfse.d.ts","sourceRoot":"","sources":["../../src/sections/dados-nfse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAKxC,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,CAAC,WAAW,EACvB,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAuGf"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.renderDadosNfse = renderDadosNfse;
4
+ const formatters_1 = require("../utils/formatters");
5
+ const drawing_utils_1 = require("../utils/drawing-utils");
6
+ const layout_constants_1 = require("../utils/layout-constants");
7
+ async function renderDadosNfse(pdf, data, font) {
8
+ const { col1X, col2X, col3X, col4X, col1W, col2W, col3W, col4W } = layout_constants_1.LAYOUT_CONSTANTS.columns;
9
+ const y0 = (0, formatters_1.pxToMm)(pdf.y - 6);
10
+ pdf
11
+ .font("Arial-Semibold")
12
+ .fontSize(8)
13
+ .text("Chave de Acesso da NFS-e", (0, formatters_1.mm)(col1X), (0, formatters_1.mm)(y0), {
14
+ width: (0, formatters_1.mm)(col1W + col2W + col3W + col4W),
15
+ align: "left",
16
+ });
17
+ pdf
18
+ .font(font)
19
+ .fontSize(8)
20
+ .text(data.chaveAcesso, (0, formatters_1.mm)(col1X), (0, formatters_1.mm)(y0 + 3), {
21
+ width: (0, formatters_1.mm)(col1W + col2W + col3W + col4W),
22
+ align: "left",
23
+ });
24
+ const y1 = y0 + 8;
25
+ pdf.font("Arial-Semibold").fontSize(8);
26
+ pdf.text("Número da NFS-e", (0, formatters_1.mm)(col1X), (0, formatters_1.mm)(y1), {
27
+ width: (0, formatters_1.mm)(col1W),
28
+ align: "left",
29
+ });
30
+ pdf.text("Competência da NFS-e", (0, formatters_1.mm)(col2X), (0, formatters_1.mm)(y1), {
31
+ width: (0, formatters_1.mm)(col2W),
32
+ align: "left",
33
+ });
34
+ pdf.text("Data e Hora da emissão da NFS-e", (0, formatters_1.mm)(col3X), (0, formatters_1.mm)(y1), {
35
+ width: (0, formatters_1.mm)(col3W),
36
+ align: "left",
37
+ });
38
+ const y2 = y1 + 3;
39
+ pdf.font(font).fontSize(8);
40
+ pdf.text(data.numeroNfse, (0, formatters_1.mm)(col1X), (0, formatters_1.mm)(y2), {
41
+ width: (0, formatters_1.mm)(col1W),
42
+ align: "left",
43
+ });
44
+ pdf.text(data.competenciaDps, (0, formatters_1.mm)(col2X), (0, formatters_1.mm)(y2), {
45
+ width: (0, formatters_1.mm)(col2W),
46
+ align: "left",
47
+ });
48
+ pdf.text(data.dataEmissaoNfse, (0, formatters_1.mm)(col3X), (0, formatters_1.mm)(y2), {
49
+ width: (0, formatters_1.mm)(col3W),
50
+ align: "left",
51
+ });
52
+ const y3 = y2 + 6;
53
+ pdf.font("Arial-Semibold").fontSize(8);
54
+ pdf.text("Número da DPS", (0, formatters_1.mm)(col1X), (0, formatters_1.mm)(y3), {
55
+ width: (0, formatters_1.mm)(col1W),
56
+ align: "left",
57
+ });
58
+ pdf.text("Série da DPS", (0, formatters_1.mm)(col2X), (0, formatters_1.mm)(y3), {
59
+ width: (0, formatters_1.mm)(col2W),
60
+ align: "left",
61
+ });
62
+ pdf.text("Data e Hora da emissão da DPS", (0, formatters_1.mm)(col3X), (0, formatters_1.mm)(y3), {
63
+ width: (0, formatters_1.mm)(col3W),
64
+ align: "left",
65
+ });
66
+ const y4 = y3 + 4;
67
+ pdf.font(font).fontSize(8);
68
+ pdf.text(data.numeroDps, (0, formatters_1.mm)(col1X), (0, formatters_1.mm)(y4), {
69
+ width: (0, formatters_1.mm)(col1W),
70
+ align: "left",
71
+ });
72
+ pdf.text(data.serieDps, (0, formatters_1.mm)(col2X), (0, formatters_1.mm)(y4), {
73
+ width: (0, formatters_1.mm)(col2W),
74
+ align: "left",
75
+ });
76
+ pdf.text(data.dataEmissaoDps, (0, formatters_1.mm)(col3X), (0, formatters_1.mm)(y4), {
77
+ width: (0, formatters_1.mm)(col3W),
78
+ align: "left",
79
+ });
80
+ pdf.font(font).fontSize(6);
81
+ const msg = "A autenticidade desta NFS-e pode ser verificada pela leitura deste código QR ou pela consulta da chave de acesso no portal nacional da NFS-e";
82
+ pdf.text(msg, (0, formatters_1.mm)(col4X), (0, formatters_1.mm)(y4 - 4), {
83
+ width: (0, formatters_1.mm)(col4W - 1),
84
+ align: "left",
85
+ });
86
+ pdf.y = (0, formatters_1.mm)(y4 + 8);
87
+ const qrUrl = `https://www.nfse.gov.br/ConsultaPublica?tpc=1&chave=${data.chaveAcesso}`;
88
+ const qrSize = 15;
89
+ const qrX = col4X + col4W / 2 - qrSize / 2 - 1;
90
+ const qrY = y0 + 0.8;
91
+ await (0, drawing_utils_1.drawQrCode)(pdf, qrUrl, qrX, qrY, qrSize);
92
+ }
93
+ //# sourceMappingURL=dados-nfse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dados-nfse.js","sourceRoot":"","sources":["../../src/sections/dados-nfse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { NfseCoreData } from "../types";
2
+ export declare function renderEmitente(pdf: PDFKit.PDFDocument, data: NfseCoreData, font: string): void;
3
+ //# sourceMappingURL=emitente.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emitente.d.ts","sourceRoot":"","sources":["../../src/sections/emitente.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAQxC,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,CAAC,WAAW,EACvB,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,MAAM,GACX,IAAI,CAqEN"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.renderEmitente = renderEmitente;
4
+ const formatters_1 = require("../utils/formatters");
5
+ const code_mappings_1 = require("../utils/code-mappings");
6
+ const layout_constants_1 = require("../utils/layout-constants");
7
+ function renderEmitente(pdf, data, font) {
8
+ const { col1X, col2X, col3X, col4X, col1W, col2W, col3W, col4W } = layout_constants_1.LAYOUT_CONSTANTS.columns;
9
+ const emit = data.emitente;
10
+ const y0 = (0, formatters_1.pxToMm)(pdf.y - 8);
11
+ pdf.font("Arial-Semibold").fontSize(8);
12
+ pdf.text("EMITENTE DA NFS-e", (0, formatters_1.mm)(col1X), (0, formatters_1.mm)(y0), { width: (0, formatters_1.mm)(col1W) });
13
+ pdf.text("CNPJ / CPF / NIF", (0, formatters_1.mm)(col2X), (0, formatters_1.mm)(y0), { width: (0, formatters_1.mm)(col2W) });
14
+ pdf.text("Inscrição Municipal", (0, formatters_1.mm)(col3X), (0, formatters_1.mm)(y0), { width: (0, formatters_1.mm)(col3W) });
15
+ pdf.text("Telefone", (0, formatters_1.mm)(col4X), (0, formatters_1.mm)(y0), { width: (0, formatters_1.mm)(col4W) });
16
+ const y1 = y0 + 5;
17
+ pdf.font(font).fontSize(8);
18
+ pdf.text("Prestador do Serviço", (0, formatters_1.mm)(col1X), (0, formatters_1.mm)(y1), { width: (0, formatters_1.mm)(col1W) });
19
+ pdf.text(emit.cnpj, (0, formatters_1.mm)(col2X), (0, formatters_1.mm)(y1), { width: (0, formatters_1.mm)(col2W) });
20
+ pdf.text(emit.inscricaoMunicipal, (0, formatters_1.mm)(col3X), (0, formatters_1.mm)(y1), { width: (0, formatters_1.mm)(col3W) });
21
+ pdf.text(emit.fone, (0, formatters_1.mm)(col4X), (0, formatters_1.mm)(y1), { width: (0, formatters_1.mm)(col4W) });
22
+ const y2 = y1 + 5;
23
+ pdf.font("Arial-Semibold").fontSize(8);
24
+ pdf.text("Nome / Nome Empresarial", (0, formatters_1.mm)(col1X), (0, formatters_1.mm)(y2), {
25
+ width: (0, formatters_1.mm)(col1W),
26
+ });
27
+ pdf.text("E-mail", (0, formatters_1.mm)(col3X), (0, formatters_1.mm)(y2), { width: (0, formatters_1.mm)(col3W) });
28
+ const y3 = y2 + 4;
29
+ pdf.font(font).fontSize(8);
30
+ pdf.text(emit.nome, (0, formatters_1.mm)(col1X), (0, formatters_1.mm)(y3), { width: (0, formatters_1.mm)(col1W + col2W) });
31
+ pdf.text(emit.email, (0, formatters_1.mm)(col3X), (0, formatters_1.mm)(y3), { width: (0, formatters_1.mm)(col3W) });
32
+ const y4 = y3 + 5;
33
+ pdf.font("Arial-Semibold").fontSize(8);
34
+ pdf.text("Endereço", (0, formatters_1.mm)(col1X), (0, formatters_1.mm)(y4), { width: (0, formatters_1.mm)(col1W) });
35
+ pdf.text("Município", (0, formatters_1.mm)(col3X), (0, formatters_1.mm)(y4), { width: (0, formatters_1.mm)(col3W) });
36
+ pdf.text("CEP", (0, formatters_1.mm)(col4X), (0, formatters_1.mm)(y4), { width: (0, formatters_1.mm)(col4W) });
37
+ const endereco = `${emit.logradouro}, ${emit.numero}, ${emit.bairro}`;
38
+ const y5 = y4 + 4;
39
+ pdf.font(font).fontSize(8);
40
+ pdf.text(endereco, (0, formatters_1.mm)(col1X), (0, formatters_1.mm)(y5), { width: (0, formatters_1.mm)(col1W + col2W) });
41
+ pdf.text(`${data.localEmissao} - ${emit.uf}`, (0, formatters_1.mm)(col3X), (0, formatters_1.mm)(y5), {
42
+ width: (0, formatters_1.mm)(col3W),
43
+ });
44
+ pdf.text(emit.cep, (0, formatters_1.mm)(col4X), (0, formatters_1.mm)(y5), { width: (0, formatters_1.mm)(col4W) });
45
+ const y6 = y5 + 5;
46
+ pdf.font("Arial-Semibold").fontSize(8);
47
+ pdf.text("Simples Nacional na Data de Competência", (0, formatters_1.mm)(col1X), (0, formatters_1.mm)(y6), {
48
+ width: (0, formatters_1.mm)(col1W + 10),
49
+ });
50
+ pdf.text("Regime de Apuração Tributária pelo SN", (0, formatters_1.mm)(col3X), (0, formatters_1.mm)(y6), {
51
+ width: (0, formatters_1.mm)(col3W + col4W),
52
+ });
53
+ const y7 = y6 + 3;
54
+ pdf.font(font).fontSize(8);
55
+ pdf.text((0, code_mappings_1.optanteSimplesNacional)(emit.optanteSimplesNacional), (0, formatters_1.mm)(col1X), (0, formatters_1.mm)(y7), {
56
+ width: (0, formatters_1.mm)(col1W),
57
+ });
58
+ pdf.text((0, code_mappings_1.regimeApuracaoTributariaSN)(emit.regimeApuracaoTributariaSN), (0, formatters_1.mm)(col3X), (0, formatters_1.mm)(y7), { width: (0, formatters_1.mm)(col3W + col4W) });
59
+ pdf.y = (0, formatters_1.mm)(y7 + 6);
60
+ }
61
+ //# sourceMappingURL=emitente.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emitente.js","sourceRoot":"","sources":["../../src/sections/emitente.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { HeaderData, MunicipalityHeaderData } from "../types";
2
+ export declare function renderHeader(pdf: PDFKit.PDFDocument, header: HeaderData, municipality: MunicipalityHeaderData, margin: number, font: string): void;
3
+ //# sourceMappingURL=header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../src/sections/header.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAG9D,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,CAAC,WAAW,EACvB,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,sBAAsB,EACpC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX,IAAI,CAsFN"}