This method creates a device context.
Parameters
Name | Explanation |
---|---|
Mode | The method for creating the device context (from 0 to 2) |
In Visual Basic, the following constants can also be used: (ikPrinterName = 0, ikPrintFileName = 1, ikDevMode = 2).
Return Value
Returns True (nonzero) if successful. Returns False (0) if unsuccessful.
Explanation
The PrintCreateDC method creates a device context in one of three ways.
When the Mode parameter is 0:
The device context is created for the printer that has its name set in the PrinterName property.
When the Mode parameter is 1:
The device context is created for the printer that is listed in the file set in the PrintFileName property.
When the Mode parameter is 2:
The device context is created from the handle of the DEVMODE structure that is set in the DevMode property.
To print with the default printer using the current settings, set the Mode parameter to 1 and in the PrintFileName property set, "Default".
When the device context is created, it will be created in the Hdc property. The device context is freed using the PrintDeleteDC method.
As an extension to the PrintFileName property, it's possible to print without changing the settings that have been already set in the printer information file by adding the print number of copies, the printer orientation, and the paper size (in that order) in the back of the file name before executing the PrintCreateDC method. The delimiter for the settings is a semicolon (;). These settings (the the print number of copies, the printer orientation, and the paper size) can be omitted.
Note: Enter a zero (0) into the properties that you do not want to change. For more information please refer to the PrintFileName property as well as the Copies, PaperSize and Orientation properties.
The printer orientation: ( ) The explanation contained in the parentheses has the same meaning as the constants used by WindowsAPI.
Value | Explanation |
---|---|
1 | Vertical (DMORIENT_PORTRAIT) |
2 | Horizontal (DMORIENT_LANDSCAPE) |
the paper size: ( ) The explanation contained in the parentheses has the same meaning as the constants used by WindowsAPI.
Value | Explanation |
---|---|
8 | A3(DMPAPER_A3) |
9 | A4(DMPAPER_A4) |
12 | B4(DMPAPER_B4) |
13 | B5(DMPAPER_B5) |
Sample Code: Using a printer setting file (IkPrint.Ik) to print (VisualBasic)
(1) Standard case
ImageKit1.PrintDraw.PrintFileName = "C:\Test\IkPrint.Ik"
(2) Using the extended functions of the printer setting file
A) Number of copies= 3, Orientation = Horizontal, PaperSize = B5
ImageKit1.PrintDraw.PrintFileName = "C:\Test\Ik8Print.Ik8;3;2;13"
B) Retrieve the number of copies and paper size from the printer file but the orientation to horizontal
ImageKit1.PrintDraw.PrintFileName = "C:\Test\IkPrint.Ik;0;2;0" or ImageKit1.PrintDraw.PrintFileName = "C:\Test\IkPrint.Ik;0;2"
Sample Code: Using a printer setting file (IkPrn.Ik) to print
Visual Basic
Dim Ret As Boolean
ImageKit1.PrintDraw.PrintFileName = "C:\Test\IkPrn.Ik"
Ret = ImageKit1.PrintDraw.PrintCreateDC(ikPrintFileName)
If Ret = False Then Exit Sub
ImageKit1.PrintDraw.DocName = "ImageKit Print Sample"
If (ImageKit1.PrintDraw.PrintStartDoc <> False) Then
ImageKit1.PrintDraw.PrintStartPage
//code to draw image or text
ImageKit1.PrintDraw.PrintEndPage
ImageKit1.PrintDraw.PrintEndDoc
End If
ImageKit1.PrintDraw.PrintDeleteDC
Visual C++
BOOL Ret;
ImageKit1.GetPrintDraw().SetPrintFileName("C:\\Test\\IkPrn.Ik");
Ret = ImageKit1.GetPrintDraw().PrintCreateDC(1);
if (Ret == FALSE) return;
ImageKit1.GetPrintDraw().SetDocName("ImageKit Print Sample");
if (ImageKit1.GetPrintDraw().PrintStartDoc() != FALSE) {
ImageKit1.GetPrintDraw().PrintStartPage();
//code to draw image or text
ImageKit1.GetPrintDraw().PrintEndPage();
ImageKit1.GetPrintDraw().PrintEndDoc();
}
ImageKit1.GetPrintDraw().PrintDeleteDC();