react-pdf-levelup 1.0.4

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 (70) hide show
  1. package/README.md +40 -0
  2. package/fn/aggAlias.js +21 -0
  3. package/fn/moveComponents.js +129 -0
  4. package/fn/postinstall.js +66 -0
  5. package/fn/upVersion.js +12 -0
  6. package/fn/updateTsconfig.js +10 -0
  7. package/next.config.mjs +6 -0
  8. package/package.json +39 -0
  9. package/public/bg-login.jpg +0 -0
  10. package/public/codigo_guardado.js +1 -0
  11. package/public/css/style.css +751 -0
  12. package/public/dboard/logo.png +0 -0
  13. package/public/favicon.ico +0 -0
  14. package/public/fonts/TimesNewerRoman-Bold.otf +0 -0
  15. package/public/fonts/TimesNewerRoman-BoldItalic.otf +0 -0
  16. package/public/fonts/TimesNewerRoman-Italic.otf +0 -0
  17. package/public/fonts/TimesNewerRoman-Regular.otf +0 -0
  18. package/public/header-pdf.jpg +0 -0
  19. package/public/home/bgHome.jpg +0 -0
  20. package/public/home/bgHome2.jpg +0 -0
  21. package/public/home/download.jpg +0 -0
  22. package/public/home/undraw_elements_re_25t9.svg +1 -0
  23. package/public/home/undraw_project_completed_re_jr7u.svg +1 -0
  24. package/public/home/undraw_shared_goals_re_jvqd.svg +1 -0
  25. package/public/home/undraw_spread_love_re_v3cl.svg +1 -0
  26. package/public/home/undraw_target_re_fi8j.svg +1 -0
  27. package/public/home/undraw_visionary_technology_re_jfp7.svg +1 -0
  28. package/public/logo.png +0 -0
  29. package/public/marca/logo.svg +1 -0
  30. package/src/components/PDF/components/DocumentoTemplate.tsx +140 -0
  31. package/src/components/PDF/components/PDFContent.tsx +192 -0
  32. package/src/components/PDF/core/Etiquetas.tsx +152 -0
  33. package/src/components/PDF/core/Grid.tsx +101 -0
  34. package/src/components/PDF/core/Img.tsx +22 -0
  35. package/src/components/PDF/core/LayoutPDF.tsx +186 -0
  36. package/src/components/PDF/core/Listas.tsx +10 -0
  37. package/src/components/PDF/core/MakePDF.tsx +50 -0
  38. package/src/components/PDF/core/PageElements.tsx +50 -0
  39. package/src/components/PDF/core/Position.tsx +33 -0
  40. package/src/components/PDF/core/Tablet.tsx +121 -0
  41. package/src/components/PDF/core/index.tsx +56 -0
  42. package/src/components/PDF/lib/pdfParser.ts +620 -0
  43. package/src/components/PDF/services/apiService.ts +17 -0
  44. package/src/components/PDF/templates/AllTemplate.tsx +134 -0
  45. package/src/components/PDF/templates/BusinessCardTemplate.tsx +139 -0
  46. package/src/components/PDF/templates/CertificateTemplate.tsx +31 -0
  47. package/src/components/PDF/templates/HeaderFooterTemplate.tsx +61 -0
  48. package/src/components/PDF/templates/InvoiceTemplate.tsx +53 -0
  49. package/src/components/PDF/templates/ProposalTemplate.tsx +246 -0
  50. package/src/components/PDF/templates/ReportTemplate.tsx +57 -0
  51. package/src/components/PDF/templates/ResumeTemplate.tsx +170 -0
  52. package/src/components/PDF/templates/TablasTemplate.tsx +307 -0
  53. package/src/components/PDF/templates/index.ts +9 -0
  54. package/src/components/PDF/view/ColorPicker.tsx +147 -0
  55. package/src/components/PDF/view/Header.tsx +102 -0
  56. package/src/components/PDF/view/HomePDF.tsx +177 -0
  57. package/src/components/PDF/view/SettingsPanel.tsx +703 -0
  58. package/src/pages/AllTemplate.tsx +53 -0
  59. package/src/pages/Documento2.tsx +45 -0
  60. package/src/pages/_app.tsx +6 -0
  61. package/src/pages/_document.tsx +13 -0
  62. package/src/pages/api/generatePDF.ts +74 -0
  63. package/src/pages/api/hello.ts +13 -0
  64. package/src/pages/api/readFile.ts +18 -0
  65. package/src/pages/api/readTemplateFile.ts +26 -0
  66. package/src/pages/api/save.ts +22 -0
  67. package/src/pages/api/saveFile.ts +20 -0
  68. package/src/pages/index.tsx +13 -0
  69. package/src/pages/template/[template].tsx +250 -0
  70. package/tsconfig.json +63 -0
@@ -0,0 +1,57 @@
1
+ "use client"
2
+ import type React from "react"
3
+ import { LayoutPDF, P, H1, Table, Thead, Tbody, Tr, Th, Td, H2 } from "../core"
4
+
5
+ const ReportTemplate: React.FC = () => {
6
+ return (
7
+ <LayoutPDF>
8
+ <H1>Reporte Anual de Ventas</H1>
9
+ <P>Año: 2023</P>
10
+
11
+ <H2>Resumen Ejecutivo</H2>
12
+ <P>Este reporte presenta un análisis detallado de las ventas anuales de nuestra empresa.</P>
13
+
14
+ <H2>Ventas por Trimestre</H2>
15
+ <Table>
16
+ <Thead>
17
+ <Tr isFirst>
18
+ <Th>Trimestre</Th>
19
+ <Th>Ventas</Th>
20
+ <Th>Crecimiento</Th>
21
+ </Tr>
22
+ </Thead>
23
+ <Tbody>
24
+ <Tr index={0}>
25
+ <Td>Q1</Td>
26
+ <Td>$500,000</Td>
27
+ <Td>-</Td>
28
+ </Tr>
29
+ <Tr index={1}>
30
+ <Td>Q2</Td>
31
+ <Td>$650,000</Td>
32
+ <Td>30%</Td>
33
+ </Tr>
34
+ <Tr index={2}>
35
+ <Td>Q3</Td>
36
+ <Td>$800,000</Td>
37
+ <Td>23%</Td>
38
+ </Tr>
39
+ <Tr index={3}>
40
+ <Td>Q4</Td>
41
+ <Td>$1,000,000</Td>
42
+ <Td>25%</Td>
43
+ </Tr>
44
+ </Tbody>
45
+ </Table>
46
+
47
+ <H2>Conclusiones</H2>
48
+ <P>
49
+ Las ventas han mostrado un crecimiento constante a lo largo del año, con un aumento significativo en el último
50
+ trimestre.
51
+ </P>
52
+ </LayoutPDF>
53
+ )
54
+ }
55
+
56
+ export default ReportTemplate
57
+
@@ -0,0 +1,170 @@
1
+ "use client"
2
+ import type React from "react"
3
+ import { LayoutPDF } from "../core"
4
+ import { StyleSheet, View, Text } from "@react-pdf/renderer"
5
+
6
+ const styles = StyleSheet.create({
7
+ header: {
8
+ marginBottom: 20,
9
+ },
10
+ name: {
11
+ fontSize: 24,
12
+ fontWeight: "bold",
13
+ marginBottom: 5,
14
+ color: "#2c3e50",
15
+ },
16
+ contact: {
17
+ fontSize: 10,
18
+ color: "#7f8c8d",
19
+ marginBottom: 3,
20
+ },
21
+ section: {
22
+ marginBottom: 15,
23
+ },
24
+ sectionTitle: {
25
+ fontSize: 14,
26
+ fontWeight: "bold",
27
+ color: "#2c3e50",
28
+ borderBottomWidth: 1,
29
+ borderBottomColor: "#bdc3c7",
30
+ paddingBottom: 5,
31
+ marginBottom: 10,
32
+ },
33
+ experienceItem: {
34
+ marginBottom: 10,
35
+ },
36
+ jobTitle: {
37
+ fontSize: 12,
38
+ fontWeight: "bold",
39
+ color: "#34495e",
40
+ },
41
+ company: {
42
+ fontSize: 11,
43
+ color: "#7f8c8d",
44
+ },
45
+ date: {
46
+ fontSize: 10,
47
+ color: "#95a5a6",
48
+ },
49
+ description: {
50
+ fontSize: 10,
51
+ color: "#2c3e50",
52
+ marginTop: 5,
53
+ },
54
+ skills: {
55
+ flexDirection: "row",
56
+ flexWrap: "wrap",
57
+ marginTop: 5,
58
+ },
59
+ skill: {
60
+ fontSize: 10,
61
+ backgroundColor: "#ecf0f1",
62
+ padding: "3 8",
63
+ marginRight: 5,
64
+ marginBottom: 5,
65
+ borderRadius: 3,
66
+ },
67
+ education: {
68
+ marginBottom: 8,
69
+ },
70
+ degree: {
71
+ fontSize: 11,
72
+ fontWeight: "bold",
73
+ color: "#34495e",
74
+ },
75
+ school: {
76
+ fontSize: 10,
77
+ color: "#7f8c8d",
78
+ },
79
+ })
80
+
81
+ const ResumeTemplate: React.FC = () => {
82
+ return (
83
+ <LayoutPDF>
84
+ {/* Header */}
85
+ <View style={styles.header}>
86
+ <Text style={styles.name}>John Doe</Text>
87
+ <Text style={styles.contact}>📧 john.doe@email.com | 📱 (555) 123-4567</Text>
88
+ <Text style={styles.contact}>🌍 New York, NY | 🔗 linkedin.com/in/johndoe</Text>
89
+ </View>
90
+
91
+ {/* Professional Summary */}
92
+ <View style={styles.section}>
93
+ <Text style={styles.sectionTitle}>Professional Summary</Text>
94
+ <Text style={styles.description}>
95
+ Senior Software Engineer with 8+ years of experience in full-stack development, specializing in React,
96
+ Node.js, and cloud technologies. Proven track record of leading teams and delivering high-impact projects in
97
+ fast-paced environments.
98
+ </Text>
99
+ </View>
100
+
101
+ {/* Experience */}
102
+ <View style={styles.section}>
103
+ <Text style={styles.sectionTitle}>Professional Experience</Text>
104
+
105
+ <View style={styles.experienceItem}>
106
+ <Text style={styles.jobTitle}>Senior Software Engineer</Text>
107
+ <Text style={styles.company}>Tech Solutions Inc.</Text>
108
+ <Text style={styles.date}>Jan 2020 - Present</Text>
109
+ <Text style={styles.description}>
110
+ • Led a team of 5 developers in rebuilding the company's flagship product using React and Node.js{"\n"}•
111
+ Implemented CI/CD pipelines reducing deployment time by 60%{"\n"}• Architected microservices infrastructure
112
+ supporting 1M+ daily users
113
+ </Text>
114
+ </View>
115
+
116
+ <View style={styles.experienceItem}>
117
+ <Text style={styles.jobTitle}>Software Engineer</Text>
118
+ <Text style={styles.company}>Digital Innovations Corp</Text>
119
+ <Text style={styles.date}>Jun 2017 - Dec 2019</Text>
120
+ <Text style={styles.description}>
121
+ • Developed and maintained multiple client-facing applications{"\n"}• Reduced application load time by 40%
122
+ through optimization{"\n"}• Mentored junior developers and led code reviews
123
+ </Text>
124
+ </View>
125
+ </View>
126
+
127
+ {/* Skills */}
128
+ <View style={styles.section}>
129
+ <Text style={styles.sectionTitle}>Technical Skills</Text>
130
+ <View style={styles.skills}>
131
+ <Text style={styles.skill}>React</Text>
132
+ <Text style={styles.skill}>Node.js</Text>
133
+ <Text style={styles.skill}>TypeScript</Text>
134
+ <Text style={styles.skill}>AWS</Text>
135
+ <Text style={styles.skill}>Docker</Text>
136
+ <Text style={styles.skill}>MongoDB</Text>
137
+ <Text style={styles.skill}>GraphQL</Text>
138
+ <Text style={styles.skill}>CI/CD</Text>
139
+ <Text style={styles.skill}>Agile</Text>
140
+ </View>
141
+ </View>
142
+
143
+ {/* Education */}
144
+ <View style={styles.section}>
145
+ <Text style={styles.sectionTitle}>Education</Text>
146
+ <View style={styles.education}>
147
+ <Text style={styles.degree}>Master of Science in Computer Science</Text>
148
+ <Text style={styles.school}>Stanford University, 2017</Text>
149
+ </View>
150
+ <View style={styles.education}>
151
+ <Text style={styles.degree}>Bachelor of Science in Software Engineering</Text>
152
+ <Text style={styles.school}>University of California, Berkeley, 2015</Text>
153
+ </View>
154
+ </View>
155
+
156
+ {/* Certifications */}
157
+ <View style={styles.section}>
158
+ <Text style={styles.sectionTitle}>Certifications</Text>
159
+ <View style={styles.skills}>
160
+ <Text style={styles.skill}>AWS Certified Solutions Architect</Text>
161
+ <Text style={styles.skill}>Google Cloud Professional</Text>
162
+ <Text style={styles.skill}>Certified Scrum Master</Text>
163
+ </View>
164
+ </View>
165
+ </LayoutPDF>
166
+ )
167
+ }
168
+
169
+ export default ResumeTemplate
170
+
@@ -0,0 +1,307 @@
1
+ "use client"
2
+ import type React from "react"
3
+ import { LayoutPDF, P, H1, Table, Thead, Tbody, Tr, Th, Td, H2 } from "../core"
4
+ import { StyleSheet, View, Text } from "@react-pdf/renderer"
5
+
6
+ type DocumentoTemplateProps = {}
7
+
8
+ const DocumentoTemplate: React.FC<DocumentoTemplateProps> = () => {
9
+ return (
10
+ <LayoutPDF>
11
+
12
+ <Table>
13
+ <Thead>
14
+ <Tr>
15
+ <Th>Producto</Th>
16
+ <Th>Cantidad</Th>
17
+ <Th>Precio</Th>
18
+ <Th>Total</Th>
19
+ </Tr>
20
+ </Thead>
21
+ <Tbody>
22
+ <Tr >
23
+ <Td>Laptop HP 15"</Td>
24
+ <Td>1</Td>
25
+ <Td>$899.99</Td>
26
+ <Td>$899.99</Td>
27
+ </Tr>
28
+ <Tr>
29
+ <Td>Monitor Dell 24"</Td>
30
+ <Td>2</Td>
31
+ <Td>$249.99</Td>
32
+ <Td>$499.98</Td>
33
+ </Tr>
34
+ <Tr>
35
+ <Td>Teclado Mecánico</Td>
36
+ <Td>1</Td>
37
+ <Td>$89.99</Td>
38
+ <Td>$89.99</Td>
39
+ </Tr>
40
+ <Tr>
41
+ <Td>Mouse Inalámbrico</Td>
42
+ <Td>1</Td>
43
+ <Td>$45.99</Td>
44
+ <Td>$45.99</Td>
45
+ </Tr>
46
+ <Tr>
47
+ <Td style={{ fontWeight: "bold" }}>Total</Td>
48
+ <Td></Td>
49
+ <Td></Td>
50
+ <Td style={{ fontWeight: "bold" }}>$1,535.95</Td>
51
+ </Tr>
52
+ </Tbody>
53
+ </Table>
54
+
55
+ <H2 style={{ marginTop: 20 }}>Tabla con estilos personalizados</H2>
56
+ <Table style={{ borderColor: "#3366cc", borderWidth: 1 }}>
57
+ <Thead>
58
+ <Tr>
59
+ <Th style={{ backgroundColor: "#3366cc", color: "white" }}>Departamento</Th>
60
+ <Th style={{ backgroundColor: "#3366cc", color: "white" }}>Responsable</Th>
61
+ <Th style={{ backgroundColor: "#3366cc", color: "white" }}>Presupuesto</Th>
62
+ </Tr>
63
+ </Thead>
64
+ <Tbody>
65
+ <Tr >
66
+ <Td>Marketing</Td>
67
+ <Td>Juan Pérez</Td>
68
+ <Td>$25,000</Td>
69
+ </Tr>
70
+ <Tr >
71
+ <Td>Ventas</Td>
72
+ <Td>María García</Td>
73
+ <Td>$35,000</Td>
74
+ </Tr>
75
+ <Tr>
76
+ <Td>Desarrollo</Td>
77
+ <Td>Carlos López</Td>
78
+ <Td>$45,000</Td>
79
+ </Tr>
80
+ </Tbody>
81
+ </Table>
82
+ <H2 style={{ marginBottom: 20 }}>Resumen Financiero</H2>
83
+ <Table>
84
+ <Thead>
85
+ <Tr>
86
+ <Th style={{ backgroundColor: "#4CAF50", color: "white" }}>Categoría</Th>
87
+ <Th style={{ backgroundColor: "#4CAF50", color: "white" }}>Ingresos</Th>
88
+ <Th style={{ backgroundColor: "#4CAF50", color: "white" }}>Gastos</Th>
89
+ <Th style={{ backgroundColor: "#4CAF50", color: "white" }}>Balance</Th>
90
+ </Tr>
91
+ </Thead>
92
+ <Tbody>
93
+ <Tr>
94
+ <Td>Ventas</Td>
95
+ <Td>$50,000</Td>
96
+ <Td>$10,000</Td>
97
+ <Td style={{ fontWeight: "bold" }}>$40,000</Td>
98
+ </Tr>
99
+ <Tr>
100
+ <Td>Inversiones</Td>
101
+ <Td>$20,000</Td>
102
+ <Td>$5,000</Td>
103
+ <Td style={{ fontWeight: "bold" }}>$15,000</Td>
104
+ </Tr>
105
+ <Tr>
106
+ <Td style={{ fontWeight: "bold" }}>Total</Td>
107
+ <Td></Td>
108
+ <Td></Td>
109
+ <Td style={{ fontWeight: "bold", color: "#4CAF50" }}>$55,000</Td>
110
+ </Tr>
111
+ </Tbody>
112
+ </Table>
113
+
114
+ <H2 style={{ marginTop: 20 }}>Desempeño de Empleados</H2>
115
+ <Table style={{ width: "100%", borderCollapse: "collapse", borderRadius: "10px", overflow: "hidden" }}>
116
+ <Thead>
117
+ <Tr style={{ backgroundColor: "#2C3E50", color: "white", textAlign: "left" }}>
118
+ <Th style={{ padding: "10px" }}>Empleado</Th>
119
+ <Th style={{ padding: "10px" }}>Departamento</Th>
120
+ <Th style={{ padding: "10px" }}>Evaluación</Th>
121
+ <Th style={{ padding: "10px" }}>Bonificación</Th>
122
+ </Tr>
123
+ </Thead>
124
+ <Tbody>
125
+ <Tr style={{ backgroundColor: "#ECF0F1" }}>
126
+ <Td style={{ padding: "10px", borderBottom: "1px solid #BDC3C7" }}>Ana Pérez</Td>
127
+ <Td style={{ padding: "10px", borderBottom: "1px solid #BDC3C7" }}>Marketing</Td>
128
+ <Td style={{ padding: "10px", borderBottom: "1px solid #BDC3C7" }}>Excelente</Td>
129
+ <Td style={{ padding: "10px", borderBottom: "1px solid #BDC3C7" }}>$1,200</Td>
130
+ </Tr>
131
+ <Tr>
132
+ <Td style={{ padding: "10px", borderBottom: "1px solid #BDC3C7" }}>Carlos Gómez</Td>
133
+ <Td style={{ padding: "10px", borderBottom: "1px solid #BDC3C7" }}>Ventas</Td>
134
+ <Td style={{ padding: "10px", borderBottom: "1px solid #BDC3C7" }}>Bueno</Td>
135
+ <Td style={{ padding: "10px", borderBottom: "1px solid #BDC3C7" }}>$800</Td>
136
+ </Tr>
137
+ <Tr style={{ backgroundColor: "#ECF0F1" }}>
138
+ <Td style={{ padding: "10px" }}>María López</Td>
139
+ <Td style={{ padding: "10px" }}>Desarrollo</Td>
140
+ <Td style={{ padding: "10px" }}>Sobresaliente</Td>
141
+ <Td style={{ padding: "10px" }}>$1,500</Td>
142
+ </Tr>
143
+ </Tbody>
144
+ </Table>
145
+
146
+ <H2 style={{ marginTop: 40 }}>Reporte de Ventas Mensuales</H2>
147
+ <Table style={{ width: "100%", borderCollapse: "collapse", borderRadius: "10px", overflow: "hidden" }}>
148
+ <Thead>
149
+ <Tr style={{ backgroundColor: "#E67E22", color: "white", textAlign: "left" }}>
150
+ <Th style={{ padding: "10px" }}>Mes</Th>
151
+ <Th style={{ padding: "10px" }}>Ventas Totales</Th>
152
+ <Th style={{ padding: "10px" }}>Meta</Th>
153
+ <Th style={{ padding: "10px" }}>Cumplimiento</Th>
154
+ </Tr>
155
+ </Thead>
156
+ <Tbody>
157
+ <Tr style={{ backgroundColor: "#FDE3A7" }}>
158
+ <Td style={{ padding: "10px", borderBottom: "1px solid #E67E22" }}>Enero</Td>
159
+ <Td style={{ padding: "10px", borderBottom: "1px solid #E67E22" }}>$50,000</Td>
160
+ <Td style={{ padding: "10px", borderBottom: "1px solid #E67E22" }}>$45,000</Td>
161
+ <Td style={{ padding: "10px", borderBottom: "1px solid #E67E22", fontWeight: "bold", color: "#27AE60" }}>✔ Cumplida</Td>
162
+ </Tr>
163
+ <Tr>
164
+ <Td style={{ padding: "10px", borderBottom: "1px solid #E67E22" }}>Febrero</Td>
165
+ <Td style={{ padding: "10px", borderBottom: "1px solid #E67E22" }}>$38,000</Td>
166
+ <Td style={{ padding: "10px", borderBottom: "1px solid #E67E22" }}>$50,000</Td>
167
+ <Td style={{ padding: "10px", borderBottom: "1px solid #E67E22", fontWeight: "bold", color: "#C0392B" }}>✖ No cumplida</Td>
168
+ </Tr>
169
+ <Tr style={{ backgroundColor: "#FDE3A7" }}>
170
+ <Td style={{ padding: "10px" }}>Marzo</Td>
171
+ <Td style={{ padding: "10px" }}>$60,000</Td>
172
+ <Td style={{ padding: "10px" }}>$55,000</Td>
173
+ <Td style={{ padding: "10px", fontWeight: "bold", color: "#27AE60" }}>✔ Cumplida</Td>
174
+ </Tr>
175
+ </Tbody>
176
+ </Table>
177
+ <H2 style={{ marginTop: 20 }}>Asistencia de Empleados</H2>
178
+ <Table style={{ width: "100%", borderCollapse: "collapse", borderRadius: "10px", overflow: "hidden" }}>
179
+ <Thead>
180
+ <Tr style={{ backgroundColor: "#8E44AD", color: "white", textAlign: "left" }}>
181
+ <Th style={{ padding: "10px" }}>Empleado</Th>
182
+ <Th style={{ padding: "10px" }}>Días Asistidos</Th>
183
+ <Th style={{ padding: "10px" }}>Faltas</Th>
184
+ <Th style={{ padding: "10px" }}>Porcentaje de Asistencia</Th>
185
+ </Tr>
186
+ </Thead>
187
+ <Tbody>
188
+ <Tr style={{ backgroundColor: "#F3E5F5" }}>
189
+ <Td style={{ padding: "10px", borderBottom: "1px solid #8E44AD" }}>Pedro Ramírez</Td>
190
+ <Td style={{ padding: "10px", borderBottom: "1px solid #8E44AD" }}>24</Td>
191
+ <Td style={{ padding: "10px", borderBottom: "1px solid #8E44AD" }}>2</Td>
192
+ <Td style={{ padding: "10px", fontWeight: "bold", color: "#27AE60" }}>92%</Td>
193
+ </Tr>
194
+ <Tr>
195
+ <Td style={{ padding: "10px", borderBottom: "1px solid #8E44AD" }}>Laura Fernández</Td>
196
+ <Td style={{ padding: "10px", borderBottom: "1px solid #8E44AD" }}>20</Td>
197
+ <Td style={{ padding: "10px", borderBottom: "1px solid #8E44AD" }}>6</Td>
198
+ <Td style={{ padding: "10px", fontWeight: "bold", color: "#C0392B" }}>77%</Td>
199
+ </Tr>
200
+ <Tr style={{ backgroundColor: "#F3E5F5" }}>
201
+ <Td style={{ padding: "10px" }}>José García</Td>
202
+ <Td style={{ padding: "10px" }}>23</Td>
203
+ <Td style={{ padding: "10px" }}>3</Td>
204
+ <Td style={{ padding: "10px", fontWeight: "bold", color: "#27AE60" }}>88%</Td>
205
+ </Tr>
206
+ </Tbody>
207
+ </Table>
208
+
209
+ <H2 style={{ marginTop: 40 }}>Progreso de Proyectos</H2>
210
+ <Table style={{ width: "100%", borderCollapse: "collapse", borderRadius: "10px", overflow: "hidden" }}>
211
+ <Thead>
212
+ <Tr style={{ backgroundColor: "#16A085", color: "white", textAlign: "left" }}>
213
+ <Th style={{ padding: "10px" }}>Proyecto</Th>
214
+ <Th style={{ padding: "10px" }}>Responsable</Th>
215
+ <Th style={{ padding: "10px" }}>Progreso</Th>
216
+ <Th style={{ padding: "10px" }}>Estado</Th>
217
+ </Tr>
218
+ </Thead>
219
+ <Tbody>
220
+ <Tr style={{ backgroundColor: "#D5F5E3" }}>
221
+ <Td style={{ padding: "10px", borderBottom: "1px solid #16A085" }}>App Móvil</Td>
222
+ <Td style={{ padding: "10px", borderBottom: "1px solid #16A085" }}>María López</Td>
223
+ <Td style={{ padding: "10px", borderBottom: "1px solid #16A085" }}>
224
+ <div style={{ width: "100%", backgroundColor: "#A3E4D7", borderRadius: "5px" }}>
225
+ <div style={{ width: "80%", backgroundColor: "#16A085", padding: "5px", borderRadius: "5px", textAlign: "center", color: "white" }}>80%</div>
226
+ </div>
227
+ </Td>
228
+ <Td style={{ padding: "10px", fontWeight: "bold", color: "#27AE60" }}>En curso</Td>
229
+ </Tr>
230
+ <Tr>
231
+ <Td style={{ padding: "10px", borderBottom: "1px solid #16A085" }}>Web Corporativa</Td>
232
+ <Td style={{ padding: "10px", borderBottom: "1px solid #16A085" }}>Carlos Gómez</Td>
233
+ <Td style={{ padding: "10px", borderBottom: "1px solid #16A085" }}>
234
+ <div style={{ width: "100%", backgroundColor: "#A3E4D7", borderRadius: "5px" }}>
235
+ <div style={{ width: "45%", backgroundColor: "#16A085", padding: "5px", borderRadius: "5px", textAlign: "center", color: "white" }}>45%</div>
236
+ </div>
237
+ </Td>
238
+ <Td style={{ padding: "10px", fontWeight: "bold", color: "#E67E22" }}>Retrasado</Td>
239
+ </Tr>
240
+ <Tr style={{ backgroundColor: "#D5F5E3" }}>
241
+ <Td style={{ padding: "10px" }}>Sistema de Inventarios</Td>
242
+ <Td style={{ padding: "10px" }}>Ana Pérez</Td>
243
+ <Td style={{ padding: "10px" }}>
244
+ <div style={{ width: "100%", backgroundColor: "#A3E4D7", borderRadius: "5px" }}>
245
+ <div style={{ width: "100%", backgroundColor: "#16A085", padding: "5px", borderRadius: "5px", textAlign: "center", color: "white" }}>100%</div>
246
+ </div>
247
+ </Td>
248
+ <Td style={{ padding: "10px", fontWeight: "bold", color: "#2ECC71" }}>Completado</Td>
249
+ </Tr>
250
+ </Tbody>
251
+ </Table>
252
+ <Table style={{ width: "100%", borderCollapse: "collapse", border: "1px solid black" }}>
253
+ <Thead>
254
+ <Tr>
255
+ <Th colSpan={2} style={{ border: "1px solid black", padding: "10px", textAlign: "center" }}>
256
+ Header with Colspan = 2
257
+ </Th>
258
+ <Th style={{ border: "1px solid black", padding: "10px", textAlign: "center" }}>
259
+ Header 3
260
+ </Th>
261
+ </Tr>
262
+ <Tr>
263
+ <Th style={{ border: "1px solid black", padding: "10px", textAlign: "center" }}>Header 1</Th>
264
+ <Th style={{ border: "1px solid black", padding: "10px", textAlign: "center" }}>Header 2</Th>
265
+ <Th style={{ border: "1px solid black", padding: "10px", textAlign: "center" }}>Header 3</Th>
266
+ </Tr>
267
+ </Thead>
268
+ <Tbody>
269
+ <Tr>
270
+ <Td style={{ border: "1px solid black", padding: "10px" }}>Sample value 1</Td>
271
+ <Td style={{ border: "1px solid black", padding: "10px" }}>Sample value 2</Td>
272
+ <Td style={{ border: "1px solid black", padding: "10px" }}>Sample value 3</Td>
273
+ </Tr>
274
+ <Tr>
275
+ <Td style={{ border: "1px solid black", padding: "10px", verticalAlign: "top" }}>
276
+ rowSpan set to 3 <br />
277
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
278
+ </Td>
279
+ <Td style={{ border: "1px solid black", padding: "10px" }}>Sample value 2</Td>
280
+ <Td style={{ border: "1px solid black", padding: "10px" }}>Sample value 3</Td>
281
+ </Tr>
282
+ <Tr>
283
+ <Td style={{ border: "1px solid black", padding: "10px" }}>Sample value 2</Td>
284
+ <Td style={{ border: "1px solid black", padding: "10px" }}>Sample value 3</Td>
285
+ </Tr>
286
+ <Tr>
287
+ <Td style={{ border: "1px solid black", padding: "10px" }}>Sample value 2</Td>
288
+ <Td style={{ border: "1px solid black", padding: "10px" }}>Sample value 3</Td>
289
+ </Tr>
290
+ <Tr>
291
+ <Td style={{ border: "1px solid black", padding: "10px" }}>Sample value 1</Td>
292
+ <Td colSpan={2} style={{ border: "1px solid black", padding: "10px", textAlign: "center" }}>
293
+ Both: <br /> rowSpan and colSpan <br /> can be defined at the same time
294
+ </Td>
295
+ </Tr>
296
+ <Tr>
297
+ <Td style={{ border: "1px solid black", padding: "10px" }}>Sample value 1</Td>
298
+ </Tr>
299
+ </Tbody>
300
+ </Table>
301
+
302
+ </LayoutPDF>
303
+ )
304
+ }
305
+
306
+ export default DocumentoTemplate
307
+
@@ -0,0 +1,9 @@
1
+ export { default as AllTemplate } from "./AllTemplate"
2
+ export { default as InvoiceTemplate } from "./InvoiceTemplate"
3
+ export { default as ReportTemplate } from "./ReportTemplate"
4
+ export { default as CertificateTemplate } from "./CertificateTemplate"
5
+ export { default as BusinessCardTemplate } from "./BusinessCardTemplate"
6
+ export { default as ProposalTemplate } from "./ProposalTemplate"
7
+ export { default as HeaderFooterTemplate } from "./HeaderFooterTemplate"
8
+ export { default as TablasTemplate } from "./TablasTemplate"
9
+