C# 使用SmtpClient将打印文档作为附件发送

C# 使用SmtpClient将打印文档作为附件发送,c#,winforms,email,printing,smtp,C#,Winforms,Email,Printing,Smtp,我一直在网上寻找使用SMTP在电子邮件中附加打印文档,但不幸的是找不到 printPreviewDialog1.Document = printDocument1; printPreviewDialog1.ShowDialog(); 这是我预览文档的代码,我有一个额外的方法将所有标签、图像放在纸上 private void btnSendEmail_Click(object sender, EventArgs e) { SmtpClient client = new

我一直在网上寻找使用SMTP在电子邮件中附加打印文档,但不幸的是找不到

printPreviewDialog1.Document = printDocument1;
printPreviewDialog1.ShowDialog();
这是我预览文档的代码,我有一个额外的方法将所有标签、图像放在纸上

 private void btnSendEmail_Click(object sender, EventArgs e)
    {
        SmtpClient client = new SmtpClient();
        client.Port = 587;
        client.Host = "smtp.gmail.com";
        client.EnableSsl = true;
        client.Timeout = 10000;
        client.DeliveryMethod = SmtpDeliveryMethod.Network;
        client.UseDefaultCredentials = false;
        client.Credentials = new System.Net.NetworkCredential("myUsername@gmail.com", "myPass");

        MailMessage mm = new MailMessage("myRecipents", "myRecipents", "Title", "Body");
        mm.BodyEncoding = UTF8Encoding.UTF8;
        mm.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;

        System.Net.Mime.ContentType contentType = new System.Net.Mime.ContentType();
        contentType.MediaType = System.Net.Mime.MediaTypeNames.Application.Octet;
        contentType.Name = "tange.pdf";
        mm.Attachments.Add(new Attachment("C:/tange.pdf", contentType));

        client.Send(mm);

        MessageBox.Show("Success");
    }
这是我发送电子邮件和附加文档的代码。但这里的文件附在这里是在我的磁盘。我想用我的打印文档/预览替换它


有什么方法可以做到这一点吗?

使用pdf打印机打印成pdf文件,然后将其放入您现有的代码中。你可能需要先安装一台Pdf打印机。所以基本上我需要使用Pdf打印机将它保存在磁盘上?是的,这是最简单的方法。我使用打印文档。但我无法通过编程将其保存为pdf。我不希望它被提示。如果我点击按钮,它应该会自动保存在目录中。可能吗?是的,它是: