Final 1.0
This commit is contained in:
parent
a841fe559f
commit
cf2ea35e24
2
pom.xml
2
pom.xml
|
@ -58,7 +58,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.pdfbox</groupId>
|
<groupId>org.apache.pdfbox</groupId>
|
||||||
<artifactId>pdfbox</artifactId>
|
<artifactId>pdfbox</artifactId>
|
||||||
<version>2.0.24</version>
|
<version>3.0.3</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
package org.example.saladeconciertos;
|
package org.example.saladeconciertos;
|
||||||
|
|
||||||
|
import javafx.scene.text.Font;
|
||||||
import org.apache.pdfbox.pdmodel.PDDocument;
|
import org.apache.pdfbox.pdmodel.PDDocument;
|
||||||
import org.apache.pdfbox.pdmodel.PDPage;
|
import org.apache.pdfbox.pdmodel.PDPage;
|
||||||
import org.apache.pdfbox.pdmodel.PDPageContentStream;
|
import org.apache.pdfbox.pdmodel.PDPageContentStream;
|
||||||
import org.apache.pdfbox.pdmodel.font.PDType1Font;
|
import org.apache.pdfbox.pdmodel.font.PDType1Font;
|
||||||
|
import org.apache.pdfbox.pdmodel.font.Standard14Fonts;
|
||||||
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
|
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
@ -20,24 +22,26 @@ public class PDFGenerator {
|
||||||
// Crear una nueva página
|
// Crear una nueva página
|
||||||
PDPage page = new PDPage();
|
PDPage page = new PDPage();
|
||||||
document.addPage(page);
|
document.addPage(page);
|
||||||
|
PDType1Font fontbold = new PDType1Font(Standard14Fonts.FontName.HELVETICA_BOLD);
|
||||||
|
PDType1Font font = new PDType1Font(Standard14Fonts.FontName.HELVETICA);
|
||||||
|
|
||||||
// Crear un flujo de contenido para la página
|
// Crear un flujo de contenido para la página
|
||||||
try (PDPageContentStream contentStream = new PDPageContentStream(document, page)) {
|
try (PDPageContentStream contentStream = new PDPageContentStream(document, page)) {
|
||||||
// Configurar la fuente y el tamaño para el título del evento
|
// Configurar la fuente y el tamaño para el título del evento
|
||||||
contentStream.setFont(PDType1Font.HELVETICA_BOLD, 24);
|
contentStream.setFont(fontbold, 24);
|
||||||
contentStream.beginText();
|
contentStream.beginText();
|
||||||
contentStream.newLineAtOffset(50, 750);
|
contentStream.newLineAtOffset(50, 750);
|
||||||
contentStream.showText(eventName);
|
contentStream.showText(eventName);
|
||||||
contentStream.endText();
|
contentStream.endText();
|
||||||
|
|
||||||
// Configurar la fuente y el tamaño para la fecha del evento
|
// Configurar la fuente y el tamaño para la fecha del evento
|
||||||
contentStream.setFont(PDType1Font.HELVETICA_BOLD, 18);
|
contentStream.setFont(fontbold, 18);
|
||||||
contentStream.beginText();
|
contentStream.beginText();
|
||||||
contentStream.newLineAtOffset(50, 720);
|
contentStream.newLineAtOffset(50, 720);
|
||||||
contentStream.endText();
|
contentStream.endText();
|
||||||
|
|
||||||
// Configurar la fuente y el tamaño para el contenido del reporte
|
// Configurar la fuente y el tamaño para el contenido del reporte
|
||||||
contentStream.setFont(PDType1Font.HELVETICA, 12);
|
contentStream.setFont(font, 12);
|
||||||
contentStream.beginText();
|
contentStream.beginText();
|
||||||
contentStream.newLineAtOffset(50, 680);
|
contentStream.newLineAtOffset(50, 680);
|
||||||
|
|
||||||
|
@ -76,18 +80,20 @@ public class PDFGenerator {
|
||||||
// Crear una nueva página
|
// Crear una nueva página
|
||||||
PDPage page = new PDPage();
|
PDPage page = new PDPage();
|
||||||
document.addPage(page);
|
document.addPage(page);
|
||||||
|
PDType1Font fontbold = new PDType1Font(Standard14Fonts.FontName.HELVETICA_BOLD);
|
||||||
|
PDType1Font font = new PDType1Font(Standard14Fonts.FontName.HELVETICA);
|
||||||
|
|
||||||
// Crear un flujo de contenido para la página
|
// Crear un flujo de contenido para la página
|
||||||
try (PDPageContentStream contentStream = new PDPageContentStream(document, page)) {
|
try (PDPageContentStream contentStream = new PDPageContentStream(document, page)) {
|
||||||
// Configurar la fuente y el tamaño para el título
|
// Configurar la fuente y el tamaño para el título
|
||||||
contentStream.setFont(PDType1Font.HELVETICA_BOLD, 20);
|
contentStream.setFont(fontbold, 20);
|
||||||
contentStream.beginText();
|
contentStream.beginText();
|
||||||
contentStream.newLineAtOffset(50, 750);
|
contentStream.newLineAtOffset(50, 750);
|
||||||
contentStream.showText("Ticket de Compra");
|
contentStream.showText("Ticket de Compra");
|
||||||
contentStream.endText();
|
contentStream.endText();
|
||||||
|
|
||||||
// Configurar la fuente y el tamaño para el contenido
|
// Configurar la fuente y el tamaño para el contenido
|
||||||
contentStream.setFont(PDType1Font.HELVETICA, 12);
|
contentStream.setFont(font, 12);
|
||||||
contentStream.beginText();
|
contentStream.beginText();
|
||||||
contentStream.newLineAtOffset(50, 700);
|
contentStream.newLineAtOffset(50, 700);
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,8 @@ import javafx.scene.layout.BorderPane;
|
||||||
import javafx.scene.layout.GridPane;
|
import javafx.scene.layout.GridPane;
|
||||||
import javafx.scene.layout.VBox;
|
import javafx.scene.layout.VBox;
|
||||||
import javafx.scene.paint.Color;
|
import javafx.scene.paint.Color;
|
||||||
|
import javafx.scene.text.Font;
|
||||||
|
import javafx.scene.text.TextAlignment;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
|
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
|
@ -120,12 +122,12 @@ public class VentaBoletos extends Application {
|
||||||
int row = (seatNumber - 1) / cols;
|
int row = (seatNumber - 1) / cols;
|
||||||
int col = (seatNumber - 1) % cols;
|
int col = (seatNumber - 1) % cols;
|
||||||
char rowLetter = (char) ('A' + row);
|
char rowLetter = (char) ('A' + row);
|
||||||
String seatLabel = rowLetter + String.valueOf(col + 1);
|
String seatLabel = rowLetter + String.valueOf(col + 1)+"\n$"+seatPrices.get(seatNumber);
|
||||||
Button seatButton = new Button(seatLabel);
|
Button seatButton = new Button(seatLabel);
|
||||||
|
seatButton.setTextAlignment(TextAlignment.CENTER);
|
||||||
seatButton.getStyleClass().add("seat-button");
|
seatButton.getStyleClass().add("seat-button");
|
||||||
seatButton.setMinSize(80, 40); // Tamaño mínimo de cada botón
|
seatButton.setMinSize(90, 55); // Tamaño mínimo de cada botón
|
||||||
seatButton.setMaxSize(80, 40); // Tamaño máximo de cada botón
|
seatButton.setMaxSize(90, 55); // Tamaño máximo de cada botón
|
||||||
seatButton.setPadding(new Insets(10)); // Padding dentro de cada botón
|
|
||||||
int finalSeatNumber = seatNumber;
|
int finalSeatNumber = seatNumber;
|
||||||
|
|
||||||
if ("vendido".equals(seatStatus.getOrDefault(finalSeatNumber, "disponible"))) {
|
if ("vendido".equals(seatStatus.getOrDefault(finalSeatNumber, "disponible"))) {
|
||||||
|
@ -186,7 +188,7 @@ public class VentaBoletos extends Application {
|
||||||
|
|
||||||
borderPane.setCenter(mainLayout);
|
borderPane.setCenter(mainLayout);
|
||||||
|
|
||||||
Scene mainScene = new Scene(borderPane, 540, 600);
|
Scene mainScene = new Scene(borderPane, 600, 650);
|
||||||
mainScene.getStylesheets().add(getClass().getResource("/styles.css").toExternalForm());
|
mainScene.getStylesheets().add(getClass().getResource("/styles.css").toExternalForm());
|
||||||
mainStage.setScene(mainScene);
|
mainStage.setScene(mainScene);
|
||||||
mainStage.show();
|
mainStage.show();
|
||||||
|
@ -205,12 +207,12 @@ public class VentaBoletos extends Application {
|
||||||
int row = (seatNumber - 1) / cols;
|
int row = (seatNumber - 1) / cols;
|
||||||
int col = (seatNumber - 1) % cols;
|
int col = (seatNumber - 1) % cols;
|
||||||
char rowLetter = (char) ('A' + row);
|
char rowLetter = (char) ('A' + row);
|
||||||
String seatLabel = rowLetter + String.valueOf(col + 1);
|
String seatLabel = rowLetter + String.valueOf(col + 1)+"\n$"+seatPrices.get(seatNumber);
|
||||||
Button seatButton = new Button(seatLabel);
|
Button seatButton = new Button(seatLabel);
|
||||||
|
seatButton.setTextAlignment(TextAlignment.CENTER);
|
||||||
seatButton.getStyleClass().add("seat-button");
|
seatButton.getStyleClass().add("seat-button");
|
||||||
seatButton.setMinSize(80, 40); // Tamaño mínimo de cada botón
|
seatButton.setMinSize(90, 55); // Tamaño mínimo de cada botón
|
||||||
seatButton.setMaxSize(80, 40); // Tamaño máximo de cada botón
|
seatButton.setMaxSize(90, 55); // Tamaño máximo de cada botón
|
||||||
seatButton.setPadding(new Insets(10)); // Padding dentro de cada botón
|
|
||||||
int finalSeatNumber = seatNumber;
|
int finalSeatNumber = seatNumber;
|
||||||
|
|
||||||
if ("vendido".equals(seatStatus.getOrDefault(finalSeatNumber, "disponible"))) {
|
if ("vendido".equals(seatStatus.getOrDefault(finalSeatNumber, "disponible"))) {
|
||||||
|
|
|
@ -236,7 +236,7 @@ public class VentanaPago {
|
||||||
ticketDetails.append("Cliente: ").append(clientName).append("\n");
|
ticketDetails.append("Cliente: ").append(clientName).append("\n");
|
||||||
ticketDetails.append("Evento: ").append(eventName).append("\n");
|
ticketDetails.append("Evento: ").append(eventName).append("\n");
|
||||||
ticketDetails.append("Fecha de evento: ").append(eventDate).append("\n");
|
ticketDetails.append("Fecha de evento: ").append(eventDate).append("\n");
|
||||||
ticketDetails.append("Fecha de compra: ").append(new SimpleDateFormat("yyyy/MM/dd").format(new Date())).append("\n");
|
ticketDetails.append("Fecha de compra: ").append(new SimpleDateFormat("yyyy-MM-dd").format(new Date())).append("\n");
|
||||||
ticketDetails.append("Método de pago: ").append(paymentMethod).append("\n");
|
ticketDetails.append("Método de pago: ").append(paymentMethod).append("\n");
|
||||||
ticketDetails.append("Asientos: ").append(selectedSeats.size() > 1 ? "\n" : "");
|
ticketDetails.append("Asientos: ").append(selectedSeats.size() > 1 ? "\n" : "");
|
||||||
for (int seat : selectedSeats) {
|
for (int seat : selectedSeats) {
|
||||||
|
|
Loading…
Reference in New Issue