Guest User

Untitled

a guest
Mar 18th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.97 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <windows.h>
  3. #include <string.h>
  4.  
  5. int main ()
  6. {
  7. TCHAR szDriver[16] = _T("WINSPOOL");
  8. TCHAR szPrinter[256];
  9. DWORD cchBuffer = 255;
  10. HDC hdcPrint = NULL;
  11. HANDLE hPrinter = NULL;
  12. PRINTER_INFO_2 *pPrinterData;
  13. BYTE pdBuffer[16384];
  14. BOOL bReturn = FALSE;
  15.  
  16. DWORD cbBuf = sizeof (pdBuffer);
  17. DWORD cbNeeded = 0;
  18. pPrinterData = (PRINTER_INFO_2 *)&pdBuffer[0];
  19.  
  20. // get the default printer name
  21. bReturn = GetDefaultPrinter(
  22. szPrinter,
  23. &cchBuffer);
  24.  
  25. if (bReturn) {
  26. // open the default printer
  27. bReturn = OpenPrinter(
  28. szPrinter,
  29. &hPrinter,
  30. NULL);
  31. }
  32.  
  33. if (bReturn) {
  34. // get the printer port name
  35. bReturn = GetPrinter(
  36. hPrinter,
  37. 2,
  38. &pdBuffer[0],
  39. cbBuf,
  40. &cbNeeded);
  41.  
  42. // this handle is no longer needed
  43. ClosePrinter(hPrinter);
  44. }
  45.  
  46. if (bReturn) {
  47. // create the Print DC
  48. hdcPrint = CreateDC(szDriver, szPrinter,
  49. pPrinterData->pPortName, NULL);
  50. }
  51.  
  52. if (hdcPrint) {
  53. // Print a test page that contains the string
  54. // "PRINTER TEST" in the upper left corner.
  55.  
  56. Escape(hdcPrint, STARTDOC, 8, "Test-Doc", NULL);
  57. TextOut(hdcPrint, 50, 50, _T("PRINTER TEST"), 12);
  58. Escape(hdcPrint, NEWFRAME, 0, NULL, NULL);
  59. Escape(hdcPrint, ENDDOC, 0, NULL, NULL);
  60.  
  61. // Delete the printer DC.
  62. DeleteDC(hdcPrint);
  63. }
  64.  
  65. #include "stdafx.h"
  66. #include <stdio.h>
  67. #include <windows.h>
  68. #include <string.h>
  69.  
  70. int main ()
  71. {
  72. TCHAR szDriver[16] = _T("WINSPOOL");
  73. TCHAR szPrinter[256];
  74. DWORD cchBuffer = 255;
  75. HDC hdcPrint = NULL;
  76. HDC hdcPrintImg = NULL;
  77. HANDLE hPrinter = NULL;
  78. PRINTER_INFO_2 *pPrinterData;
  79. BYTE pdBuffer[16384];
  80. BOOL bReturn = FALSE;
  81.  
  82. DWORD cbBuf = sizeof (pdBuffer);
  83. DWORD cbNeeded = 0;
  84. pPrinterData = (PRINTER_INFO_2 *)&pdBuffer[0];
  85.  
  86. // get the default printer name
  87. bReturn = GetDefaultPrinter(
  88. szPrinter,
  89. &cchBuffer);
  90.  
  91. if (bReturn) {
  92. // open the default printer
  93. bReturn = OpenPrinter(
  94. szPrinter,
  95. &hPrinter,
  96. NULL);
  97. }
  98.  
  99. if (bReturn) {
  100. // get the printer port name
  101. bReturn = GetPrinter(
  102. hPrinter,
  103. 2,
  104. &pdBuffer[0],
  105. cbBuf,
  106. &cbNeeded);
  107.  
  108. // this handle is no longer needed
  109. ClosePrinter(hPrinter);
  110. }
  111.  
  112. if (bReturn) {
  113. // create the Print DC
  114. HBITMAP bmp = (HBITMAP)LoadImage(0, L"print_file.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
  115. HBITMAP CreatCompatibleBitmap(bmp);
  116. hdcPrintImg = bmp;
  117. hdcPrint = CreateDC(szDriver, szPrinter,
  118. pPrinterData->pPortName, NULL);
  119. }
  120.  
  121. if (hdcPrint) {
  122. // Print a test page that contains the string
  123. // "PRINTER TEST" in the upper left corner.
  124. //Escape(hdcPrint, STARTDOC, 8, "Test-Doc", NULL);
  125. //TextOut(hdcPrint, 50, 50, _T("PRINTER TEST"), 12);
  126. BitBlt(hdcPrint, 0, 0, 3300, 2550, hdcPrintImg, 0, 0, SRCCOPY);
  127. //Escape(hdcPrint, NEWFRAME, 0, NULL, NULL);
  128. //Escape(hdcPrint, ENDDOC, 0, NULL, NULL);
  129.  
  130. // Delete the printer DC.
  131. DeleteDC(hdcPrint);
  132. }
Add Comment
Please, Sign In to add comment