回覆列表
  • 1 # 使用者9016482866272

    這裡給出一個例子,//pDeviceName, 印表機名稱,就是你在裝置列表中看到的裝置名稱,比如"HP LaserJet P3010 Series PCL 6 (Copy 1)".//pDevMode, 印表機驅動程式的裝置資訊, 關於這個資料型別還是看看DDK或者VS的文件吧.void TestPrint(TCHAR* pDeviceName, DEVMODE* pDevMode){HDC hdc = CreateDC(TEXT("WINSPOOL"), pDeviceName, NULL, pDevMode);if(hdc){ CString portname = TEXT("FILE:");//也可以是"D:\\1.prn" CString jobname = TEXT("test printing job"); DOCINFO doc; memset(&doc, 0, sizeof(doc)); doc.cbSize = sizeof(doc); doc.lpszDocName = jobname.GetBuffer(_MAX_PATH); doc.lpszOutput = portname.GetBuffer(_MAX_PATH); if(StartDoc(hdc, &doc)) { if(StartPage(hdc)) { int cWidthPels, cHeightPels; cWidthPels = GetDeviceCaps(hdc, HORZRES); cHeightPels = GetDeviceCaps(hdc, VERTRES); TextOut(hdc, cWidthPels/8, cHeightPels/8, (LPCTSTR)jobname, jobname.GetLength()); EndPage(hdc); } EndDoc(hdc); jobname.ReleaseBuffer(); portname.ReleaseBuffer(); } DeleteDC(hdc);}}本例子使用TextOut輸出字串到印表機,你可以用其他API輸出物件,比如BitBlt輸出影象等等.可以透過OpenPrinter(),GetPrinter()得到DEVMODE.注意,例子中doc.lpszOutput的賦值對你的訴求尤為重要,"FILE:"埠相當於制定了"列印到檔案"需要使用者手動填寫輸出檔名稱及路徑,"D:\\1.prn"則直接將資料輸出到D:\1.prn而不提示使用者.PCL, PJL, PS references這個可以下載PCL5/6, PJL, PS3語言規範書.LZ可以散分了吧...

    引用來自:MFC如何生成prn檔案(印表機)

  • 中秋節和大豐收的關聯?
  • 什麼是洛淪茲變換和麥克斯韋方程?