javascript - 使用输入字段将表单转换为 PDF

标签 javascript forms pdf jspdf

我已经成功地使用 MrRio 的 jsPDF 库将我的 HTML 文档转换为 PDF。问题是我的内容是一种形式。 pdf 文件显示了字段名称,但我无法获得他们的输入。

<div id="editor">
    <form id="content" class="text-center border border-light p-5" action="" method="POST">
        <!-- Full Name -->
        <div class="form-group row">
            <label class="col-sm-2 col-form-label">Full Name</label>
            <div class="col-sm-10">
                <input type="text" class="form-control" id="inputFullName" placeholder="Full Name" required>
            </div>
        </div>
        <!-- Adress -->
        <div class="form-group row">
            <label class="col-sm-2 col-form-label">Adress</label>
            <div class="col-sm-10">
                <input type="text" class="form-control" id="inputAdress" placeholder="Adress" required>
            </div>
        </div>
        <!-- E-mail -->
        <div class="form-group row">
            <label class="col-sm-2 col-form-label">Email</label>
            <div class="col-sm-10">
                <input type="email" class="form-control" id="inputEmail" placeholder="Email" required>
            </div>
        </div>
        <!-- Password -->
        <div class="form-group row">
            <label class="col-sm-2 col-form-label">Password</label>
            <div class="col-sm-10">
                <input type="email" class="form-control" id="inputPassword" placeholder="Password" required>
            </div>
        </div>
    </form>
</div>

这是javascript代码:

$(function () {
    var specialElementHandlers = {
        '#editor': function (element,renderer) {
            return true;
        }
    };

    $('#cmd').click(function () {
        var doc = new jsPDF();
        doc.fromHTML(
            $('#content').html(), 15, 15, 
            { 'width': 170, 'elementHandlers': specialElementHandlers }, 
            function(){ doc.save('sample-file.pdf'); }
        );
});   

我需要获取带有用户输入的表单。

我已经尝试将 HTML 转换为 canvas,然后转换为 pdf,然后我尝试了这个。显然,此方法的实现存在局限性,因为它不支持许多元素或类。如果有人可以提供见解或有用的帮助。

最佳答案

您可以通过使用 jquery 或纯 javascript 查询用户引入的值来做到这一点。

这是解决方案的一个片段:

<button id="cmd" class="btn btn-info my-4 btn-block" type="submit" onclick=" $(function () { 
   var doc = new jsPDF()
   doc.text('Full Name: \t\t\t'+document.querySelector(`#inputFullName`).value, 10, 10)
   doc.text('Adresse: \t\t\t'+document.querySelector(`#inputAdress`).value, 10, 20)
   //here do the same for the rest of your inputs
   doc.save('a4.pdf')
        });">Send</button>
<button class="btn btn-info my-4 btn-block" type="reset">Reset</button>

关于javascript - 使用输入字段将表单转换为 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56109309/

相关文章:

c# - 使用 itext7 从 pdf 中的数字签名中提取电子邮件地址

Ruby 从 PDF 中提取阿拉伯文本

javascript - 如何在javascript中检测字符串是否包含阿姆哈拉语?

javascript - D3 : Circle Points don't update when changing slider

Django - 如何从其他两个字段自动填充表单字段

java - 将 excel 转换为 pdf 或创建新的 pdf 文件?

确定事件处理程序范围的 JavaScript 最佳实践

javascript - 如何在 JavaScript MVC3 Razor View 引擎 .cshtml 中创建 session 变量

javascript - 输入表单中不允许有空白字符/空格

php - 表单下拉选择类型的占位符?