PrintDocument在c#中打印文件名字符串而不是文档

问题描述 投票:-1回答:1

我正在我的asp.net项目中实现PrintDocument,其中我需要打印我的文档的特定页面,而不是打印文档,它的字符串“fileName”正在打印。以下是我的代码

 string fileName = "C:\\DocToPrint\\Sample2018.pdf";

 protected void Page_Load(object sender, EventArgs e)
    {
      using (PrintDocument pd = new PrintDocument())
        {
            pd.PrinterSettings.FromPage = 1;
            pd.PrinterSettings.ToPage = 1;
            pd.PrinterSettings.PrintRange = PrintRange.SomePages;
            pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
            pd.Print();
        }

 public void pd_PrintPage(object sender, PrintPageEventArgs ev)
    {
        ev.Graphics.DrawString(fileName, new Font("Arial", 10), Brushes.Black,
                             ev.MarginBounds.Left, 0, new StringFormat());
    }
    }

这里错过了什么?请建议......谢谢

c# asp.net printing
1个回答
1
投票

有一个名为Spire.Pdf的nuget包,使用起来非常简单。免费版本限制为10页,但是,在我的情况下,一旦我不想依赖Adobe Reader而且我不想安装任何其他组件,它是最好的解决方案。

https://www.nuget.org/packages/Spire.PDF/

PdfDocument pdfdocument = new PdfDocument();
pdfdocument.LoadFromFile(pdfPathAndFileName);
pdfdocument.PrinterName = "My Printer";
pdfdocument.PrintDocument.PrinterSettings.Copies = 1;
pdfdocument.PrintFromPage = index;
pdfdocument.PrintToPage = index;
pdfdocument.PrintDocument.Print();
pdfdocument.Dispose();

用于打印某些页面的示例。

https://www.e-iceblue.com/forum/print-one-page-from-pdf-t6586.html

© www.soinside.com 2019 - 2024. All rights reserved.