本文介紹 CodePlex 開源專案 DGVPrinter,一個功能強大的 DataGridView 列印元件,支援標題、副標題、頁碼、頁首頁尾、比例欄寬等豐富設定,適合 WinForms 應用快速產出報表列印輸出。
private void printToolStripButton_Click(object sender, EventArgs e)
{
DGVPrinter printer = new DGVPrinter();
printer.Title = "DataGridView Report";
printer.SubTitle = "An Easy to Use DataGridView Printing Object";
printer.SubTitleFormatFlags = StringFormatFlags.LineLimit | StringFormatFlags.NoClip;
printer.PageNumbers = true;
printer.PageNumberInHeader = false;
printer.PorportionalColumns = true;
printer.HeaderCellAlignment = StringAlignment.Near;
printer.Footer = "Your Company Name Here";
printer.FooterSpacing = 15;
printer.PrintDataGridView(dataGridViewControl);
}
private void printToolStripButton_Click(object sender, EventArgs e)
{
DGVPrinter printer = new DGVPrinter();
printer.Title = "DataGridView Report";
printer.SubTitle = "An Easy to Use DataGridView Printing Object";
printer.SubTitleFormatFlags = StringFormatFlags.LineLimit | StringFormatFlags.NoClip;
printer.PageNumbers = true;
printer.PageNumberInHeader = false;
printer.PorportionalColumns = true;
printer.HeaderCellAlignment = StringAlignment.Near;
printer.Footer = "Your Company Name Here";
printer.FooterSpacing = 15;
// 套用儲存的印表機與頁面設定
if (myPrintSettings != null)
printer.PrintDocument.PrinterSettings = myPrintSettings;
if (myPageSettings != null)
printer.PrintDocument.DefaultPageSettings = myPageSettings;
// 顯示列印對話框,使用者確認後列印並儲存設定
if (DialogResult.OK == printer.DisplayPrintDialog())
{
myPrintSettings = printer.PrinterSettings;
myPageSettings = printer.PageSettings;
printer.PrintNoDisplay(dataGridViewControl); // 不顯示對話框直接列印
}
}
| 屬性 | 說明 |
|---|---|
| Title / SubTitle | 報表主標題與副標題 |
| PorportionalColumns | 欄位寬度是否依內容比例調整 |
| PageNumbers / PageNumberInHeader | 頁碼顯示與位置控制 |
| HeaderCellAlignment | 標題儲存格對齊方式 |
| Footer / FooterSpacing | 頁尾文字與間距 |
| PrintDocument | 底層 PrintDocument 物件,可進階控制印表機設定 |
專案原始碼下載:CodeProject DGVPrinter