如何从 Kendo 电子表格创建内联 PDF 并将其嵌入到 iFrame 中?
How to Create an inline PDF from a Kendo Spreadsheet and Embed it in an iFrame?
我们正在使用 Kendo 电子表格控件来创建发票。我们需要从电子表格生成 PDF 并将该 PDF 显示在 iframe 中以供审阅。 PDF 无法写入磁盘。我们已经尝试了以下代码的多次迭代但没有成功:
// Create the spreadsheet
let sheet = $('#sheet1').kendoSpreadsheet()
let activeSheet = sheet.activeSheet()
// Add some content
activeSheet.range('A1').value('Invoice')
// Create the iFrame.
$('#pdf_preview').html(`<iframe id="embedded-pdf" name="test.pdf" type="application/pdf" width="100%" height="100%"></iframe>`)
// Set the proxyTarget to the name of the iFrame
sheet.options.pdf.proxyTarget = 'embedded-pdf'
sheet.saveAsPDF()
代码下载 pdf 而不是嵌入它。
这是正确的做法吗?或者,还有其他方法可以从 Kendo 电子表格生成 PDF 并嵌入生成的 PDF 吗?
来自 Telerik 支持:https://www.telerik.com/account/support-tickets/view-ticket?threadid=1138153
您可以简单地在元素中加载生成的 PDF 数据 (base64),而不是配置 PDF 导出代理目标。为此,您可以使用电子表格 Sheet 对象的 draw() 方法:
var spread = $('#spreadsheet').getKendoSpreadsheet();
var activeSheet = spread.activeSheet();
activeSheet.range('B1').value('B1-TEST');
$('#pdf_preview').html(`<iframe id="embedded-pdf" name="invoice.pdf" type="application/pdf" width="100%" height="100%"></iframe>`);
activeSheet.draw(function (group) {
kendo.drawing.exportPDF(group)
.done(function (data) {
$('#embedded-pdf').attr('src', data);
});
});
我们正在使用 Kendo 电子表格控件来创建发票。我们需要从电子表格生成 PDF 并将该 PDF 显示在 iframe 中以供审阅。 PDF 无法写入磁盘。我们已经尝试了以下代码的多次迭代但没有成功:
// Create the spreadsheet
let sheet = $('#sheet1').kendoSpreadsheet()
let activeSheet = sheet.activeSheet()
// Add some content
activeSheet.range('A1').value('Invoice')
// Create the iFrame.
$('#pdf_preview').html(`<iframe id="embedded-pdf" name="test.pdf" type="application/pdf" width="100%" height="100%"></iframe>`)
// Set the proxyTarget to the name of the iFrame
sheet.options.pdf.proxyTarget = 'embedded-pdf'
sheet.saveAsPDF()
代码下载 pdf 而不是嵌入它。
这是正确的做法吗?或者,还有其他方法可以从 Kendo 电子表格生成 PDF 并嵌入生成的 PDF 吗?
来自 Telerik 支持:https://www.telerik.com/account/support-tickets/view-ticket?threadid=1138153
您可以简单地在元素中加载生成的 PDF 数据 (base64),而不是配置 PDF 导出代理目标。为此,您可以使用电子表格 Sheet 对象的 draw() 方法:
var spread = $('#spreadsheet').getKendoSpreadsheet();
var activeSheet = spread.activeSheet();
activeSheet.range('B1').value('B1-TEST');
$('#pdf_preview').html(`<iframe id="embedded-pdf" name="invoice.pdf" type="application/pdf" width="100%" height="100%"></iframe>`);
activeSheet.draw(function (group) {
kendo.drawing.exportPDF(group)
.done(function (data) {
$('#embedded-pdf').attr('src', data);
});
});