c# - 将链接另存为 PDF C#
问题描述
我需要自动下载 pdf 文件。下面的示例链接
<a href="https:\\..?serachid=1"
onclick="window.open(this.href,'popupwindow','scrollbars=no,resizable=no')return false" >click to
download</a>
链接的 href 末尾没有 .pdf。单击链接时,我得到了嵌入 pdf 的 IE 弹出窗口。单击弹出窗口中的打印会生成一个处理窗口,该窗口需要很长时间才能退出,我们无法跟踪进度。如果我手动单击它,而是单击保存复制按钮(来自下面显示的传单很好),但我找不到从代码中单击相同按钮的方法。)
我正在寻找右键单击并单击“目标另存为”的选项或单击“保存副本”按钮的选项 在此处输入图像描述 我已经尝试退出很多建议仍然无法找到适用的解决方案我,请帮忙。
注意:我无法修改 html。而且我不能使用硒。
[编辑] 我尝试如下添加下载属性,仍然弹出 IE,而不是预期的直接下载选项。
<a href="https:\\..?serachid=1"
onclick="window.open(this.href,'popupwindow','scrollbars=no,resizable=no')return false" download="">click to
download</a>
解决方案
IE 不支持download
属性,<a>
所以它在 IE 中不起作用。您可以查看浏览器兼容性表。
对于 IE,如果要点击链接下载,只能将 pdf 文件转换为 blob 数据,然后使用msSaveBlob
. msSaveBlob是 IE 自己的用于创建和下载文件的 API。你可以参考下面的代码:
<a href="your_file_link" onclick="downloadpdf();return false">click to download</a>
<script>
function downloadpdf() {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
//console.log(this.response, typeof this.response);
window.navigator.msSaveBlob(this.response, 'testpdf.pdf');
}
}
xhr.open('GET', 'your_file_link');
xhr.responseType = 'blob';
xhr.send();
}
</script>
推荐阅读
- javascript - 如何在 web3.js 中检查 ERC721 令牌的变量
- dynamics-crm - Dynamics 365 on Prem 解决方案导入随着服务器数量的增加而减慢
- javascript - 使用三个 js 和 React Three Fiber 和 gltfjsx 为模型添加动态纹理
- python - df1[:100]['comb'] 和 df1['comb' 有什么区别?
- html - 图片不显示 HTML
- node.js - 问题:[ERR_INVALID_ARG_TYPE]:“listener”参数必须是函数类型。收到一个对象实例
- excel - VBA:在我的数据透视表上放置值过滤器时遇到问题
- python - 无法将图片发送到电报
- facebook - 如何在 web 中通过 Cypress 测试 Facebook 登录
- javascript - 按名称进行函数搜索并在错误时发出警报