SSRS2

io.github.AntoineGou由 GitHub 账号 AntoineGou 发布v1.6.0更新于 Oct 27, 2026

Markdown to editable PowerPoint, Word, PDF; checks, edits and previews RDLC/RDL reports.

已验证Streamable HTTP可网页运行开发者工具媒体与设计

概览

AI 生成的概览

SSRS2 可将 RDLC/RDL 报表和 Markdown 转换为 PDF、Word、PowerPoint、Excel 和图片,并让助手校验、概述、编辑和预览报表。

可以做什么
  • 把报表或 Markdown 文档、幻灯片转换为 pptx、pdf、docx、xlsx、mhtml、tiff、png、csv 或 xml
  • 按 Report Viewer 引擎校验报表定义和 Markdown,返回诊断信息与运行时计数
  • 概述报表的页面、数据集、字段、参数和各项元素,便于规划修改
  • 通过设计器操作编辑报表 XML,全部成功或全部不生效,并报告新问题和页数
  • 先返回 JSON 摘要,再以 PNG 或 PDF 渲染页面预览
  • 按结构对报表定义分组,便于对多个相似报表统一修改
适用场景
适合助手编写或维护 RDLC/RDL 报表、需要在没有 Windows Report Viewer 的情况下校验、预览或修改报表时使用;也适合把 Markdown 内容转成可编辑的 PowerPoint、Word 或 PDF。
运行要求
可作为远程端点使用,也可用 dnx SSRS2.Mcp 在本地以 .NET 工具运行。许可证密钥可选,通过 SSRS2_LICENSE 环境变量或 Authorization 请求头提供。Linux 上需要 fontconfig(libfontconfig1)。
安装前请注意
没有许可证密钥时,PDF 和图片输出会带试用水印,远程调用还会按地址限流;商业许可证需付费(每年 799 美元或三年 1,999 美元)。编辑工具会改写报表定义,修改后应复核。较大的编辑结果可能以限时下载链接返回。

安装

在 SourceWeft 中

  1. 打开 控制台中的 SSRS2,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.AntoineGou%2Fssrs2/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "ssrs2": {
      "type": "http",
      "url": "https://ssrs2.net/mcp"
    }
  }
}

README

SSRS2 — Cross-Platform RDLC Report Engine for .NET

Run the RDLC reports you already have on any platform: PDF, Excel, Word, HTML and images, laid out as Microsoft's Report Viewer lays them out.

https://github.com/user-attachments/assets/66406aec-b92b-40cf-b031-2d506de34857

Drop-in replacement for the LocalReport of Microsoft's Report Viewer — runs on Windows, Linux, macOS, Docker, Kubernetes, and cloud environments. No GDI+ and no libgdiplus: on Linux it needs only fontconfig, which most systems have (the official .NET Docker images need libfontconfig1, see below).

[NuGet] [Live Demo] [Website]


Quick Start

bash
dotnet add package SSRS2.NETCore
csharp
using SSRS2.Reporting.NETCore;
var report = new LocalReport();report.LoadReportDefinition(rdlcStream);report.DataSources.Add(new ReportDataSource("Data", yourData));
byte[] pdf = report.Render("PDF");

Your existing .rdlc files work without modification, and your LocalReport code keeps working once its namespace is changed.

In a Linux container, add fontconfig, which the official .NET images lack:

dockerfile
RUN apt-get update && apt-get install -y --no-install-recommends libfontconfig1 && rm -rf /var/lib/apt/lists/*

Free trial — works without a license key. Output includes a small watermark until activated.
Buy a licence at ssrs2.net/pricing: the key arrives by email within a minute. Set it as the SSRS2_LICENSE environment variable or call Ssrs2.License.Activate("your-key").

Try it in the browser — the online designer (beta) opens your .rdlc, previews it as SSRS2 renders it on Linux and exports PDF, Excel or Word. No install; an account is only needed to save reports online.


Why SSRS2?

Microsoft's Report Viewer runs on .NET Framework and Windows only, and has no .NET 8, 9 or 10 version (checked 2026-10-01). Microsoft points to Power BI paginated reports instead, which come with Power BI Pro at USD 14 per user per month. If you have existing RDLC reports and need to run them on modern .NET, your options are limited:

SSRS2ReportViewerCore (free)Power BI Paginated
Linux / Docker✅ PDF and images included (with libfontconfig1)⚠️ HTML, Excel, Word❌ Cloud only
No GDI+ dependency✅❌ System.DrawingN/A
.NET 8 / 9 / 10✅✅N/A
.NET Framework 4.7.2+✅❌N/A
macOS / ARM64✅⚠️ Partial❌
Self-hosted✅✅❌
SupportSold separatelyCommunityMicrosoft
Data sovereignty✅ On your infra✅❌ Cloud

Export Formats

FormatRender StringExtension
PDF (with hyperlinks)"PDF".pdf
Excel"EXCELOPENXML".xlsx
Word"WORDOPENXML".docx
PowerPoint (editable slides)"PPTX".pptx
HTML5"HTML5".html
HTML 4.0"HTML4.0".html
MHTML"MHTML".mhtml
PNG"PNG".png
JPEG"JPEG".jpg
WebP"WEBP".webp
TIFF (all pages)"IMAGE".tif
CSV"CSV".csv
XML"XML".xml

Beyond rendering

  • Check a report without running it: report.CheckDefinition() returns each problem of a definition (its code, item, property and expression), without rendering it.
  • Reports your application did not write: RestrictedCode = true holds their expressions and custom code to what a report computes with: no files, environment, processes or reflection (.NET 8, 9 and 10).
  • PDF settings: the report's title and author, passwords and permissions (AES-256), or PDF/A-2b for archives.
  • A viewer of your own: Toggle, Sort, FindBookmark, FindDocumentMapNode and Drillthrough do what Report Viewer's control does on a click.
  • AI coding agents: dnx SSRS2.Mcp gives Claude Code, Cursor or VS Code tools that check and preview the reports they write, on your machine (SSRS2.Mcp).

Platform Support

PlatformStatus
Windows x64✅
Linux x64 and ARM64✅
macOS✅
Docker containers✅
Azure App Service (where ssrs2.net runs)✅

.NET Framework Support

FrameworkStatus
.NET Framework 4.7.2✅
.NET Framework 4.8✅
.NET 8.0 (LTS)✅
.NET 9.0✅
.NET 10.0✅

Migration from Microsoft ReportViewer

csharp
// Before (Microsoft Report Viewer — Windows only)using Microsoft.Reporting.WinForms;
// After (SSRS2 — runs anywhere)using SSRS2.Reporting.NETCore;
// Same API. Same RDLC files. Any platform.var report = new LocalReport();report.LoadReportDefinition(rdlcStream);report.DataSources.Add(new ReportDataSource("Data", yourData));byte[] pdf = report.Render("PDF");

Migrate at your own pace — SSRS2 supports .NET Framework 4.7.2/4.8 AND .NET 8/9/10. Adopt on your existing .NET Framework app today, move to .NET 10 when ready.

📖 Full migration guide with cost comparison →


Licensing

SSRS2 is a commercial product with a free trial (watermarked output).

  • One licence per company: USD 799 a year, or USD 1,999 for three years — no per-seat or per-server fees
  • Unlimited developers, applications, servers and renders: nothing is counted, and the key is checked offline
  • All features included in every licence, with every release published while it runs; a key keeps working forever with those releases
  • Not included: support, migration help and custom work (sold separately), and shipping SSRS2 inside software other companies install (a separate redistribution licence)

Buy online at ssrs2.net/pricing; the licence terms are one page.


Resources

ResourceLink
🌐 Websitessrs2.net
🎮 Live Demossrs2.net/demo
🎨 Online Designer (beta)designer.ssrs2.net
📖 Migration Guidessrs2.net/ssrs-to-dotnet-core
📊 Feature Comparisonssrs2.net/compare
💰 Pricingssrs2.net/pricing
📝 Medium ArticleSSRS to .NET Core: 3 Options Compared
🤖 Medium ArticleDesigning SSRS reports with an AI agent
📦 NuGetnuget.org/packages/SSRS2.NETCore

Support

ChannelPurpose
GitHub IssuesBug reports & feature requests
ssrs2.netDocumentation & demos
[email protected]Licences, and support or migration help (sold separately)

SSRS2 — Enterprise Reporting for Modern .NET

来源:README.md,提交 5507597

工具

6

convert_report

Convert a report to a file

Converts a report (RDL or RDLC) or Markdown (a document, or slides) with SSRS2 (Report Viewer's rules) to pptx (PowerPoint's own text boxes, tables and pictures, a slide per page: a Markdown deck becomes a deck), pdf, docx, xlsx, mhtml, tiff, png (the first page), csv or xml. It is checked first, as validate_report checks it: with errors nothing is written. Returns validate_report's answer and written: the file's name and size, url (downloaded once, within ten minutes), curl (the command that saves it), and what it holds read back as PowerPoint (slides) or Word and a PDF reader (document) get it. help: ["answers"] says more.

输入参数helpnamerdlcformatculturemarkdownpicturesparameterssampleData

compare_reports

Group reports by structure

Groups report definitions (RDL or RDLC) by structure, to plan one change across many: a group's reports have the same items, datasets, parameters and code modules and differ only in places, texts and looks, so one set of operations naming their items changes them alike. Returns groups, the largest first: structure (edit_report's structure), roles (what role:signature and the like name there), differs (how its first report differs from the first group's), places (items placed otherwise), and versions: each report and its version.

输入参数detailreports必填

render_preview

Render a report's pages

Renders a report definition (RDL or RDLC) or Markdown (a document, or slides: a page each) with SSRS2, the Report Viewer engine, and returns its pages as PNG, as a PDF of it would show them: a JSON summary first (what validate_report answers, no need to validate first; madeUpRows; conversion for Markdown, what it approximated at its lines; text, what the pages print, page by page in reading order, where values are read exactly), then an image per page, or one image of numbered thumbnails (sheet) to see a deck or a long report whole. A report with errors is not rendered. help: ["answers"] says more.

输入参数dpihelprdlcpagessheetculturemarkdownpicturesfirstPagemadeUpRowsparameterssampleData

describe_report

Outline a report

Outlines a report definition (RDL or RDLC) to plan a change: its page, datasets and fields, parameters, and every item top to bottom with its kind, place and size in cm, what it shows and does (hidden, toggled, page breaks), and its role (title, table, totals, declaration, signature...), which role:signature and the like name in edit_report and validate_report whatever the report calls the item. Returns version (edit_report's baseVersion) and outline; with item, that part's XML as written, with its lines (to copy an edit's find from).

输入参数itempartrdlc必填detail

edit_report

Change a report

Changes a report definition (RDL, RDLC) given as its XML by operations (the SSRS2 designer's own), all or none. The text is patched (the rest as it was), then checked: its new problems and pages said. The answer's rdlc is the changed report (past 200 KB, url and curl: a download within ten minutes). Operations ("op"): dataset, parameter, page, header, footer, code, textbox, table, matrix, list, chart, gauge, indicator, databar, sparkline, image, barcode, qrbill, subreport, line, rectangle, set, remove, space, move, swap, copy, field, column, remove_column, row, total, group, sort, widths, filter, restyle, palette. A new item goes "after"/"before" an item or a role (role:signature), in a container or at [x, y] cm. help: ["textbox","set"]: their words.

输入参数fithelprdlccheckeditsdetaildryRunrewritesummarymaxPagespicturesvariants另有 6 个

validate_report

Validate a report

Checks a report definition (RDL or RDLC) or Markdown with SSRS2's engine (Report Viewer's rules): XML, schema, every expression compiled, then a run with rows through every page. Returns ok, a summary and diagnostics (code, severity, item, property, expression, line, message, hint); atRunTime counts what failed as it ran (#Error cells). Call it after each change until ok is true and atRunTime absent. Expressions are Visual Basic and may only compute (restrictedCode). Also layout, expect, variants, rowCounts and the report as it was (baselineRdlc): help: ["checks"].

输入参数helprdlcexpectlayoutrenderculturemarkdownpicturesvariantsrowCountsmadeUpRowsparameters另有 2 个

版本历史

2
  1. v1.6.0最新Oct 19, 2026
  2. v1.5.0Oct 14, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。