抓住Kendo Spreadsheet& WYSIWYG编辑器PDF导出dataURI

时间:2016-08-18 16:59:45

标签: kendo-ui editor spreadsheet

有没有办法从Kendo Spreadsheet和WYSIWYG Editor小部件的pdf导出中获取base64 dataURI,就像Kendo Gantt小部件一样?

我正在引用此Kendo UI Dojo Example以及Telerik论坛问题"Get Base64 From Export PDF"

为了从Gantt小部件成功获取base64数据,代码如下所示:

    $("#gantt").kendoGantt({
        toolbar: ["pdf"],
        dataSource: [
          {
            id: 1,
            orderId: 0,
            parentId: null,
            title: "Task1",
            start: new Date("2014/6/17 9:00"),
            end: new Date("2014/6/17 11:00")
          }
        ],
        pdfExport: function(e) {
            e.preventDefault();

            gantt._drawPDF()
              .then(function(root) {
                  return kendo.drawing.exportPDF(root, {
                      // PDF options
                  });
              })
              .done(function(dataURI) {
                  console.log(dataURI);
                  // Data URI available here
              });
         }
      });
      var gantt = $("#gantt").data("kendoGantt");

您会注意到可以在pdfExport对象中.done(function(dataURI){...})访问dataURI。

SpreadsheetWYSIWYG Editor是否有类似内容?我搜索了文档和论坛,但没有骰子。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

使用编辑器API中的以下代码段解决了这个问题:

$("#editor").kendoEditor({
        tools: ["pdf"],
        value: "sample editor data"
    }
});

var editor = $("#editor").data("kendoEditor");

editor._drawPDF()
    .then(function(root) {
        return kendo.drawing.exportPDF(root, {});
    })
    .then(function(dataURI) {
        console.log(dataURI);
});

看起来我们能够将代码削减到最低限度,并且它以我们需要的方式运行。以下是Kendo提供的工作演示的链接:Dojo

请注意,该代码使用的内部方法似乎与PublicAPI不同。

对于电子表格......他们为此功能打开了功能请求票证。我们使用他们的服务器端API来生成PDF信息,因为似乎没有办法通过JavaScript API获取dataURI。

答案 1 :(得分:-1)

您可以使用与Kendo UI Editor完全相同的方法,但不能使用电子表格。