Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript在客户端打印PDF文件_Javascript_C#_Asp.net - Fatal编程技术网

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

使用javascript在客户端打印PDF文件,javascript,c#,asp.net,Javascript,C#,Asp.net,我正在尝试使用javascript在客户端打印pdf文件。我的javascript代码如下 function doit() { var win = document.getElementById("pdf"); var frm = document.getElementById("pdf").contentWindow; frm.print(); win.print(); } <iframe id="pdf" name="pdf" sr

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

function doit() {
    var win = document.getElementById("pdf");
    var frm = document.getElementById("pdf").contentWindow;
    frm.print();
    win.print();
}          
<iframe id="pdf" name="pdf" src="C:\My_P.pdf"></iframe>
问题是frm总是空的,win没有打印功能

我的pdf元素如下所示

function doit() {
    var win = document.getElementById("pdf");
    var frm = document.getElementById("pdf").contentWindow;
    frm.print();
    win.print();
}          
<iframe id="pdf" name="pdf" src="C:\My_P.pdf"></iframe>
真的很挣扎。请帮助

您是否受到阻碍

过去我曾使用过:

window.frames["pdf"].focus();
window.frames["pdf"].print();
你是不是受到了什么阻碍

过去我曾使用过:

window.frames["pdf"].focus();
window.frames["pdf"].print();

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

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

另一个问题似乎是src path
C:\My\u p.pdf
,I frame需要一个url来显示内容。提及


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

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

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

另一个问题似乎是src path
C:\My\u p.pdf
,I frame需要一个url来显示内容。提及


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

I frame从客户端加载,并且在加载pdf之前调用函数doit。您是否能够在iframe中看到pdf内容?否。不允许加载本地资源时出错:file:///C:/_temp/My_P.pdf. 我改变了目录,认为不应该从C加载:I框架是从客户端加载的,函数doit在加载pdf之前被调用。您是否能够在iframe中看到pdf内容?否。不允许加载本地资源时出错:file:///C:/_temp/My_P.pdf. 我更改了目录,认为不应该从C加载:这是否意味着文件必须在服务器端?是的,它可以在任何服务器上,通过URL可以访问您的iframe。问题是加载到iframe。我看不到pdf文件。我在web应用程序\\WebApplication\bin\Temp中创建了一个目录,并将pdf放入Temp目录中。它不加载它。此时会出现打印对话框,其底部的my aspx链接显示为空白。请在\WebApplication\Temp下而不是在bin下创建它,因为这是静态资源。这应该像其他静态资源imgae、js和CSS等一样对浏览器可用。尝试直接在浏览器上访问它,如。浏览器将要求下载它。一旦您能够通过浏览器访问它,然后将该路径添加到iframe的src属性。这是否意味着该文件必须位于服务器端?是的,它可以位于iframe可以通过URL访问的任何服务器上。问题是加载到iframe。我看不到pdf文件。我在web应用程序\\WebApplication\bin\Temp中创建了一个目录,并将pdf放入Temp目录中。它不加载它。此时会出现打印对话框,其底部的my aspx链接显示为空白。请在\WebApplication\Temp下而不是在bin下创建它,因为这是静态资源。这应该像其他静态资源imgae、js和CSS等一样对浏览器可用。尝试直接在浏览器上访问它,如。浏览器将要求下载它。一旦您能够通过浏览器访问它,然后将该路径添加到iframe的src属性中。