日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

winaip文档服务器打印,使用 Win32 API 将原始数据发送到打印机

發布時間:2024/3/26 编程问答 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 winaip文档服务器打印,使用 Win32 API 将原始数据发送到打印机 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用 Win32 API 將原始數據發送到打印機

02/28/2020

本文內容

本文介紹如何使用 Win32 API 將原始數據發送到打印機。

原始產品版本: ?Windows API

原始 KB 數: ?138594

摘要

有時,不需要將打印機特定的數據直接發送到打印機,而是繞過驅動程序。 Win32 API 提供了它在本地和網絡打印機上的工作方式。 此方法可用于替換 PASSTHROUGH SpoolFile() 在早期版本的 Windows API 中使用的轉義和方法。

代碼示例

您可以使用以下代碼將原始數據直接發送到 Windows NT 或 Windows 95 中的打印機。

// RawDataToPrinter - sends binary data directly to a printer

// Params:

// szPrinterName - NULL terminated string specifying printer name

// lpData - Pointer to raw data bytes

// dwCount - Length of lpData in bytes

// Returns: TRUE for success, FALSE for failure.

BOOL RawDataToPrinter(LPSTR szPrinterName, LPBYTE lpData, DWORD dwCount)

{

HANDLE hPrinter;

DOC_INFO_1 DocInfo;

DWORD dwJob;

DWORD dwBytesWritten;

// Need a handle to the printer.

if(!OpenPrinter( szPrinterName, &hPrinter, NULL))

return FALSE;

// Fill in the structure with info about this "document."

DocInfo.pDocName = "My Document";

DocInfo.pOutputFile = NULL;

DocInfo.pDatatype = "RAW";

// Inform the spooler the document is beginning.

if((dwJob = StartDocPrinter(hPrinter, 1, (LPSTR)&DocInfo)) == 0)

{

ClosePrinter(hPrinter);

return FALSE;

}

// Start a page.

if(!StartPagePrinter(hPrinter))

{

EndDocPrinter(hPrinter);

ClosePrinter(hPrinter);

return FALSE;

}

// Send the data to the printer.

if(!WritePrinter(hPrinter, lpData, dwCount, &dwBytesWritten))

{

EndPagePrinter(hPrinter);

EndDocPrinter(hPrinter);

ClosePrinter(hPrinter);

return FALSE;

}

// End the page.

if(!EndPagePrinter(hPrinter))

{

EndDocPrinter(hPrinter);

ClosePrinter(hPrinter);

return FALSE;

}

// Inform the spooler that the document is ending.

if(!EndDocPrinter(hPrinter))

{

ClosePrinter(hPrinter);

return FALSE;

}

// Tidy up the printer handle.

ClosePrinter(hPrinter);

// Check to see if correct number of bytes were written.

if(dwBytesWritten != dwCount)

return FALSE;

return TRUE;

}

以下文件可從 Microsoft 下載中心下載:

有關如何下載 Microsoft 支持文件的詳細信息,請參閱如何從聯機服務獲取 Microsoft 支持文件。

Microsoft 已對此文件進行病毒掃描。 Microsoft 使用了最新的病毒檢測軟件,該軟件在文件發布之日起可用。 文件存儲在安全增強的服務器上,可幫助防止對文件進行任何未經授權的更改。

總結

以上是生活随笔為你收集整理的winaip文档服务器打印,使用 Win32 API 将原始数据发送到打印机的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。