Erweiterungen

This commit is contained in:
2025-09-19 21:46:19 +02:00
parent ac08c2b867
commit 1b55cfd016

View File

@@ -9,7 +9,6 @@ import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.router.PageTitle; import com.vaadin.flow.router.PageTitle;
import com.vaadin.flow.router.Route; import com.vaadin.flow.router.Route;
import com.vaadin.flow.server.StreamResource; import com.vaadin.flow.server.StreamResource;
import de.assecutor.votianlt.model.invoices.SystemInvoiceData;
import de.assecutor.votianlt.pages.base.ui.view.AdminLayout; import de.assecutor.votianlt.pages.base.ui.view.AdminLayout;
import de.assecutor.votianlt.service.SystemInvoiceService; import de.assecutor.votianlt.service.SystemInvoiceService;
import jakarta.annotation.security.RolesAllowed; import jakarta.annotation.security.RolesAllowed;
@@ -34,21 +33,12 @@ public class PdfTestView extends VerticalLayout {
H2 title = new H2("PDF Test"); H2 title = new H2("PDF Test");
add(title); add(title);
Button generatePdfButton = new Button("Test-Rechnung PDF generieren");
generatePdfButton.addClickListener(e -> generateTestPdf());
Button generateHtmlPdfButton = new Button("PDF aus vltInvoice.html generieren"); Button generateHtmlPdfButton = new Button("PDF aus vltInvoice.html generieren");
generateHtmlPdfButton.addClickListener(e -> generateHtmlPdf()); generateHtmlPdfButton.addClickListener(e -> generateHtmlPdf());
Button generateTestPdfFromHtmlButton = new Button("Test PDF aus vltInvoice.html erstellen");
generateTestPdfFromHtmlButton.addClickListener(e -> generateTestPdfFromHtml());
Button showPdfInlineButton = new Button("PDF inline anzeigen");
showPdfInlineButton.addClickListener(e -> showPdfInline());
// Create button layout // Create button layout
HorizontalLayout buttonLayout = new HorizontalLayout(); HorizontalLayout buttonLayout = new HorizontalLayout();
buttonLayout.add(generatePdfButton, generateHtmlPdfButton, generateTestPdfFromHtmlButton, showPdfInlineButton); buttonLayout.add(generateHtmlPdfButton);
buttonLayout.setSpacing(true); buttonLayout.setSpacing(true);
// Initialize PDF viewer // Initialize PDF viewer
@@ -62,27 +52,6 @@ public class PdfTestView extends VerticalLayout {
add(pdfViewer); add(pdfViewer);
} }
private void generateTestPdf() {
try {
SystemInvoiceData sampleData = systemInvoiceService.createSampleInvoiceData();
byte[] pdfBytes = systemInvoiceService.generateInvoicePdf(sampleData);
StreamResource resource = new StreamResource("test-rechnung.pdf",
() -> new ByteArrayInputStream(pdfBytes));
resource.setContentType("application/pdf");
getUI().ifPresent(ui -> {
var registration = ui.getSession().getResourceRegistry().registerResource(resource);
ui.getPage().open(registration.getResourceUri().toString(), "_blank");
});
Notification.show("PDF erfolgreich generiert!", 3000, Notification.Position.BOTTOM_CENTER);
} catch (Exception ex) {
Notification.show("Fehler beim Generieren des PDFs: " + ex.getMessage(),
5000, Notification.Position.BOTTOM_CENTER);
}
}
private void generateHtmlPdf() { private void generateHtmlPdf() {
try { try {
byte[] pdfBytes = systemInvoiceService.generateInvoicePdfFromHtml(); byte[] pdfBytes = systemInvoiceService.generateInvoicePdfFromHtml();
@@ -102,48 +71,4 @@ public class PdfTestView extends VerticalLayout {
5000, Notification.Position.BOTTOM_CENTER); 5000, Notification.Position.BOTTOM_CENTER);
} }
} }
private void generateTestPdfFromHtml() {
try {
SystemInvoiceData sampleData = systemInvoiceService.createSampleInvoiceData();
byte[] pdfBytes = systemInvoiceService.generateInvoicePdfFromHtml();
StreamResource resource = new StreamResource("test-invoice-from-html.pdf",
() -> new ByteArrayInputStream(pdfBytes));
resource.setContentType("application/pdf");
getUI().ifPresent(ui -> {
var registration = ui.getSession().getResourceRegistry().registerResource(resource);
ui.getPage().open(registration.getResourceUri().toString(), "_blank");
});
Notification.show("Test PDF aus HTML erfolgreich generiert!", 3000, Notification.Position.BOTTOM_CENTER);
} catch (Exception ex) {
Notification.show("Fehler beim Generieren des Test PDFs aus HTML: " + ex.getMessage(),
5000, Notification.Position.BOTTOM_CENTER);
}
}
private void showPdfInline() {
try {
SystemInvoiceData sampleData = systemInvoiceService.createSampleInvoiceData();
byte[] pdfBytes = systemInvoiceService.generateInvoicePdf(sampleData);
StreamResource resource = new StreamResource("inline-invoice.pdf",
() -> new ByteArrayInputStream(pdfBytes));
resource.setContentType("application/pdf");
getUI().ifPresent(ui -> {
var registration = ui.getSession().getResourceRegistry().registerResource(resource);
pdfViewer.setSrc(registration.getResourceUri().toString());
pdfViewer.setVisible(true);
});
Notification.show("PDF wird inline angezeigt!", 3000, Notification.Position.BOTTOM_CENTER);
} catch (Exception ex) {
Notification.show("Fehler beim Anzeigen des PDFs: " + ex.getMessage(),
5000, Notification.Position.BOTTOM_CENTER);
}
}
} }