[JAVA] J'ai essayé d'imprimer un formulaire avec Spring MVC et Jasper Reports Extra Edition (édition d'image)

Joindre une image au formulaire.

Article précédent

C'est vrai. S'il s'agit d'un document commercial, ce sera un cachet prescrit. Si vous voulez l'utiliser pour le plaisir, je pense que c'est une bonne idée d'ajouter une marque de logo pour le rendre cool.

Préparer les paramètres et les images

Tout d'abord, préparez les paramètres pour insérer l'image. Cette fois, nous allons lire à partir d'un fichier statique, alors définissez le type de paramètre sur InputStream. (Lors de la lecture du type Blob à partir de la base de données, il semble préférable d'utiliser le type ByteArrayInputStream, non exécuté)

image.png

Ensuite, définissez Image dans le formulaire.

image.png

Préparez les paramètres préparés précédemment pour Expression. On vous demandera quoi faire avec la source de l'image, alors sélectionnez "Entrer depuis Java plus tard" (rappelez-vous)

Si vous pouvez le faire, vous pouvez l'essayer avec un aperçu. Rien ne s'affiche ...

Lisez le fichier image côté Java.

Cette fois, faisons-le dans un format qui sera affiché sur le navigateur, pas dans un format de téléchargement. (Mon gout) La règle de fer de MVC. Écrivez un contrôleur.

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;
		
		//Obtenir une image
		try {
			img = new FileInputStream(resource.getResource("picture/aomin.icon.jpg ").getFile());
			
		} catch (IOException e) {
			//Bloc de capture généré automatiquement TODO
			e.printStackTrace();
		}
		
		//Définir pour afficher
		data.put("icon_image", img);
		rslt.addObject("jspData", data);
		
		//Renvoie une vue
		return rslt;
	}

Deux éléments sont nécessaires.

  1. Chargez l'image.
  2. Passez le hashmap en tant que vue.

Seulement ça. Le processus de compilation et de sortie du formulaire est laissé au côté JSP.

Tout d'abord, écrivez le code suivant dans 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();
	}

%>

Qu'est ce qui a changé

reportPrint.jsp


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

L'endroit appelé. Ici, définissez le format de sortie PDF.

En outre, la méthode de base de sortie des formulaires ne change pas quel que soit le format de téléchargement ou le format d'affichage. Préparer une liste de paramètres et de champs pour les données Compilez et Sortie vers le flux de sortie.

Puisqu'il n'y a pas de champ cette fois, J'utilise le nouveau JREmptyDataSource () lors de l'incorporation de données.

Courir

Accédons à l'adresse spécifiée par le contrôleur.

image.png

Vous avez imprimé un formulaire avec un logo de caractère. Je pense que c'est un meilleur choix de l'utiliser pour les logos et les tampons électroniques dans les lieux d'affaires.

Créons automatiquement des documents.

Recommended Posts

J'ai essayé d'imprimer un formulaire avec Spring MVC et Jasper Reports Extra Edition (édition d'image)
J'ai essayé d'imprimer un formulaire avec Spring MVC et Jasper Reports Extra (édition Variables)
J'ai essayé d'imprimer un formulaire avec Spring MVC et Jasper Reports 1/3 (paramètres Jasper Reports)
J'ai essayé d'imprimer un formulaire avec Spring MVC et Jasper Reports 3/3 (contrôle Spring MVC)
J'ai essayé d'implémenter le téléchargement de fichiers avec Spring MVC
J'ai essayé de créer une fonction / écran d'administrateur de site commercial avec Java et Spring
J'ai essayé GraphQL avec Spring Boot
J'ai essayé Flyway avec Spring Boot
J'ai essayé de me connecter à MySQL en utilisant le modèle JDBC avec Spring MVC
J'ai essayé de créer un environnement de développement Spring MVC sur Mac
J'ai essayé de jouer un peu avec BottomNavigationView ①
J'ai essayé l'initialisation paresseuse avec Spring Boot 2.2.0
Implémenter l'entrée / sortie d'image avec Spring MVC
Comment créer un formulaire Excel à l'aide d'un fichier modèle avec Spring MVC
J'ai essayé de cloner une application Web pleine de bugs avec Spring Boot
Juste des images d'entrée et de sortie avec Spring MVC
J'ai aussi essayé Web Assembly avec Nim et C
J'ai essayé de lier JavaFX et Spring Framework.
J'ai essayé de casser le bloc avec java (1)
J'ai essayé Spring.
J'ai essayé d'utiliser Wercker pour créer et publier une image Docker qui lance GlassFish 5
J'ai créé une fonction pour enregistrer des images avec l'API dans Spring Framework. Partie 1 (édition API)
Mémo d'utilisation de Spring Security: coopération avec Spring MVC et Boot
J'ai démarré MySQL 5.7 avec docker-compose et j'ai essayé de me connecter
J'ai essayé de démarrer avec Spring Data JPA
J'ai créé un serveur et un client Restful au printemps.
J'ai essayé OCR de traiter un fichier PDF avec Java
J'ai écrit un test avec Spring Boot + JUnit 5 maintenant
Facile à créer LINE BOT avec Java Servlet Partie 2: J'ai essayé des messages image et des modèles
J'ai créé une fonction pour enregistrer des images avec l'API dans Spring Framework. Partie 2 (édition client)
[J'ai essayé] Tutoriel de printemps
J'ai essayé Spring Batch
J'ai essayé de créer un environnement de développement java8 avec Chocolatey
J'ai essayé de moderniser une application Java EE avec OpenShift.
[Rails] J'ai essayé de créer une mini application avec FullCalendar
J'ai essayé le guide d'introduction de Spring Boot [Accès aux données avec JPA]
J'ai essayé de vérifier ceci et celui de Spring @ Transactional
Je veux faire une liste avec kotlin et java!
Je veux créer une fonction avec kotlin et java!
J'ai essayé JAX-RS et pris note de la procédure
J'ai essayé de créer un environnement de développement padrino avec Docker
J'ai essayé OCR de traiter un fichier PDF avec Java part2
J'ai essayé de démarrer avec Swagger en utilisant Spring Boot
J'ai créé un système d'exemple MVC simple à l'aide de Spring Boot
J'ai essayé d'exprimer les résultats avant et après de la classe Date avec une ligne droite numérique