Erweiterungen
This commit is contained in:
@@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user