我正在尝试在打印时更改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组件将作为图像导出,并在打印时以横向方式导出!
此解决方案仅适用于现代浏览器!我在IE10上测试了它,它也输出了正确的格式化图像。