语言 SDK

在任意语言中使用
Majorsilence Reporting

Python、PHP 和 Ruby 封装库让您无需编写任何 .NET 代码,即可将 RDL 报表渲染为 PDF、Excel、CSV、HTML 等格式。每种语言都提供三种集成模式,以匹配您的部署约束。


集成模式

每种语言绑定都提供三个类,覆盖不同的部署场景:

模式 工作原理 何时使用
Report 通过系统 shell 将 dotnet RdlCmd.dll 作为子进程启动。要求服务器上已安装 .NET 运行时。 设置最简单——适合开发环境,或 .NET 已经存在于目标机器时使用。
ReportAot 启动一个自包含的 AOT 编译二进制文件(RdlCmd)。完全不需要 .NET 运行时——该二进制文件包含一切所需内容。 适用于无法安装 .NET 运行时的生产部署环境。将该二进制文件与您的应用一起复制部署即可。
ReportNative 通过原生 FFI(ctypes / PHP FFI / Fiddle)在进程内加载 librdlnative.so。不会启动子进程。 延迟最低、吞吐量最高。若需要在不写临时文件的情况下进行内存渲染,此模式为必需(目前仅 Python 支持)。

功能对比

功能PythonPHPRubyRust
最低语言版本3.10+8.1+3.0+1.65+
包管理器pipComposer暂无 gem暂无 crate
运行时依赖项libloading
subprocess(dotnet)模式
AOT 二进制模式
原生 FFI 模式✓ 唯一模式
add_data() 内存数据集仅原生模式仅原生模式仅原生模式
真正的内存缓冲区(无临时文件)✓ 原生模式
线程安全的库句柄Arc 支持
xlsx_table、tifb、mht 格式AOT + 原生模式AOT + 原生模式AOT + 原生模式所有模式

支持的导出格式

三种语言绑定都支持传递给 export() / export_to_memory() 的相同核心格式字符串:

格式字符串输出可用于
pdfPDF所有模式
csvCSV 文本所有模式
xlsxExcel 工作簿所有模式
xmlXML 数据所有模式
rtf富文本格式所有模式
tifTIFF 图像(彩色)所有模式
htmlHTML所有模式
xlsx_tableExcel(表格样式)仅 AOT + 原生模式(Python/PHP/Ruby);所有模式(Rust)
tifbTIFF 图像(黑白)仅 AOT + 原生模式(Python/PHP/Ruby);所有模式(Rust)
mhtMHTML 网页存档仅 AOT + 原生模式(Python/PHP/Ruby);所有模式(Rust)