如何使用 python 和 "pyreportjasper" 将 "jrxml"(带数据库)转换为 "pdf"?

How to use python with "pyreportjasper" to convert from "jrxml" (with database) to "pdf"?

我有一个由 TIBCO Jaspersoft 创建的“.jrxml”文件。我按照 link https://pypi.org/project/pyreportjasper/ 使用 Python 从“.jrxml”转换为“.pdf”。当我不使用数据库时,它似乎工作得很好。

我做了 "Compiling" 和 "Processing" 主题,它工作得很好,但我坚持了一个名为 "Advanced example - using a database" 的主题。代码如下。

from platform import python_version
import pyreportjasper


def advanced_example_using_database():
    input_file = 'C:/Users/CPM-USER/JaspersoftWorkspace/SCPS_TEST/test1.jrxml'
    output = 'C:/Users/CPM-USER/Desktop'
    con = {
        'driver': 'mysql',
        'username': 'root',
        'password': 'root',
        'host': 'localhost',
        'database': 'icontrol_cscs_prj',
        'port': '3306'
    }
    print(python_version())
    jasper = pyreportjasper.JasperPy()
    jasper.process(
        input_file,
        output_file=output,
        format_list=["pdf"],
        # parameters={'python_version': '3.7.4'},
        db_connection=con,
        locale='en_US'  # LOCALE Ex.:(en_US, de_GE)
    )


advanced_example_using_database()

它导致错误 "Unable to load driver: com.mysql.jdbc.Driver"。

该错误表明您在 java 类路径中没有 mysql 驱动程序。

您需要先下载驱动http://dev.mysql.com/downloads/connector/j/

然后根据 pyreportsjasper documentation 你需要将 .jar 放在

pyreportjasper/jasperstarter/jdbc/

目录。