hidden div要素を考慮してください。私はそれをPDFコンテンツを構築し、PDFとしてダウンロードしようとする隠れ要素として使用しています。「hidden div」要素をUIとして表示せずにPDFとしてエクスポートする方法
HTML要素は次のように宣言されています。
<div id="griddata" style="display:none;">
<div id="reportHeader" style="display:none;">
Consider other elements that I want to show in the PDf here
</div>
</div>
以下、私はLoadPDF機能を通じて呼び出すPDFコードとして剣道輸出チャートです。
function LoadPDF() {
try {
$("#griddata").show();
$("#reportHeader").show();
if ($("#chartDiv").html() != null && $("#griddata").html() != '') {
setTimeout(function() {
kendo.drawing.drawDOM($("#griddata"))
.then(function (group) {
// Render the result as a PDF file
return kendo.drawing.exportPDF(group, {
paperSize: "auto",
margin: { left: "1cm", top: "1cm", right: "1cm", bottom: "1cm" }
});
})
.done(function (data) {
// Save the PDF file
kendo.saveAs({
dataURI: data,
fileName: window.sessionStorage.getItem('XXXName') + ".pdf",
proxyURL: "/Account/Export"
});
$("#reportHeader").hide();
$("#griddata").hide();
});
}, 2000);
}
}
catch (e) {
$("#reportHeader").hide();
$("#griddata").hide();
UMGenerateAlert('Error while exporting data');
}
finally {
}
}
上記の方法ではうまく動作しますが、問題は、PDFとして「griddata」div要素をエクスポートする前に、私はdiv要素を有効にするために強制しています、です。そうしないと、エクスポートされたPDFはデータを返しません。これにより、PDFが書き出されるまで "griddata" divが画面に表示され、ドキュメントがダウンロードされると非表示になります。
私はこれをUIで表示せずにどのように処理できるか教えてください。
style = "display:none;"を持つ別のコンテナdivにすべてを入れるとどうなりますか? griddataとreportHeaderはそれを継承して表示する必要はありませんが、独自にPDFに表示される可能性があります。 – Jeroen
@Jeroen:はい私はそれを試しましたが、style = "display:none;"を指定すると、そのコンテナdivに、私はPDFで空のページを取得しています:/ – Karthik