首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ASP.NET MVC中以编程方式"hello world“默认服务器端打印机

在ASP.NET MVC中以编程方式"hello world“默认服务器端打印机
EN

Stack Overflow用户
提问于 2012-09-02 01:22:14
回答 2查看 8.2K关注 0票数 7

我已经安装了打印机并在intranet服务器上工作,我想以编程方式向该默认打印机发送"hello world“。这看起来似乎是最简单的事情,但我已经用谷歌搜索了几个小时,但没有成功。(注意:我正在运行Windows7的部署机器上开发asp.net mvc )

我试图将VB here中的一个示例翻译成C#,但它显示“没有安装打印机”。

代码语言:javascript
复制
public void TestPrint()
{
    var x = new PrintDocument();
    x.PrintPage += new PrintPageEventHandler(PrintPage);
    x.Print();
}
private void PrintPage(Object sender, PrintPageEventArgs e)
{
    var textToPrint = "Hello world";
    var printFont = new Font("Courier New", 12);
    var leftMargin = e.MarginBounds.Left;
    var topMargin = e.MarginBounds.Top;
    e.Graphics.DrawString(textToPrint, printFont, Brushes.Black, leftMargin, topMargin);
}

我还尝试了MSDN here中的一个代码片段,但它显示无法识别打印机名称。

代码语言:javascript
复制
public void TestPrint(string msg)
{
    var server = new LocalPrintServer();
    var queue = LocalPrintServer.GetDefaultPrintQueue();

    // Call AddJob
    var job = queue.AddJob();

    // Write a Byte buffer to the JobStream and close the stream
    var stream = job.JobStream;
    var buffer = UnicodeEncoding.Unicode.GetBytes(msg);
    stream.Write(buffer, 0, buffer.Length);
    stream.Close();
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-02 05:07:40

在.NET中打印"hello world“服务器端

  1. Share a printer
  2. Create object
  3. Reference content
  4. Print PrintDocument by name
  5. Add a method to provide content
  6. Print

(按名称添加方法以提供打印机)

代码

代码语言:javascript
复制
using System.Drawing;
using System.Drawing.Printing;

public void Print()
{
  var doc = new PrintDocument();
  doc.PrinterSettings.PrinterName = "\\\\deployment-machine-name\\share-name";
  doc.PrintPage += new PrintPageEventHandler(ProvideContent);
  doc.Print();
}
public void ProvideContent(object sender, PrintPageEventArgs e)
{
  e.Graphics.DrawString(
    "Hello world",
    new Font("Arial", 12),
    Brushes.Black,
    e.MarginBounds.Left,
    e.MarginBounds.Top);
}
票数 10
EN

Stack Overflow用户

发布于 2012-09-02 01:29:55

首先给出一个选择打印机的选项。Microsoft支持网站上已经说明了您的全部要求。

Have a look here.

这里的一个样本(以防某一天页面死了):

代码语言:javascript
复制
private void print_Click(object sender, System.EventArgs e)
{
    string s = "Hello"; // device-dependent string, need a FormFeed?

    // Allow the user to select a printer.
    PrintDialog pd  = new PrintDialog();
    pd.PrinterSettings = new PrinterSettings();
    if( DialogResult.OK == pd.ShowDialog(this) )
    {
        // Send a printer-specific to the printer.
        RawPrinterHelper.SendStringToPrinter(pd.PrinterSettings.PrinterName, s);
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12229823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档