0

我正在尝试在打印时更改 RadHtmlChart 的方向。这是我正在使用的代码,基本上,它获取图表的图像并将其放在另一个窗口中进行打印。它正在工作,但我需要将方向更改为横向,而用户无需更改其设置。我读到使用 JavaScript 和 CSS 已经不可能了,另一种方法是导出为 PDF。

<script type="text/javascript">
    function PrintPage() {
        var printContent = document.getElementById("divChart");
        var WinPrint = window.open('', '', 'left=0,top=0,width=800,height=900,toolbar=0,scrollbars=0,status=0);
        WinPrint.document.write(printContent.innerHTML);
        WinPrint.document.close();
        WinPrint.focus();
        WinPrint.print();
        WinPrint.close();
    };
</script>

我已经关注了如何在 Telerik 中执行此操作的演示,但我收到了一个 JavaScript 错误:

$Telerik' not defined

我在 Telerik 上查找了此错误,并找到了有关一般故障排除的文档。我按照指示(将 Telerik 的 DLL 版本输入 Telerik.Web.UI.axd 处理程序),这导致找不到我的程序组件(RadGrid 等)。

是否有将 RadHtmlChart 导出为 PDF 的替代方法?实际上,图表甚至不必导出为 PDF,我只需要一种以横向打印表单的方法,而无需用户选择方向。

谁能帮我?

编辑

我能够更正 $telerik 错误并导出 PDF 文件,但它已损坏并且没有显示任何数据。我无法找到解决这个特定问题的方法,但我找到了另一种导出适合我需要的 RadHtmlChart 的方法。我将在下面为遇到这些问题的任何人发布我的代码。注意:此解决方案使用 Telerik 组件,并且必须包装在 RadCodeBlock 中。我想导出“divChart”中的所有内容,并且必须使用“#divChart”而不是“.divChart”。

<telerik:RadCodeBlock runat="server">
    <script type="text/javascript">
        var $ = $telerik.$;

        function exportChartImage() {
            $find('<%=RadClientExportManager1.ClientID %>').exportImage($("#divChart"));
        };
    </script>
</telerik:RadCodeBlock>

下一部分进入您的主要内容。我把它直接放在包含我的内容的 div 标签下面。注意:如果不设置高度/宽度,图像会失真和变小!

<telerik:RadClientExportManager runat="server" ID="RadClientExportManager1">
    <ImageSettings Height="900px" Width="950px" FileName="Chart.png" />
</telerik:RadClientExportManager>

这将进入页面加载事件中的代码后面。

Dim relativePath = "~/api/export/file"
RadClientExportManager1.ImageSettings.ProxyUrl = ResolveUrl(relativePath)

现在,图表或我相信的任何其他 Telerik 组件都将导出为图像,并且在打印时处于横向!

编辑 2

此解决方案仅适用于现代浏览器!我在 IE10 上对此进行了测试,它还输出了正确格式的图像。

4

0 回答 0