【问题标题】:Printing a page without the Print dialog box?打印没有“打印”对话框的页面?
【发布时间】:2012-09-03 19:10:24
【问题描述】:

我有一个想要打印的 ASP.NET 页面。我现在正在做的是使用OnClientClick 并从那里调用一个函数PrintThePage(),它只调用Window.Print()。当我这样做时,用户会看到“打印”对话框,她可以在其中选择打印机(并设置其属性以及不设置的属性),然后打印页面。

问题是我想使用默认打印机打印页面而不显示打印对话框。这是我尝试过的:

protected void Page_Load(object sender, EventArgs e)
{
    System.Drawing.Printing.PrinterSettings ps =
        new System.Drawing.Printing.PrinterSettings();

    ps.PrintFileName = Path.GetFileName(Request.Url.LocalPath);

    System.Drawing.Printing.PrintDocument pd =
        new System.Drawing.Printing.PrintDocument();

    pd.PrinterSettings = ps;
    pd.Print();
}

我的默认打印机是OneNote(Microsoft 发送到 One Note)。 问题:在打印页面时,只生成了一个空白页面。

我首先尝试将我的默认打印机设置为doPdf。当这不起作用时,我尝试使用我真正的 HP 打印机。但我仍然收到相同的结果。该页面未显示打印对话框...该问题消失了。但问题是为什么页面不打印?为什么我得到一个空白/null/nada 页面?我的代码有问题吗?还是我打印机的问题?再一次,一个问题消失了。我不再收到Print Dialog Box。我只是没有得到打印页,只是一个空白页。

谁能告诉我发生了什么?我能做些什么来实现我的目标? (我希望我已经说得够清楚了!)。

【问题讨论】:

  • @exacerbatedexpert:我知道,但是当在客户端打开此页面时,Request.Url 仍将引用当前页面 url,afaik .LocalPath 应该提供其本地副本,并且当我打电话给Path.GetFileName 时,它应该给我我想要的,并且应该能够打印页面。

标签: c# asp.net printing


【解决方案1】:

我认为您将客户端打印与服务器上的打印混淆了。

您可以使用 Java 在客户端进行打印,了解一些优惠券打印机的工作原理。然而,这是不受欢迎的。客户应该始终可以选择他们想要的打印方式。

Page_Load 的调用将在服务器端打印机上完成。

【讨论】:

  • 我知道,他们应该总是......但它出于其他测试目的,我想知道这是否可能,如果不是我正在做的方式,那么通过其他方式?但这能做到吗?
猜你喜欢
  • 2015-06-30
  • 1970-01-01
  • 2012-10-27
  • 1970-01-01
  • 2012-04-30
  • 1970-01-01
  • 2019-06-18
  • 1970-01-01
  • 2011-04-05
相关资源
最近更新 更多