在PrintPreview中保存为PDF

本文关键字:PDF 保存 PrintPreview | 更新日期: 2023-09-27 18:12:26

我有PrintPreview和打印的代码。

private void button2_Click_1(object sender, EventArgs e)
    {
        printPreviewDialog1.Document = printDocument1;
        printPreviewDialog1.ShowDialog();     
    }
private void printDocument1_PrintPage_1(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {
        e.Graphics.DrawImage(Logo.Image, 800, 100);
        e.Graphics.DrawString(label20.Text, label20.Font, Brushes.Black, 134, 100);
        e.Graphics.DrawString(label22.Text, label22.Font, Brushes.Black, 462, 100);
        e.Graphics.DrawString(textBox101.Text, textBox101.Font, Brushes.Black, 134, 230);
        e.Graphics.DrawString(textBox104.Text, textBox104.Font, Brushes.Black, 134, 270);

现在我如何保存与printPreview相同的输出作为PDF文件与另一个按钮点击操作或在打印预览窗口

在PrintPreview中保存为PDF

如果你已经在使用WinForms的打印功能,那么安装一个PDF打印机程序是最简单的解决方案,例如PDFCreator。安装后可以像真正的打印机一样使用,但保存为PDF文件。

如果你想在你的应用中加入这个特性,你应该看看这个问题

如果您有兴趣创建您自己的,您可以使用这个。

在printpreviewdialog中添加一个按钮;

   class CustomPrintPreviewDialog : System.Windows.Forms.PrintPreviewDialog
    {
        public CustomPrintPreviewDialog()
            : base()
        {
            if(this.Controls.ContainsKey("toolstrip1"))
            {
                ToolStrip tStrip1 = (ToolStrip)this.Controls["toolstrip1"];
                ToolStripButton button1 = new ToolStripButton();
                button1.Text = "Save";
                button1.Click += new EventHandler(SaveDocument);
                button1.Visible = true;
                tStrip1.Items.Add(button1);
            }
        }
        protected void SaveDocument(object sender, EventArgs e)
        {
            // code for save the document
            MessageBox.Show("OK");
        }
    }

: Codeproject上