[JAVA] Ich habe versucht, ein Formular mit Spring MVC und Jasper Reports Extra Edition (Bildausgabe) zu drucken.

Fügen Sie dem Formular ein Bild hinzu.

Vorheriger Artikel

Korrekt. Wenn es sich um ein Geschäftsdokument handelt, handelt es sich um einen vorgeschriebenen Stempel. Wenn Sie es zum Spaß verwenden möchten, ist es meiner Meinung nach eine gute Idee, eine Logo-Markierung hinzuzufügen, um es cool zu machen.

Bereiten Sie Parameter und Bilder vor

Bereiten Sie zunächst die Parameter zum Einfügen des Bildes vor. Dieses Mal lesen wir aus einer statischen Datei, setzen Sie also den Parametertyp auf InputStream. (Beim Lesen des Blob-Typs aus der Datenbank scheint es besser zu sein, den nicht ausgeführten ByteArrayInputStream-Typ zu verwenden.)

image.png

Als nächstes setzen Sie Image in das Formular.

image.png

Bereiten Sie die zuvor für Expression vorbereiteten Parameter vor. Sie werden gefragt, was mit der Bildquelle geschehen soll. Wählen Sie daher "Später von Java eingeben" (denken Sie daran).

Wenn Sie dies tun können, können Sie es mit einer Vorschau versuchen. Es wird nichts angezeigt ...

Lesen Sie die Bilddatei auf der Java-Seite.

Dieses Mal machen wir es in einem Format, das im Browser angezeigt wird, nicht in einem Download-Format. (Mein Geschmack) Die eiserne Regel von MVC. Schreiben Sie einen Controller.

PainterPrintController.java


@Controller
public class PainterPrintController {

	@Autowired
	ResourceLoader resource;
	
	@RequestMapping(value = "/paint", method = RequestMethod.GET)
	public ModelAndView paintPrint() {
		ModelAndView rslt = new ModelAndView("reportPrint");
		HashMap<String, Object> data = new HashMap<String, Object>();
		InputStream img =null;
		
		//Holen Sie sich ein Bild
		try {
			img = new FileInputStream(resource.getResource("picture/aomin.icon.jpg ").getFile());
			
		} catch (IOException e) {
			//TODO automatisch generierter Fangblock
			e.printStackTrace();
		}
		
		//Auf Ansicht setzen
		data.put("icon_image", img);
		rslt.addObject("jspData", data);
		
		//Gibt eine Ansicht zurück
		return rslt;
	}

Es sind zwei Elemente erforderlich.

  1. Laden Sie das Bild.
  2. Übergeben Sie die Hashmap als Ansicht.

Nur das. Das Kompilieren und Ausgeben des Formulars bleibt der JSP-Seite überlassen.

Schreiben Sie zunächst den folgenden Code in Jsp.

reportPrint.jsp


<%@ page contentType="application/pdf" %>
<%@ page trimDirectiveWhitespaces="true" %>
<%@ page import="net.sf.jasperreports.engine.*" %>
<%@ page import="net.sf.jasperreports.engine.data.*" %>
<%@ page import="java.io.*" %>
<%@ page import="org.springframework.core.io.*" %>
<%@ page import="org.springframework.beans.factory.annotation.*" %>
<%@ page import="java.util.*" %> 
<%
	try{
		//GetData And jrxml
		HashMap<String, Object> param = (HashMap<String, Object>)request.getAttribute("jspData");
		String jrxmlFile = session.getServletContext().getRealPath("/report/paint_print.jrxml");
		InputStream input = new FileInputStream(jrxmlFile);
		
		//compile krxml
		JasperReport jasperReport = JasperCompileManager.compileReport(input);
		JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, param, new JREmptyDataSource());
		JasperExportManager.exportReportToPdfStream(jasperPrint, response.getOutputStream());
		
		//print pdf on page
		response.getOutputStream().flush();
		response.getOutputStream().close();
				
	} catch (Exception e){
		e.printStackTrace();
	}

%>

Was hat sich verändert

reportPrint.jsp


<%@ page contentType="application/pdf" %>

Der Ort namens. Stellen Sie hier das PDF-Ausgabeformat ein.

Darüber hinaus ändert sich die grundlegende Methode zur Ausgabe von Formularen weder im Download-Format noch im Anzeigeformat. Bereiten Sie eine Liste von Parametern und Feldern für Daten vor Kompilieren und Ausgabe in den Ausgabestream.

Da diesmal kein Feld vorhanden ist, Ich verwende beim Einbetten von Daten neue JREmptyDataSource ().

Lauf

Greifen wir auf die vom Controller angegebene Adresse zu.

image.png

Sie haben ein Formular mit einem Zeichenlogo gedruckt. Ich denke, es ist eine bessere Wahl, es für Logos und elektronische Briefmarken in Geschäftsräumen zu verwenden.

Lassen Sie uns automatisch Dokumente erstellen.

Recommended Posts

Ich habe versucht, ein Formular mit Spring MVC und Jasper Reports Extra Edition (Bildausgabe) zu drucken.
Ich habe versucht, ein Formular mit Spring MVC und Jasper Reports Extra Edition (Variables Edition) zu drucken.
Ich habe versucht, ein Formular mit Spring MVC und Jasper Reports 1/3 (Jasper Reports-Einstellungen) zu drucken.
Ich habe versucht, ein Formular mit Spring MVC und Jasper Reports 3/3 (Spring MVC-Steuerung) zu drucken.
Ich habe versucht, das Hochladen von Dateien mit Spring MVC zu implementieren
Ich habe versucht, mit Java und Spring eine Funktion / einen Bildschirm für den Administrator einer Einkaufsseite zu erstellen
Ich habe GraphQL mit Spring Boot ausprobiert
Ich habe Flyway mit Spring Boot ausprobiert
Ich habe versucht, mithilfe von JDBC Template mit Spring MVC eine Verbindung zu MySQL herzustellen
Ich habe versucht, eine Spring MVC-Entwicklungsumgebung auf einem Mac zu erstellen
Ich habe versucht, ein wenig mit BottomNavigationView zu spielen ①
Ich habe Lazy Initialization mit Spring Boot 2.2.0 ausprobiert
Implementieren Sie die Bildeingabe / -ausgabe mit Spring MVC
So erstellen Sie ein Excel-Formular mithilfe einer Vorlagendatei mit Spring MVC
Ich habe versucht, eine Webanwendung voller Fehler mit Spring Boot zu klonen
Geben Sie einfach Bilder mit Spring MVC ein und geben Sie sie aus
Ich habe auch Web Assembly mit Nim und C ausprobiert
Ich habe versucht, JavaFX und Spring Framework zu verknüpfen.
Ich habe versucht, den Block mit Java zu brechen (1)
Ich habe es mit Spring versucht.
Ich habe versucht, mit Wercker ein Docker-Image zu erstellen und zu veröffentlichen, mit dem GlassFish 5 gestartet wird
Ich habe eine Funktion zum Registrieren von Bildern bei der API in Spring Framework erstellt. Teil 1 (API Edition)
Verwendungshinweis zu Spring Security: Zusammenarbeit mit Spring MVC und Boot
Ich habe MySQL 5.7 mit Docker-Compose gestartet und versucht, eine Verbindung herzustellen
Ich habe versucht, mit Spring Data JPA zu beginnen
Ich habe im Frühjahr einen Restful-Server und -Client erstellt.
Ich habe versucht, mit OCR eine PDF-Datei mit Java zu verarbeiten
Ich habe jetzt einen Test mit Spring Boot + JUnit 5 geschrieben
Einfacher LINE BOT mit Java Servlet Teil 2: Ich habe versucht, Bildnachrichten und Vorlagen zu erstellen
Ich habe eine Funktion zum Registrieren von Bildern bei der API in Spring Framework erstellt. Teil 2 (Client Edition)
[Ich habe es versucht] Spring Tutorial
Ich habe Spring Batch ausprobiert
Ich habe versucht, mit Chocolatey eine Java8-Entwicklungsumgebung zu erstellen
Ich habe versucht, eine Java EE-Anwendung mit OpenShift zu modernisieren.
[Rails] Ich habe versucht, eine Mini-App mit FullCalendar zu erstellen
Ich habe das Spring Boot-Einführungshandbuch [Zugriff auf Daten mit JPA] ausprobiert.
Ich habe versucht, dies und das von Spring @ Transactional zu überprüfen
Ich möchte eine Liste mit Kotlin und Java erstellen!
Ich möchte eine Funktion mit Kotlin und Java erstellen!
Ich habe JAX-RS ausprobiert und mir das Verfahren notiert
Ich habe versucht, mit Docker eine Padrino-Entwicklungsumgebung zu erstellen
Ich habe versucht, eine PDF-Datei mit Java part2 zu verarbeiten
Ich habe versucht, mit Swagger mit Spring Boot zu beginnen
Ich habe mit Spring Boot ein einfaches MVC-Beispielsystem erstellt
Ich habe versucht, die Ergebnisse vor und nach der Date-Klasse mit einer geraden Zahl auszudrücken