使用 Win32 API 將原始資料傳送到印表機
原文地址::https://docs.microsoft.com/zh-cn/troubleshoot/windows/win32/win32-raw-data-to-printer
相關文章
1、USB口的印表機接計算機,CreateFile函式的第一個引數該如何寫----https://bbs.csdn.net/topics/370169850
2、USB 用CreateFile()開啟usb裝置時,如何填寫devicepath這個值?----https://bbs.csdn.net/topics/392451132
文介紹如何使用 Win32 API 將原始資料傳送到印表機。
原始產品版本: Windows API
原始 KB 數: 138594
摘要
有時,不需要將印表機特定的資料直接傳送到印表機,而是繞過驅動程式。 Win32 API 提供了它在本地和網路印表機上的工作方式。 此方法可用於替換 PASSTHROUGH
SpoolFile()
在早期版本的 Windows API 中使用的轉義和方法。
程式碼示例
您可以使用以下程式碼將原始資料直接傳送到 Windows NT 或 Windows 95 中的印表機。
C++複製
// 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 使用了最新的病毒檢測軟體,該軟體在檔案釋出之日起可用。 檔案儲存在安全增強的伺服器上,可幫助防止對檔案進行任何未經授權的更改。
相關文章
- 將CSV的資料傳送到kafka(java版)KafkaJava
- [譯]Flask教程–將表單資料傳送到模板Flask
- 如何使用DTM將App事件傳送到Google AnalyticsAPP事件Go
- 惠普印表機被發現偷偷回傳資料
- 利用華為DTM將事件傳送到Firebase事件
- 如何用idea將專案傳送到gitIdeaGit
- win10系統印表機已列印出來仍顯示“已傳送到..” 如何解決Win10
- 運營人員如何快速地將事件傳送到Google Analytics?事件Go
- filebeat將日誌傳送到kafka不同分割槽的方法Kafka
- Win32常用API講解Win32API
- Canal1.1.4獲取資料後直接傳送到kafka的Topic中Kafka
- 惠普印表機怎麼安裝?惠普印表機安裝使用教程
- 使用spring.cloud.stream來傳送kafka訊息,並根據某欄位將訊息傳送到固定partition上SpringCloudKafka
- 將本地nuget包推送到Nexus
- 如何將高通量測序原始資料上傳到NCBI的SRA(The Sequence Read Archive)資料庫?Hive資料庫
- WIN32傳送自定義訊息Win32
- 使用LPD協議來共享印表機協議
- Hadoop資料傳輸:如何將資料移入和移出Hadoop?Hadoop
- 資料傳輸 | 利用 DTLE 將 MySQL 資料同步到 DBLEMySql
- python使用opencv播放視訊併傳送到串列埠,讓51顯示PythonOpenCV串列埠
- 怎麼可以將活動訊息一鍵傳送到企業全部客戶群
- win32 API程式設計之GDI繪圖Win32API程式設計繪圖
- w10印表機不能使用怎麼辦_win10印表機無法使用解決方法Win10
- 印表機不列印是怎麼回事 印表機不印表機的解決方法
- 經GitHub將kubernetes映象推送到阿里雲Github阿里
- macOS 移除頑固印表機資訊Mac
- 印表機驅動程式無法使用怎麼解決 印表機驅動程式無法使用w10
- win10傳送到桌面快捷方式的方法_win10系統怎麼傳送到桌面快捷方式Win10
- 織夢dedecms提交留言表單資訊自動傳送到郵箱
- 微軟宣佈Win10X將支援傳統Win32、沙箱和容器應用微軟Win10Win32
- Win32 API CreateCompatibleDC 函式的相關應用Win32API函式
- MySQL 自動備份併傳送到郵箱MySql
- 教你如何使用API介面獲取資料!API
- 0211-使用 dummy 傳送資料
- 如何將傳統關聯式資料庫的資料匯入Hadoop?資料庫Hadoop
- 如何將帶網口印表機進行區域網共享列印
- 如何安裝pdf印表機 安裝pdf印表機的方法
- windows如何新增印表機 windows新增印表機的方法Windows