JsPDF - изменение имени файла на основе значения метки при загрузке PDF - PullRequest
0 голосов
/ 03 апреля 2020

Я использовал jsPDF и html2canvas, чтобы сделать снимок экрана div, добавить его в PDF и загрузить. Мой код работает просто отлично, но мне нужно изменить имя файла PDF на основе значения метки внутри моего div.

Например:

Значение метки "John_Simith", PDF имя файла Я хочу быть John_Simith.pdf, но когда значение метки стало «Сара», мне нужно, чтобы имя файла было Sarah.pdf.

Вот мой 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);
            });
        };

Я не уверен, как это сделать, поэтому, пожалуйста, мне нужен ваш совет и высоко ценится.

Ответы [ 2 ]

0 голосов
/ 05 апреля 2020

Я хотел бы сообщить вам, что я могу решить проблему и опубликую ее на случай, если в будущем кому-то понадобится ответ;

Сначала создайте еще одно текстовое поле и окружите его таким скрытым элементом div, как этот;

<div style="visibility:hidden"> <asp:TextBox ID="lblFname" runat="server" Text="0"></asp:TextBox> </div>

Затем создайте сеанс для извлечения значения из базы данных, используя SqlDataReader;

Session["Fname"] = dritem["first_name"].ToString();

Затем свяжите значение сеанса с только что созданным текстовым полем;

lblFname.Text = Session["Fname"].ToString();

Затем объявите переменную для доступа к текстовому полю в Javascript;

  var FirstName = document.getElementById("<%=lblFname.ClientID%>").value;

В конце используйте переменную в качестве имени файла для загрузки PDF;

  pdf.save(FirstName + "_.pdf");

Спасибо всем,

0 голосов
/ 03 апреля 2020

вам просто нужно получить этот ярлык у вашего div

// Here maybe https://api.jquery.com/text/ will cover your case
var label = $(".canvas_div_pdf").text()
...
pdf.save(`{label}.pdf`);
...
...