使用打印文档在C#中打印到文件
我正在创建C#应用程序,其中我使用外部类打印使用打印文档在C#中打印到文件,c#,printing,printdocument,C#,Printing,Printdocument,我正在创建C#应用程序,其中我使用外部类打印dataGridView。使用这个类,我可以打印文档pdf,但无法将文件保存到磁盘。我知道这可以通过printDocument1.PrinterSettings.PrintToFile=true和printDocument1.PrinterSettings.PrintFileName=path实现,但正如我提到的,我使用的是外部类,我无法做到这一点。我发布了我用来打印网格的代码,并且也发布了指向外部类的链接。请帮助我如何根据我的需要调整这个 DGVPr
dataGridView
。使用这个类,我可以打印文档pdf,但无法将文件保存到磁盘。我知道这可以通过printDocument1.PrinterSettings.PrintToFile=true
和printDocument1.PrinterSettings.PrintFileName=path
实现,但正如我提到的,我使用的是外部类,我无法做到这一点。我发布了我用来打印网格的代码,并且也发布了指向外部类的链接。请帮助我如何根据我的需要调整这个
DGVPrinter printer = new DGVPrinter();
//if (tbReportSchoolName.Text == string.Empty)
//{
printer.Title = "The Punjab School";
//}
//else { printer.Title = tbReportSchoolName.Text.Trim(); } //school name
//if (tbReportHeader.Text == string.Empty)
//{
printer.SubTitle = "Absent Student Report | " + dtpTo.Value.ToShortDateString();
//}
//else { printer.SubTitle = tbReportHeader.Text.Trim() + "|" + dtpTo.Value.ToShortDateString(); }
printer.SubTitleFormatFlags = StringFormatFlags.LineLimit | StringFormatFlags.NoClip;
printer.PageNumbers = true;
printer.PageNumberInHeader = false;
printer.PorportionalColumns = true;
printer.HeaderCellAlignment = StringAlignment.Near;
//if (tbReportFooter.Text == string.Empty)
//{
printer.Footer = "Allied School, A Project of Punjab Group of Colleges.";
//}
//else { printer.Footer = tbReportFooter.Text.Trim(); }
printer.FooterSpacing = 15;
printer.PrintDataGridView(reportGrid);
类名为DGVPrinter,网格名为dgv
课程链接:
我看不到DGVPrinter类中编写了任何用于打印到PDF或文件的代码。它具有AllowPrintToFile属性,但在类中没有使用它。您应该通过扩展此类自行编写,或者可以尝试以下其他插件:
您可以安装pdf打印机。谢谢回复@lordkain,但我正在创建一个自动化应用程序。这样就可以自动将文件保存到磁盘上,而无需用户单击。我只需要粘贴这两行代码的帮助,我不知道在课堂上我必须发布到哪里来解决我的问题是的,pdf文件没有代码,但有使用printDocument类打印的代码,您知道printDocument有一个名为printDocument.PrintToFile的属性,它将文件保存在磁盘中。请帮助我使用该属性,我进一步阅读了MSDN文档,发现不可能通过编程实现。请参阅以下链接:PrintToFile属性仅由PrintDialog使用,不能以编程方式设置。仅当PrintDialog.AllowPrintToFile属性设置为true时,PrintDialog上才会显示“打印到文件”选项。