-
Notifications
You must be signed in to change notification settings - Fork 78
net.sf.jasperreports.engine.JRException: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Byte no válido 1 de la secuencia UTF-8 de 1 bytes is not a valid jrxml file #183
Copy link
Copy link
Open
Description
Describe the bug
It happens when I want to test the generation of the .pdf from the Django shell, the code I use to be able to run it in the shell is:
import os
from django.conf import settings
from pyreportjasper import PyReportJasper
from decouple import config
class JasperReports:
"""Clase para generar reportes usando JasperReports con pyreportjasper"""
def __init__(self):
"""Inicializa las rutas y la conexión a la base de datos"""
self.reports_dir = os.path.join(settings.BASE_DIR, 'reports')
self.jdbc_dir = os.path.join(settings.BASE_DIR, 'jdbc-drivers')
self.conn = {
'driver': 'postgres',
'username': config('DB_USER'),
'password': config('DB_PASSWORD'),
'host': config('DB_HOST'),
'database': config('DB_NAME'),
'schema': 'public',
'port': config('DB_PORT', default='5432'),
'jdbc_dir': self.jdbc_dir
}
def generate_report(self, report_name, output_name, parameters={}):
"""
Genera un reporte JasperReport.
:param report_name: Nombre del archivo `.jrxml` sin extensión (debe estar en `reports/`).
:param output_name: Nombre del archivo de salida sin extensión (se guarda en `media/reportes/`).
:param parameters: Diccionario con parámetros para el reporte.
:return: Ruta del archivo PDF generado.
"""
input_file = os.path.join(self.reports_dir, 'rptRecibo.jasper')
output_file = os.path.join(settings.MEDIA_ROOT, f"reportes/{output_name}")
# Configuración del reporte
pyreportjasper = PyReportJasper()
pyreportjasper.config(
input_file=input_file,
output_file=output_file,
db_connection=self.conn,
output_formats=["pdf"],
parameters=parameters,
locale="es_PY"
)
pyreportjasper.process_report()
return f"{output_file}.pdf"
To Reproduce
From the django shell it would be as follows:
Python 3.10.0 (tags/v3.10.0:b494f59, Oct 4 2021, 19:00:18) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from utils.JasperReports import JasperReports
>>> jasper = JasperReports()
>>> pdf_path = jasper.generate_report('rptRecibo', 'recibo_123', {'P_ID': 54})
OpenJDK 64-Bit Server VM warning: Archived non-system classes are disabled because the java.system.class.loader property is specified (value = "org.update4j.DynamicClassLoader"). To use archived non-system classes, this property must not be set
12:28:29.388 [main] ERROR org.apache.commons.digester.Digester - Parse Fatal Error at line 1 column 1: Byte no válido 1 de la secuencia UTF-8 de 1 bytes
org.xml.sax.SAXParseException: Byte no válido 1 de la secuencia UTF-8 de 1 bytes
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204) ~[?:?]
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178) [?:?]
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400) [?:?]
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:306) [?:?]
at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:203) [?:?]
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:861) [?:?]
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:825) [?:?]
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) [?:?]
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1224) [?:?]
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:637) [?:?]
at org.apache.commons.digester.Digester.parse(Digester.java:1892) [commons-digester-2.1.jar:2.1]
at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:269) [jasperreports-6.20.6.jar:6.20.6-5c96b6aa8a39ac1dc6b6bea4b81168e16dd39231]
at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:256) [jasperreports-6.20.6.jar:6.20.6-5c96b6aa8a39ac1dc6b6bea4b81168e16dd39231]
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:245) [jasperreports-6.20.6.jar:6.20.6-5c96b6aa8a39ac1dc6b6bea4b81168e16dd39231]
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:223) [jasperreports-6.20.6.jar:6.20.6-5c96b6aa8a39ac1dc6b6bea4b81168e16dd39231]
Caused by: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Byte no válido 1 de la secuencia UTF-8 de 1 bytes
at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(UTF8Reader.java:702) ~[?:?]
at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(UTF8Reader.java:568) ~[?:?]
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1699) ~[?:?]
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.arrangeCapacity(XMLEntityScanner.java:1565) ~[?:?]
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.skipString(XMLEntityScanner.java:1603) ~[?:?]
at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:158) ~[?:?]
... 10 more
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "C:\Users\Usuario\Documents\Proyectos\aspreg\aspreg\AppWeb\utils\JasperReports.py", line 48, in generate_report
pyreportjasper.process_report()
File "C:\Users\Usuario\Documents\Proyectos\aspreg\aspreg\venv\lib\site-packages\pyreportjasper\pyreportjasper.py", line 192, in process_report
raise error
NameError: Error fill report: input file: net.sf.jasperreports.engine.JRException: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Byte no válido 1 de la secuencia UTF-8 de 1 bytes is not a valid jrxml file:
>>>
Screenshots
Desktop (please complete the following information):
- OS: Windows 10.0.26100
- Python version: Python 3.10.0
- Library version: 2.1.4
- Java version: openjdk version "19.0.2" 2023-01-17
- JVM: OpenJDK 64-Bit Server VM Temurin-19.0.2+7 (build 19.0.2+7, mixed mode, sharing)
Jaspersoft Studio
- Version: 7.0.1
Additional context
Add any other context about the problem here.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels

