javascript - 使用 javascript 在客户端打印 PDF 文件

标签 javascript c# asp.net

我正在尝试使用 javascript 在客户端打印 pdf 文件。我的 JavaScript 代码如下

function doit() {
    var win = document.getElementById("pdf");
    var frm = document.getElementById("pdf").contentWindow;
    frm.print();
    win.print();
}          

问题是frm总是为null,而win没有打印的功能

我的pdf元素如下

<iframe id="pdf" name="pdf" src="C:\My_P.pdf"></iframe>

我正在从 C# 调用该函数,如下所示

ClientScript.RegisterStartupScript(this.GetType(), "Print", "doit();", true);

真的很挣扎。请帮忙

最佳答案

问题的解决方案是在加载 Iframe 后调用打印函数,您可能不需要使用 RegisterStartupScript 从服务器调用它

<iframe id="pdf" name="pdf" src="C:\My_P.pdf"
     onload="doit();"></iframe>

另一个问题似乎是 src 路径 C:\My_P.pdf,我的框架期望一个 url 来显示内容。引用Iframe

为了缓解这种情况,请创建一个目录,例如在您的 asp.net 项目中创建 MyResource 并将您的 pdf 复制到此目录并更改 src="/MyResource/My_P.pdf"。您的 pdf 应该可以被浏览器访问,然后只有 Iframe 可以加载它。

关于javascript - 使用 javascript 在客户端打印 PDF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43182505/

相关文章:

c# - 使用 ASP.Net Core 定位 net core 应用程序和完整的 net461

c# - 从后面的代码访问用户控件 (ascx) 的父 DIV

javascript - Reactjs重新渲染输入但不更改检查状态

javascript - 从 html 输入值调用数组

c# - 我可以在 .NET Standard 类库中使用动态吗?

C#:System.Configuration.Configuration 在寻找什么?

c# - 函数代码块不能访问 Razor 代码块中的变量吗?

javascript - Highcharts - 使用 setData() 更新柱形图不起作用

javascript - 当项目停止在 .NET 中运行时,是否有办法阻止 Web 方法工作?

c# - Docker:将文件写入物理或共享路径,使用docker和netcore3.1