以html格式提交嵌入式pdf

时间:2015-05-14 22:56:13

标签: javascript jquery html forms pdf

我已经徒劳地搜索了好几天,但尚未找到解决我问题的方法。

理想情况下,我想将一个可填写的pdf表单嵌入到Intranet html表单中,以便提交给服务器进行处理(解析字段/值的能力很强,但不是必需的)。这些文件都在同一个域中,因此没有跨域问题。我知道我可以在pdf表单本身添加提交功能,但1)脚本超出了pdf文档管理员的能力,我不想接受,2)有数百个pdf文档,3)我需要使用表单提交的其他脚本字段/值,4)我希望pdf文档包含在登录会话中。到目前为止,服务器日志显示除传递的PDFInput参数之外的所有字段/值,但该值为空。

这是我到目前为止所拥有的:

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script>
    $(document).ready(function() {
        $(uploadForm).on("submit", function(event) {
            var iframe = document.getElementById('PDFObj');
            var iframeDocument = [iframe.contentDocument || iframe.contentWindow.document];

            var pluginData = iframeDocument;
            $(this).append('<input type="file" name="PDFInput" id="PDFInput" value="' + pluginData + '" style="visibility:hidden"/>');
            return true;
        });
    });
</script>

<form enctype="multipart/form-data" method="post" name='uploadForm' id='uploadForm'>
    <input type='hidden' name='rm' id='rm' value='uploadFile'>
    <table align='center'>
        <tr>
            <td align='left'>
                <strong>Notes:</strong>
                <br>
                <textarea cols='80' rows='2' name='notes' id='notes'></textarea>
                <br>
                <br>
            </td>
        </tr>
        <tr>
            <td colspan=2 align='center'>
                <input type='submit'>
            </td>
        </tr>
        <tr>
            <td colspan=2>
                <br>
                <input type='hidden' name='formid' id='formid' value='6F45B3AF-91F3-108C-D3D9-701F541B49DC'>
                <iframe type='application/pdf' src="url.pl?formid=6F45B3AF-91F3-108C-D3D9-701F541B49DC.pdf" height='800' width='1000' name='PDFObj' id='PDFObj'>
            </td>
        </tr>
    </table>
</form>

我尝试使用iframe和对象以及设置输入类型=&#34;对象&#34;进行嵌入,但我无法使用任何组合。

这甚至可能吗?有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

据我所知,您无法直接从HTML中捕获PDF数据。最好的办法是将提交功能添加到PDF中,然后使用服务器端脚本处理生成的FDF数据。

您需要在PDF中添加Submit a Form按钮,或修改现有按钮。确保PDF中的表单操作在URI后面有#FDF(例如https://example.com/process.php#FDF)。

解析数据服务器端很简单。我不确定您使用的是哪种服务器端语言,但这是一个PHP代码段

<?php // process.php, report the data we received 
echo '<h2>GET Data</h2>'; 
foreach( $_GET as $key => $value ) { 
  echo '<p>Key: '.$key.', Value: '.$value.'</p>'; 
} 
echo '<h2>POST Data</h2>'; 
foreach( $_POST as $key => $value ) { 
  echo '<p>Key: '.$key.', Value: '.$value.'</p>'; 
} 

请注意,在网络浏览器中查看时,PDF只能正确地与网络服务器进行交互。

我不知道以编程方式将提交按钮添加到PDF的可靠方法,也不知道可靠的转换方法。你是冥王星之间的摇滚和硬地。

更多信息: