Använd Printer-funktionen 1/2
Förord
Konstigt nog existerar ingen printerkontroll i VB6. Till skillnad mot de flesta andra kontroller i Visual Basic, kan just utskriften vara en omständig process. Konstigt nog är en av Visual Basic's svagheter även dess styrka. Utskrifter kräver att du sänder en lagom lång lista med instruktioner till din skrivare som förklarar exakt hur utskriften är tänkt att se ut. Så lätt som Visual Basic gör för anväatt hantera andra kontroller, borde utskrifterna kunna göras på ett lättare sätt. Trots allt trixande som är i samband med utskriften, kommer du snart se att du klarar det mesta med printerhantering, inklusive fonter på individuella tecken som din programvara sänder till skrivaren. Kontrollen som används för att skriva kräver exakta punkter där din utskrift skall ske.Innehåll
»»
»
Relaterade artiklar
» Använd Printer-funktionen 2/2En ny funktion är print spoolern, även kallad printerkö eller på engelska queue. Detta är kontrollen som hanterar utskriften från Windows. När din applikation sänder utskriften till skrivaren, snappar Windows upp dessa printerkommandon. I stället för att skicka utskriften direkt till din anslutna skrivare, kommer Visual Basic egentligen att skicka utskriftern till utskriftshanteraren. Print spoolern bestämmer hur alla utskrifter från Windows program skall bete sig. Därför kan Windows förändra utskriften innan printern ser informationen.
Windows print spooler känner hur den skall kommunicerar med alla godkända skrivare till Windows. Det finns hundratals olika skrivare som Windows klarar att hantera idag, och de flesta skrivarna kräver speciella kommandon. Om alla program som du har skulle ha en uppsättning drivrutiner ta mycket mer plats än de redan gör idag, och programmen skulle kosta mycket mer beroende på att varje utvecklare skulle vara tvungen att spendera massor av tid för att producera utskrifter på varje typ av skrivare som finns tillgänglig. I stället för att alla utvecklare supportar alla skrivarna, så kräver Windows att endast en av de tillgängliga skrivarna fungerar mot print spoolern. Om programmet som du skriver, skall producera en utskrift så producerar Visual Basic en utskrift som är korrekt för Windows print spooler. Windows print spooler kan då konvertera utskriften till individuella kommandon som krävs för att klara utskrifter, oavsett vilken skrivare som är ansluten till användarens dator.
Tänk om du hade både en laserskrivare och en color ink-jet skrivare ansluten till din dator. Utan Windows print spoller skulle du behöva underhålla två program med utskriftskontroller för varje Visual Basic program som du skriver. Med Windows print spooler, behöver du bara en generell uppsättning av printer utskrifts kommandon. Innan du kör din applikation kan du använda kommandon som bestämmer vilken skrivare som du skall använda för att skicka dina utskrifter till. Windows kommer konvertera Visual Basic utskriften till kommandon som krävs för skrivaren, oavsett typ som du väljer. Windows print spooler förenklar användandet så du endast behöver koncentrera dig på vad som skall skrivas ut, inte hur.
Användare kan fångas omedvetet om din applikation startar en utskrift utan att varna användaren att skrivaren måste vara färdig. Även kallat "online". Påminn alltid användaren att sätta på skrivaren, kontrollera att den har papper och att skrivaren är online. Om användarens skrivare inte är påslagen och färdig med papper, kommer användaren få ett felmeddelande från Windows print spooler att skrivaren har problem. En messagebox "meddelande" kommer upp, som du kanske vill kontrollera innan ditt program börjar skriva. Självklart, kan du själv skriva en sådan kontroll så du påvisar användaren informationen innan utskriften startas:
Efter att användaren läst meddelandet och svarat, returnerar funktionen värdet Truel eller False för att vi skall kunna bestämma om han vill skriva ut nu, Det returnerade värdet Truel eller False kan kontrolleras genom att använda följande kommando:
Visual Basic applikationer sänder all utskrift till ett speciellt Visual Basic objekt som kallas Printer objektet. Printer objektet ansvarar för många egenskaper och metoder som låter dig hantera dina utskrifter. Printer keywords "nyckelord", specificerar printer objektet där din applikation sänder vidare informationen till utskrift. Det finns alltså ingen printerkontroll i Toolbox fönstret. All kommunikation med skrivaren sker genom att skriva Visual Basic kod. De kommandon som din applikation sänder till skrivaren är generella printer kommandon. Därför behöver du bara bekymra dig om vad som skall skriva ut och låta Windows print spooler ta hand om hur detta skall produceras. Du har säkert lärt dig om objekt såsom Command Button kontrollen, att egenskaperna är relaterade till objektet. Innan du använder printer objektet, skall du se egenskaperna för Printer objektet så att du vet vad det finns för typer av saker som du kan göra vid utskriften inifrån Visual Basic. Alla printer objektens egenskaper är listade i tabellen som du ser nedan.
Att förstå: En pixel är den minsta adresserbara punkten på skärmen eller skrivaren
Notera: Grafiskt relaterade printer egenskaper och metoder finns inte med i denna lista. När du klarar av att hantera grafiska objekt, kommer du att vara mer förberedd att förstå dessa grafiskt relaterade Printer objekts egenskaper. De flesta av dessa egenskaper är reserverade för att kontrollera extremt avancerade grafiskta utskrifter. För typiska applikationer, kommer du knappast behöva använda dessa avancerade kommandon och hanteringar för att klara av det vanliga utskriftsjobbet som krävs av rapporter av idag.
Den mest använda metoden är Print, EndDoc och NewPage metoden. När du väl förstått dessa tre metoder, kommer du knappast att använda någon annan metod.
Printer objektets Print metod hanterar nästan all utskrift. Print använder ett flertal olika format. Med Print, kan du skriva meddelanden, variabler, konstanter och uttryck på skrivaren. Print metoden är den mest använda metoden i Visual Basic. Genom att bemästra Print, kommer du klara av nästan allt. Formatet för Print metoden är : [Printer.]Print [Spc(n) | Tab(n)] Uttryck
Formatet gör att Print kommandot ser mer konstigt ut än vad det egentligen är, men delar av Print metoden som visas till höger om Print kräver lite förklaring. De nästa sektionerna förklarar de olika tilläggen som finns tillgängliga för Print metoden.
Windows print spooler känner hur den skall kommunicerar med alla godkända skrivare till Windows. Det finns hundratals olika skrivare som Windows klarar att hantera idag, och de flesta skrivarna kräver speciella kommandon. Om alla program som du har skulle ha en uppsättning drivrutiner ta mycket mer plats än de redan gör idag, och programmen skulle kosta mycket mer beroende på att varje utvecklare skulle vara tvungen att spendera massor av tid för att producera utskrifter på varje typ av skrivare som finns tillgänglig. I stället för att alla utvecklare supportar alla skrivarna, så kräver Windows att endast en av de tillgängliga skrivarna fungerar mot print spoolern. Om programmet som du skriver, skall producera en utskrift så producerar Visual Basic en utskrift som är korrekt för Windows print spooler. Windows print spooler kan då konvertera utskriften till individuella kommandon som krävs för att klara utskrifter, oavsett vilken skrivare som är ansluten till användarens dator.
Tänk om du hade både en laserskrivare och en color ink-jet skrivare ansluten till din dator. Utan Windows print spoller skulle du behöva underhålla två program med utskriftskontroller för varje Visual Basic program som du skriver. Med Windows print spooler, behöver du bara en generell uppsättning av printer utskrifts kommandon. Innan du kör din applikation kan du använda kommandon som bestämmer vilken skrivare som du skall använda för att skicka dina utskrifter till. Windows kommer konvertera Visual Basic utskriften till kommandon som krävs för skrivaren, oavsett typ som du väljer. Windows print spooler förenklar användandet så du endast behöver koncentrera dig på vad som skall skrivas ut, inte hur.
Förbereda användaren för utskrift
Användare kan fångas omedvetet om din applikation startar en utskrift utan att varna användaren att skrivaren måste vara färdig. Även kallat "online". Påminn alltid användaren att sätta på skrivaren, kontrollera att den har papper och att skrivaren är online. Om användarens skrivare inte är påslagen och färdig med papper, kommer användaren få ett felmeddelande från Windows print spooler att skrivaren har problem. En messagebox "meddelande" kommer upp, som du kanske vill kontrollera innan ditt program börjar skriva. Självklart, kan du själv skriva en sådan kontroll så du påvisar användaren informationen innan utskriften startas:
Public Function PrReady() As Boolean
` Var säker på att användaren skrivare är klar att använda
Dim intIsReady As Integer
intIsReady = MsgBox("Kontroller att skrivaren är påslagen", _
vbCritical, "Printer Check")
If (intIsReady = vbCancel) Then
PrReady = False ` Ett Cancel tryck returnerar ett False värde
Else
PrReady = True ` Användaren trycker OK så returnera True
End If
End Function
Efter att användaren läst meddelandet och svarat, returnerar funktionen värdet Truel eller False för att vi skall kunna bestämma om han vill skriva ut nu, Det returnerade värdet Truel eller False kan kontrolleras genom att använda följande kommando:
If PrReady() Then ` Om funktionen är True
Call PrintRoutine ` Starta utskriftsprocess subrutinen
End If
Introducera Printer objektet
Visual Basic applikationer sänder all utskrift till ett speciellt Visual Basic objekt som kallas Printer objektet. Printer objektet ansvarar för många egenskaper och metoder som låter dig hantera dina utskrifter. Printer keywords "nyckelord", specificerar printer objektet där din applikation sänder vidare informationen till utskrift. Det finns alltså ingen printerkontroll i Toolbox fönstret. All kommunikation med skrivaren sker genom att skriva Visual Basic kod. De kommandon som din applikation sänder till skrivaren är generella printer kommandon. Därför behöver du bara bekymra dig om vad som skall skriva ut och låta Windows print spooler ta hand om hur detta skall produceras. Du har säkert lärt dig om objekt såsom Command Button kontrollen, att egenskaperna är relaterade till objektet. Innan du använder printer objektet, skall du se egenskaperna för Printer objektet så att du vet vad det finns för typer av saker som du kan göra vid utskriften inifrån Visual Basic. Alla printer objektens egenskaper är listade i tabellen som du ser nedan.Att förstå: En pixel är den minsta adresserbara punkten på skärmen eller skrivaren
Egenskap | Förklaring |
---|---|
ColorMode | If 1 (or if set to the vbPRCMMonochrome named literal), output prints in monochrome (shades of white and black) even if you use a color printer. If 2 (or if set to the vbPRCMColor named literal), output prints in color. |
Copies | Specifies the number of copies to print. |
CurrentX | Holds the horizontal print column, from the upper-left corner of the page, measured either in twips or the scale defined by the ScaleMode properties. |
CurrentY | Holds the vertical print row, from the upper-left corner of the page, measured either in twips or the scale defined by ScaleMode properties. |
DeviceName | The name of the output device, such as a printer driver, to which you want to print. |
DrawMode | Determines the appearance of graphics that you draw on the printer. |
DrawStyle | Specifies the style of any graphical lines that your application draws. |
DrawWidth | Specifies the width of lines drawn, from 1 (the default) to 32767 pixels. |
DriverName | The name of the printer driver (do not specify the driver's extension). |
Duplex | If 1 (or if set to the named literal vbPRDPSimplex), printing will occur on one side of the page. If 2 (or if set to the named literal vbPRDPHorizontal), printing will occur on both sides (if your printer supports double-sided printing) using a horizontal page turn. If 3 (or if set to the named literal vbPRDPVertical), printing will occur on both sides (if your printer supports double-sided printing) using a vertical page turn. |
FillColor | Specifies the color of printed shapes. Determines the shading density for noncolor printed output. |
FillStyle | Contains the style pattern of printed shapes. |
Font | Returns a font that you can use for setting font attributes. |
FontBold | Contains either True or False to determine whether subsequent printed output will be boldfaced. |
FontCount | Specifies the current printer's number of installed fonts. |
FontItalic | Holds either True or False to determine whether subsequent output will be italicized. |
FontName | Holds the name of the current font being used for output. |
Fonts | Contains a table of values that act as if they were stored in a control array. Fonts(0) to Fonts (FontCount-1) holds the names of all installed fonts on the target computer. |
FontSize | Holds the size, in points, of the current font. |
FontStrikeThru | Holds either True or False to determine whether subsequent output will be printed with a trikethrough line. |
FontTransparent | Holds either True or False to determine whether subsequent output will be transparent. |
FontUnderline | Holds either True or False to determine whether subsequent output will be underlined. |
ForeColor | Specifies the foreground color of printed text and graphics. (The paper determines the background color.) |
hDC | A Windows device context handle for advanced Windows procedure calls. |
Height | Holds the height, in twips, of the current printed page. |
Orientation | If 1 (or if set to the named literal vbPRORPortrait), output prints in portrait mode (printing occurs down the page). If 2 (or if set to the named literal vbPRORLandscape), output prints in landscape mode (printing occurs across the page). |
Page | Contains the page number currently being printed and updated automatically by Visual Basic. |
PaperBin | Specifies which paper bin the print job will use. You can search the online help for the PaperBin property for several named literals you can use to specify different kinds of bins. |
PaperSize | Specifies the size of paper the print job will use. You can search the online help for the PaperSize property for several named literals you can use to specify different sizes of paper. |
Port | Specifies the printer port, such as LPT1:. |
PrintQuality | Determines how fine the print quality will appear. If -1 (or set to the vbPRPQDraft named literal), the printing quality is the least, but the print completes quickly. If -2 (or set to the vbPRPQLow named literal), printing occurs in a low-resolution mode. If -3 (or set to the vbPRPQMedium named literal), printing occurs in a medium resolution mode. If -4 (or set to the vbPRPQHigh named literal), printing is the slowest but the highest quality. |
ScaleHeight | Specifies how many ScaleMode units high each graphic will be upon output. |
ScaleLeft | Specifies how many ScaleMode units from the left of the page subsequent printed output appears. |
ScaleMode | Sets the unit of measurement for all subsequent printed output that appears. |
ScaleTop | Specifies how many ScaleMode units from the top of the page all subsequent printed output appears. |
ScaleWidth | Specifies how many ScaleMode units wide each graphic will be upon printed output. |
TrackDefault | If True, the specified printer changes if you change the default printer at the operating system level. False, the specified printer remains the same during the program's operation even if the system's default printer changes during the program's execution. |
TwipsPerPixelX | Specifies the number of screen twips that each printer's dot (called a pixel) height consumes. |
TwipsPerPixelY | Specifies the number of screen twips that each printer's dot, or pixel, width consumes. |
Width | Holds the size of the page width (measured in twips). |
Zoom | Specifies the percentage at which printed output prints. A negative value scales the output down (smaller), 0 requests no scaling, and a positive value scales the output up (larger). |
Notera: Grafiskt relaterade printer egenskaper och metoder finns inte med i denna lista. När du klarar av att hantera grafiska objekt, kommer du att vara mer förberedd att förstå dessa grafiskt relaterade Printer objekts egenskaper. De flesta av dessa egenskaper är reserverade för att kontrollera extremt avancerade grafiskta utskrifter. För typiska applikationer, kommer du knappast behöva använda dessa avancerade kommandon och hanteringar för att klara av det vanliga utskriftsjobbet som krävs av rapporter av idag.
Method | Description |
---|---|
Circle | Draws a circle, an ellipse, or an arc on the printer. |
EndDoc | Releases the current document, in full, to the print spooler for output. |
KillDoc | Immediately terminates the output and deletes the current print job from the print spooler. |
Line | Draws lines and boxes on the page. |
NewPage | Sends a page break to the printed output so that subsequent output appears on the next page. |
PaintPicture | Draws a graphic image file on the printer. |
Prints numeric and text data on the printer. | |
PSet | Draws a graphical point on the printed output. |
Scale | Determines the scale used for measuring output. |
ScaleX | Converts the printer's width to ScaleMode's measurement unit. |
ScaleY | Converts the printer's height to ScaleMode's measurement unit. |
TextHeight | Determines the full height of text given in the scale set with Scale. |
TextWidth | Determines the full width of text given in the scale set with Scale. |
Den mest använda metoden är Print, EndDoc och NewPage metoden. När du väl förstått dessa tre metoder, kommer du knappast att använda någon annan metod.
Printer metoden
Printer objektets Print metod hanterar nästan all utskrift. Print använder ett flertal olika format. Med Print, kan du skriva meddelanden, variabler, konstanter och uttryck på skrivaren. Print metoden är den mest använda metoden i Visual Basic. Genom att bemästra Print, kommer du klara av nästan allt. Formatet för Print metoden är : [Printer.]Print [Spc(n) | Tab(n)] UttryckFormatet gör att Print kommandot ser mer konstigt ut än vad det egentligen är, men delar av Print metoden som visas till höger om Print kräver lite förklaring. De nästa sektionerna förklarar de olika tilläggen som finns tillgängliga för Print metoden.
0 Kommentarer