1 回答
TA贡献1831条经验 获得超10个赞
首先,问题是浏览器不会以这种方式将 PDF 数据解释为 PDF。srcdoc被视为原始 HTML。
有几种不同的方法可以实现“点击生成”功能:
1) 您可以完全删除 AJAX,而仅使用 HTML 表单标记来完成此操作。使用target表单元素上的属性来定位您的 PDF 查看器 iframe。
<body>
<!-- Set up our form to target the PDF viewer iframe.-->
<!-- Note: This will work with both GET and POST methods -->
<form action="/test2.php" method="get" target="pdf_viewer">
<input type="text" name="titel">
<button height="10px" width="30px" type="submit" name="create_pdf_btn" value="create worksheet">create worksheet</button>
</form>
<!-- Initially, frame is blank, will update to PDF generation URL on form submit.
I created a special empty HTML file for this purpose. -->
<iframe name="pdf_viewer" id="pdf_viewer" src="blank.html"></iframe>
</body>
然后,test2.php您只需按照原样生成内联 PDF。
2) 在您的服务器上生成文件并使用 AJAX 响应传递保存的 PDF 所在的位置。下面的这个答案会打开一个新窗口,window.open但您可以简单地将该window.open行替换document.getElementById('pdf_viewer').src为使用新URL更新的行。
3) 返回 Base64 并使用冗长的数据 URL。
添加回答
举报