Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Windows-alapú alkalmazások gyakran nyomtatnak szöveget. A Graphics osztály metódusokat biztosít objektumok (ábrák vagy szövegek) eszközre, például képernyőre vagy nyomtatóra való rajzolásához. Az alábbi szakasz részletesen ismerteti a szövegfájl nyomtatásának folyamatát. Ez a módszer nem támogatja a nem egyszerű szöveges fájlok, például office Word-dokumentumok vagy PDF- fájlok nyomtatását.
Megjegyzés:
A DrawText nyomtatási módszerek TextRenderer nem támogatottak. Mindig a DrawStringGraphics metódusait kell használnia, ahogyan az a következő kód példában látható, a szöveg nyomtatáshoz való rajzolásához.
Szöveg nyomtatása
A Visual Studióban kattintson duplán a nyomtatni kívánt űrlapra a Megoldáskezelő panelen. Ez a művelet megnyitja a Visual Designert.
Az Eszközkészletterületen kattintson duplán a PrintDocument összetevőre az űrlaphoz való hozzáadásához. Ez a művelet létrehoz egy
PrintDocumentösszetevőt a névvelprintDocument1.Adjon hozzá egy
Buttonaz űrlaphoz, vagy használjon egy gombot, amely már szerepel az űrlapon.Az űrlap Visual Designerjében válassza ki a gombot. A Tulajdonságok panelen válassza az Esemény szűrőgombot, majd kattintson duplán a
Clickeseményre egy eseménykezelő létrehozásához.A
Clickeseménykódjának láthatónak kell lennie. Az eseménykezelő hatókörén kívül adjon hozzá egy privát sztringváltozót astringToPrintnevű osztályhoz.private string stringToPrint="";'Private PrintDocument1 As New PrintDocument() Private stringToPrint As StringLépjen vissza a(z)
Clickeseménykezelő kódjába, és állítsa be a(z) DocumentName tulajdonságot a dokumentum nevére. Ezt az információt a rendszer elküldi a nyomtatónak. Ezután olvassa el a dokumentum szöveges tartalmát, és tárolja astringToPrintsztringben. Végül hívja meg a Print metódust a PrintPage esemény indításához. APrintmetódus a következő kódban van kiemelve:private void button1_Click(object sender, EventArgs e) { string docName = "testPage.txt"; string docPath = @"C:\"; string fullPath = System.IO.Path.Combine(docPath, docName); printDocument1.DocumentName = docName; stringToPrint = System.IO.File.ReadAllText(fullPath); printDocument1.Print(); }Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim docName As String = "testPage.txt" Dim docPath As String = "C:\" Dim fullPath As String = System.IO.Path.Combine(docPath, docName) PrintDocument1.DocumentName = docName stringToPrint = System.IO.File.ReadAllText(fullPath) PrintDocument1.Print() End SubTérjen vissza az űrlap Visual Designerjéhez, és válassza ki a
PrintDocumentösszetevőt. A Tulajdonságok panelen válassza ki a Esemény szűrőt, majd kattintson duplán aPrintPageeseményre egy eseménykezelő létrehozásához.Az PrintPage eseménykezelőben használja a Graphics osztály PrintPageEventArgs tulajdonságát, valamint a dokumentum tartalmát a sorhossz és a sorok oldalonkénti kiszámításához. Az egyes lapok megrajzolása után ellenőrizze, hogy ez-e az utolsó oldal, és ennek megfelelően állítsa be a HasMorePages
PrintPageEventArgstulajdonságát. APrintPageesemény addig kerül indításra, amígHasMorePagesfalse.Az alábbi kód példában az eseménykezelő a "testPage.txt" fájl tartalmát az űrlapon használt betűtípussal megegyező betűtípussal nyomtatja ki.
private void PrintDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { int charactersOnPage = 0; int linesPerPage = 0; // Sets the value of charactersOnPage to the number of characters // of stringToPrint that will fit within the bounds of the page. e.Graphics.MeasureString(stringToPrint, this.Font, e.MarginBounds.Size, StringFormat.GenericTypographic, out charactersOnPage, out linesPerPage); // Draws the string within the bounds of the page e.Graphics.DrawString(stringToPrint, this.Font, Brushes.Black, e.MarginBounds, StringFormat.GenericTypographic); // Remove the portion of the string that has been printed. stringToPrint = stringToPrint.Substring(charactersOnPage); // Check to see if more pages are to be printed. e.HasMorePages = (stringToPrint.Length > 0); }Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As PrintPageEventArgs) Handles PrintDocument1.PrintPage Dim charactersOnPage As Integer = 0 Dim linesPerPage As Integer = 0 ' Sets the value of charactersOnPage to the number of characters ' of stringToPrint that will fit within the bounds of the page. e.Graphics.MeasureString(stringToPrint, Me.Font, e.MarginBounds.Size, StringFormat.GenericTypographic, charactersOnPage, linesPerPage) ' Draws the string within the bounds of the page e.Graphics.DrawString(stringToPrint, Me.Font, Brushes.Black, e.MarginBounds, StringFormat.GenericTypographic) ' Remove the portion of the string that has been printed. stringToPrint = stringToPrint.Substring(charactersOnPage) ' Check to see if more pages are to be printed. e.HasMorePages = stringToPrint.Length > 0 End Sub
Lásd még
.NET Desktop feedback