Přehled komponenty PrintDialog (model Windows Forms .NET)

Tisk v model Windows Forms se skládá především z použití PrintDocument komponenty, aby uživatel mohl tisknout. Ovládací PrintPreviewDialog prvek PrintDialog a PageSetupDialog komponenty poskytují uživatelům operačního systému Windows známé grafické rozhraní.

Součástí PrintDialog je předem nakonfigurované dialogové okno, které slouží k výběru tiskárny, volbě stránek k tisku a určení dalších nastavení souvisejících s tiskem v aplikacích se systémem Windows. Je to jednoduché řešení pro nastavení související s tiskárnou a tiskem místo konfigurace vlastního dialogového okna. Uživatelům můžete povolit tisk mnoha částí svých dokumentů: tisk všech, tisk vybraného rozsahu stránek nebo tisk výběru. Spoléháte-li se na standardní dialogová okna Windows, můžete vytvářet aplikace, jejichž základní funkce jsou uživatelům okamžitě známy. Komponenta PrintDialog dědí z CommonDialog třídy.

Obvykle vytvoříte novou instanci PrintDocument komponenty a nastavíte vlastnosti, které popisují, co se má vytisknout pomocí PrinterSettings a PageSettings tříd. Volání metody Print ve skutečnosti vytiskne dokument.

Práce s komponentou

K zobrazení dialogového okna za běhu použijte metodu PrintDialog.ShowDialog . Tato komponenta má vlastnosti, které se týkají buď jedné tiskové úlohy (PrintDocument třídy), nebo nastavení jednotlivých tiskáren (PrinterSettings třídy). Jeden z těchto dvou je zase možné sdílet více tiskárnami.

Metoda zobrazit dialogové okno vám pomůže přidat dialogové okno tisku do formuláře. Komponenta PrintDialog se zobrazí v zásobníku v dolní části návrháře model Windows Forms v sadě Visual Studio.

Jak zachytit uživatelský vstup z PrintDialogu za běhu

Možnosti související s tiskem můžete nastavit v době návrhu. Někdy můžete chtít tyto možnosti změnit za běhu, s největší pravděpodobností z důvodu voleb provedených uživatelem. Uživatelský vstup můžete zaznamenat pro tisk dokumentu pomocí těchto PrintDialog součástí.PrintDocument Následující kroky ukazují zobrazení dialogového okna tisku dokumentu:

  1. PrintDialog Přidejte do formuláře komponentu PrintDocument a ji.

  2. Document Nastavte vlastnost PrintDialog na přidanou PrintDocument do formuláře.

    PrintDialog1.Document = PrintDocument1
    
    printDialog1.Document = printDocument1;
    
  3. Zobrazte PrintDialog komponentu ShowDialog pomocí metody.

    If PrintDialog1.ShowDialog() = DialogResult.OK Then
        PrintDocument1.Print()
    End If
    
    // display show dialog and if user selects "Ok" document is printed
    if (printDialog1.ShowDialog() == DialogResult.OK)
        printDocument1.Print();
    
  4. Možnosti tisku uživatele z dialogového okna se zkopírují do PrinterSettings vlastnosti PrintDocument komponenty.

Jak vytvořit tiskové úlohy

Základem tisku v model Windows Forms je PrintDocument komponenta – PrintPage konkrétně událost. Napsáním kódu pro zpracování PrintPage události můžete určit, co se má vytisknout a jak ho vytisknout. Následující kroky ukazují vytvoření tiskové úlohy:

  1. Přidejte do formuláře komponentu PrintDocument .

  2. Napište kód pro zpracování PrintPage události.

    Budete muset kódovat vlastní logiku tisku. Kromě toho budete muset zadat materiál, který se má vytisknout.

    Jako materiál k tisku se v následujícím příkladu kódu vytvoří v obslužné rutině události ukázkový obrázek ve tvaru červeného obdélníku PrintPage .

    Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
        e.Graphics.FillRectangle(Brushes.Red, New Rectangle(100, 100, 100, 100))
    End Sub
    
    private void PrintDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) =>
        e.Graphics.FillRectangle(Brushes.Red, new Rectangle(100, 100, 100, 100));
    

Můžete také chtít napsat kód pro události BeginPrint a EndPrint události. Pomůže vám zahrnout celé číslo představující celkový počet stránek, které se vytisknou při tisku každé stránky.

Poznámka:

Do formuláře můžete přidat komponentu PrintDialog , která uživatelům poskytne čisté a efektivní uživatelské rozhraní. Document Nastavení vlastnosti PrintDialog komponenty umožňuje nastavit vlastnosti související s tiskovým dokumentem, se kterým pracujete ve formuláři.

Další informace o specifikách model Windows Forms tiskových úloh, včetně toho, jak vytvořit tiskovou úlohu prostřednictvím kódu programu, najdete v tématu PrintPageEventArgs.

Jak dokončit tiskové úlohy

Často platí, že textové procesory a další aplikace, které zahrnují tisk, poskytují možnost zobrazit uživatelům zprávu o dokončení tiskové úlohy. Tuto funkci můžete poskytnout ve svém model Windows Forms zpracováním EndPrint události PrintDocument komponenty.

Následující postup vyžaduje, abyste vytvořili aplikaci založenou na systému Windows s komponentou PrintDocument . Níže uvedený postup představuje standardní způsob povolení tisku z aplikace založené na systému Windows. Další informace o tisku z model Windows Forms pomocí PrintDocument komponenty naleznete v tématu Vytváření tiskových úloh.

  1. DocumentName Nastavte vlastnost PrintDocument komponenty.

    PrintDocument1.DocumentName = "SamplePrintApp"
    
    printDocument1.DocumentName = "SamplePrintApp";
    
  2. Napište kód pro zpracování EndPrint události.

    V následujícím příkladu kódu se zobrazí okno se zprávou, které indikuje, že dokument dokončil tisk.

    Private Sub PrintDocument1_EndPrint(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintEventArgs) Handles PrintDocument1.EndPrint
        MessageBox.Show(PrintDocument1.DocumentName + " has finished printing.")
    End Sub
    
    private void PrintDocument1_EndPrint(object sender, System.Drawing.Printing.PrintEventArgs e) =>
        MessageBox.Show(printDocument1.DocumentName + " has finished printing.");