从ASP.Net打印PDF无需预览

Nel*_*nda 15 c# printing pdf asp.net

我使用iTextSharp生成了一个pdf,我可以在ASP.Net中很好地预览它,但我需要将它直接发送到打印机而不进行预览.我希望用户单击打印按钮并自动打印文档.

我知道可以使用javascript window.print()将页面直接发送到打印机,但我不知道如何为PDF创建它.

编辑:它没有嵌入,我这样生成它;

                ...
                FileStream stream = new FileStream(Request.PhysicalApplicationPath + "~1.pdf", FileMode.Create);
                Document pdf = new Document(PageSize.LETTER);
                PdfWriter writer = PdfWriter.GetInstance(pdf, stream);
                pdf.Open();
                pdf.Add(new Paragraph(member.ToString()));
                pdf.Close();

                Response.Redirect("~1.pdf");
                ...
Run Code Online (Sandbox Code Playgroud)

而我在这里.

Nel*_*nda 6

最后我做了,但是我不得不使用IFRAME,我在aspx中定义了一个IFrame而没有设置src属性,在cs文件中我生成了pdf文件并设置了iFrame的src属性作为生成pdf文件名,像这样;

Document pdf = new Document(PageSize.LETTER);
PdfWriter writer = PdfWriter.GetInstance(pdf, 
new FileStream(Request.PhysicalApplicationPath + "~1.pdf", FileMode.Create));
pdf.Open();

//This action leads directly to printer dialogue
PdfAction jAction = PdfAction.JavaScript("this.print(true);\r", writer);
writer.AddJavaScript(jAction);

pdf.Add(new Paragraph("My first PDF on line"));
pdf.Close();

//Open the pdf in the frame
frame1.Attributes["src"] = "~1.pdf";
Run Code Online (Sandbox Code Playgroud)

然而,这就是诀窍,我认为我应该实现你的解决方案Stefan,问题是我是asp.net和javascript的新手,如果我没有完整的源代码,我就无法编写你的建议但是至少是第一步,我很惊讶我需要学习html和javascript中的代码.日Thnx.


Ste*_*fan 1

pdf 是用 embedd-tag 嵌入到页面中还是只是在框架中打开,或者您如何显示它?

如果它是嵌入的,只需确保选择该对象,然后执行 print() 即可。

获取嵌入文档的引用。

var x = document.getElementById("mypdfembeddobject");  
x.click();
x.setActive();
x.focus();
x.print();
Run Code Online (Sandbox Code Playgroud)