首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JsPDF -根据下载的标签值更改文件名

JsPDF -根据下载的标签值更改文件名
EN

Stack Overflow用户
提问于 2020-04-03 18:36:39
回答 2查看 742关注 0票数 0

我用jsPDF和html2canvas截取了一个div的截图,并将其添加到PDF中,然后下载它。我的代码运行得很好,但我需要的是根据div中的标签值更改PDF文件名。

例如:

标签值是"John_Simith",我想要的文件名是John_Simith.pdf,但是当标签值变成"Sarah“时,我需要文件名是Sarah.pdf。

这是我的Javascript:

代码语言:javascript
复制
function getPDF() {

            var HTML_Width = $(".canvas_div_pdf").width();
            var HTML_Height = $(".canvas_div_pdf").height();
            var top_left_margin = 15;
            var PDF_Width = HTML_Width;
            var PDF_Height = HTML_Height;
            var canvas_image_width = HTML_Width;
            var canvas_image_height = HTML_Height * 1.1;

            var totalPDFPages = Math.ceil(HTML_Height / PDF_Height) - 1;


            html2canvas($(".canvas_div_pdf")[0], { allowTaint: true }).then(function (canvas) {
                canvas.getContext('2d');

                console.log(canvas.height + "  " + canvas.width);


                var imgData = canvas.toDataURL("image/jpeg", 1.0);
                var pdf = new jsPDF('p', 'pt', [PDF_Width, PDF_Height]);
                pdf.addImage(imgData, 'JPG', top_left_margin, top_left_margin, canvas_image_width, canvas_image_height);


                for (var i = 1; i <= totalPDFPages; i++) {
                    pdf.addPage(PDF_Width, PDF_Height);
                    pdf.addImage(imgData, 'JPG', 0, 0, canvas_image_width, canvas_image_height);
                }



                pdf.save("Sample.pdf");
                location.reload(true);
            });
        };

我不确定如何做到这一点,所以请我需要你的建议,非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-05 17:29:09

我想让你知道,我可以解决这个问题,并将它张贴在未来有人需要答案的情况下;

首先创建另一个文本框,并用隐藏的div包围它,如下所示;

代码语言:javascript
复制
<div style="visibility:hidden"> <asp:TextBox ID="lblFname" runat="server" Text="0"></asp:TextBox> </div>

然后创建一个会话,使用SqlDataReader从数据库中检索值;

代码语言:javascript
复制
Session["Fname"] = dritem["first_name"].ToString();

然后将会话值与您刚刚创建的文本框绑定;

代码语言:javascript
复制
lblFname.Text = Session["Fname"].ToString();

然后在Javascript中声明一个变量来访问textbox;

代码语言:javascript
复制
  var FirstName = document.getElementById("<%=lblFname.ClientID%>").value;

最后,使用变量作为下载PDF的文件名;

代码语言:javascript
复制
  pdf.save(FirstName + "_.pdf");

谢谢大家

票数 0
EN

Stack Overflow用户

发布于 2020-04-03 18:46:05

您只需从您的div中获取此标签

代码语言:javascript
复制
// Here maybe https://api.jquery.com/text/ will cover your case
var label = $(".canvas_div_pdf").text()
...
pdf.save(`{label}.pdf`);
...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61009984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档