2016-12-16 5 views
-2

Я создаю приложение C#, в котором я использую внешний класс для печати dataGridView. с этим классом я могу распечатать документ pdf, но я не могу сохранить файл на диск. Я знаю, что это может быть достигнуто printDocument1.PrinterSettings.PrintToFile=true и printDocument1.PrinterSettings.PrintFileName = path, но, как я уже сказал, я использую внешний класс для этого, я не могу этого сделать. Я отправляю код, который я использую для печати сетки, а также добавляется ссылка на внешний класс. пожалуйста, помогите мне, как настроить это в соответствии с моей потребностиПечать в файл на C# с использованием документа печати

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 Ссылка на класс:

https://drive.google.com/file/d/0BwBxpfm3kmmgci1aSnZ6T0RudGc/view

+1

вы можете установить принтер PDF. – lordkain

+0

спасибо за ответ @lordkain, но я создаю автоматическое приложение. например, это автоматически сохранит файл на диске без щелчка пользователя – Axad

+0

Мне просто нужна помощь при вставке этих двухстрочных кодов, я не знаю, где в классе я должен публиковать, чтобы решить мою проблему. – Axad

ответ

0

Я не вижу какой-либо код был написан в класс DGVPrinter для печати в PDF или в файл. Он обладает свойством AllowPrintToFile, но нигде он не используется в классе. Вы должны написать его самостоятельно, расширяя этот класс или вы можете попробовать другой плагин, как показано ниже:

How to export PDF from data of datagrid?

http://www.aspsnippets.com/Articles/Export-Windows-Forms-DataGridView-to-PDF-using-iTextSharp-C-and-VBNet.aspx

+0

да нет кода для файла pdf, но есть код для печати с классом printDocument, и вы знаете, что у printDocument есть свойство с именем printDocument.PrintToFile, которое сохраняет файл на диске. пожалуйста, помогите мне использовать это свойство – Axad

+0

ОК, я также прочитал документ MSDN и нашел, что нет возможности сделать это программно. См. Приведенную ниже ссылку: https://msdn.microsoft.com/en-us/library/system.drawing.printing.printersettings.printtofile(v=vs.110).aspx _The Свойство PrintToFile используется только для пользователей PrintDialog и не может быть установлен программно. Опция «Печать в файл» появляется только на PrintDialog, если для свойства PrintDialog.AllowPrintToFile установлено значение true._ – sankar