如何生成PowerBI嵌入式报告的PDF输出

9
我在网页中嵌入了一个PowerBI报告。我需要在页面上添加一个“导出”按钮,当点击该按钮时将报告导出为PDF格式。我该如何实现?在线上有人建议使用report.print()window.print(),但这两种方法对我都不起作用。
var reportContainer = document.getElementById('reportContainer');

var report = powerbi.embed(reportContainer, config);
var report2 = powerbi.get(reportContainer);

console.log(report);  --returns the report
console.log(report2); --also returns the report

report.print(); --nothing happens
report2.print(); --nothing happens

var saveAsParameters = {
    name: "newReport"
};
report2.saveAs(saveAsParameters); --nothing happens report.saveas also nothing happens

window.print(); --it prints a blank page.

我找到了这个,但是没有帮助:打印/生成嵌入式Power BI报告的PDF 请注意,我知道可以通过PowerBI Desktop将报告导出为pdf,但我需要在自定义网页上执行此操作。
非常感谢任何帮助。

请使用以下答案来打印嵌入式报告,链接为 https://stackoverflow.com/questions/54460823/download-print-option-in-powerbi-embedded-report-with-angular7/55687031#55687031。此解决方案已在我的应用程序中实施。同时,我仍在寻找将此嵌入式报告导出为PDF的选项,但尚未找到任何解决方案。 - Poopandian
你使用的PowerBI JavaScript库是哪个版本? - vvvv4d
好的,我认为是2.7.3 @vvvv4d。 - Eray Balkanli
你能否尝试升级到2.7.5版本?我正在使用2.7.5版本,当你运行powerbi.embed(reportContainer, config);后,report.print()会触发打印。 - vvvv4d
目前我无法使用Power BI进行工作,因为它是一款商业产品,而且我换了公司,我的新公司不使用Power BI。抱歉@vvvv4d。 - Eray Balkanli
这里有一个Chrome扩展程序可以做同样的事情:https://github.com/OmSao/PowerBI_Visual_Print_Utility - Om Sao
3个回答

3
你可以为消费者提供打印报告的选项。每次打印时,都可以选择将其下载为 PDF 文件。因此,您可以通过打印的方法来解决问题。
这可以通过使用Power BI Javascript API轻松实现。
首先创建一个HTML按钮,允许用户点击以打印他们的报告。
<button id="theClick" onclick="print()">Print</button>

一旦你有了按钮,就需要添加相应的JavaScript代码。

function print() {
            var element = $('#report-container')[0];
            var report = powerbi.get(element);

            report.print();

        }

如需更多信息,请阅读微软官方文档:https://learn.microsoft.com/en-us/javascript/api/overview/powerbi/embedding-basic-interactions


谢谢Praggy,它起作用了!你有什么想法可以导出完整的报告吗? - Ale DC

3
看起来,很快这将作为API的一部分提供(2020年2月之后)。
开发者将能够在两种主要情况下向用户提供导出他们数据的选项:交互模式和非交互模式。
以下功能将得到支持:
- 为Power BI和非Power BI用户导出报告(SaaS和PaaS嵌入式场景) - 导出用户上下文(屏幕截图将包括应用的筛选器、交叉筛选器等) - 包括行级安全性(RLS)的导出 - 导出单个页面或整个报告
详细信息请参阅:https://learn.microsoft.com/en-us/power-platform-release-plan/2019wave2/business-intelligence/api-export-report-powerpoint-pdf-jpeg

1
真的。在2021年2月2日,“print”作为API的一部分正在工作。 - demo

0
我通过动态渲染报告中的所有页面为单独的iframe来解决这个问题,然后使用CSS打印媒体查询将iframes格式化为适合打印的页面。用户可以简单地将浏览器打印预览保存为PDF。
虽然渲染多个iframes是比较耗费资源的,而且不推荐从性能角度考虑,但它仍然比内置的Power BI PDF导出更快,并且更加可定制!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接