将 link 另存为 PDF C#

Save a link as PDF C#

我需要自动下载 pdf 文件。 下面的示例 link

<a href="https:\..?serachid=1" 
onclick="window.open(this.href,'popupwindow','scrollbars=no,resizable=no')return false" >click to 
download</a>

Link 的 href 末尾没有 .pdf。 单击 link,我将获得嵌入了 pdf 的 IE 弹出窗口。从弹出窗口单击打印会进行处理 window,这会花费大量时间,我们无法跟踪进度。 如果我手动单击它,而是单击保存复制按钮(来自下面显示的传单可以正常工作),但我找不到从代码中单击相同按钮的方法。)

我正在寻找右键单击并单击“目标另存为”的选项,或者 单击“保存副本”按钮的选项enter image description here 我尝试了很多建议,但我仍然无法找到适合我的解决方案,请帮忙。

注意:我无法修改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 不支持 <a> 中的 download 属性,因此它在 IE 中不起作用。您可以查看 browser compatibility table.

对于IE,如果要点击link下载,只能将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>

IE 11 中的结果: