shohong 2014-05-26 08:11 采纳率: 0%
浏览 1100

C#Winform怎么把窗口上的信息生成PDF文件???

窗口上的信息很多,估计要分好几页保存,在谷歌搜了说可以用pdfsharp,但是不会用
还有没有其他的方法,有具体的例子也好,谢谢大家。。

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-02 03:44
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在.NET Framework中,你可以使用System.Drawing.Printing命名空间中的类来打印到PDF文件。以下是一个简单的示例,展示了如何将一个控件的文本内容转换为PDF。

    using System;
    using System.Drawing;
    using System.Windows.Forms;
    
    namespace PDFPrinter
    {
        class Program
        {
            static void Main(string[] args)
            {
                // 创建一个新的控制对象
                Control control = new Form();
    
                // 获取文本框控件
                TextBox textBox = (TextBox)control.Controls[0];
    
                // 将文本框的内容设置为PDF文档的标题
                textBox.Text = "Hello World!";
    
                // 创建一个新的PDF文档并将其写入内存
                using (MemoryStream ms = new MemoryStream())
                {
                    // 创建一个新的打印机流
                    using (var printerStream = new PrintDocument().OpenPrintDialog())
                    {
                        // 设置打印机流的输出格式为PDF
                        printerStream.PrinterSettings.PrinterName = "Your Printer Name";
                        printerStream.PrintPage += new PrintPageEventHandler(PrintPage);
    
                        // 打印PDF文档
                        printerStream.Print();
                    }
    
                    // 将内存中的数据写入到PDF文档中
                    ms.Write(control.ClientRectangle.Width * 100 + 25, control.ClientRectangle.Height - 30, ms);
                }
            }
    
            private static void PrintPage(object sender, PrintPageEventArgs e)
            {
                // 在这里可以添加你的页面样式和布局
                e.Graphics.DrawString("This is a sample page.", new SolidBrush(Color.Black), new Font("Arial", 14f), new Rectangle(100, 100));
            }
        }
    }
    

    这个程序创建了一个新的控制,并设置了它的文本框控件的内容为"Hello World!"。然后它打开了一个打印机对话框,选择了一个名为"Your Printer Name"的打印机。最后,它将文本框的内容写入到PDF文档中。

    注意:这个程序只是一个基本的示例,你可能需要根据你的具体需求进行修改。例如,你可能需要添加更多的页面样式和布局,或者处理更复杂的输入。

    评论

报告相同问题?