2017-12-01 15 views
0

タイトルに書いたように、C++で特定のプリンタの利用可能な用紙フォーマットを取得する方法を探していました。現時点では私は、このように現在の設定を取得することができます。特定のプリンタの利用可能な用紙フォーマットを取得する

LPWSTR pName = L"My Printer Name"; 
HANDLE _printerHandle; 
OpenPrinterW(pName, &_printerHandle, NULL); 

LONG size = DocumentPropertiesW(NULL, _printerHandle, pName, NULL, NULL, 0); 
PDEVMODEW info = (PDEVMODEW)malloc(size); //here I get/set settings 
DocumentPropertiesW(NULL, _printerHandle, pName, info, NULL, DM_OUT_BUFFER); 

すべてのヘルプはDC_BINSを照会する

+0

http://referencesource.microsoft.com/#System.Drawing/Printing/PrinterSettings.cs,4ad9eb15ffdeec05 –

答えて

2

使用DeviceCapabilitiesをいただければ幸いです。それはあなたにWORDの配列を与えます。各単語は紙のソースに対応しています。 (値を解釈するためにDEVMODEの説明でdmDefaultSourceの説明を見てください。)

また、サポートされている用紙サイズについて学ぶことDC_PAPERSまたはDC_PAPERSIZESを照会するのDeviceCapabilitiesを使用することができます。

+0

DC_PAPERSを照会しようとしましたが、値を取得する方法がわかりません。ここに、私が実行しようとしたコードがあります: 'DWORD deviceCapabilitiesSize = DeviceCapabilitiesW(info-> pPrinterName、info-> pPortName、DC_PAPERS、NULL、currentSettings); LPWSTR bins =(LPWSTR)malloc(deviceCapabilitiesSize + 1); DeviceCapabilitiesW(info-> pPrinterName、info-> pPortName、DC_PAPERS、bins、currentSettings); std :: wcout << L "利用可能なビン:" << std :: endl; std :: wcout << bins << std :: endl; 'infoは' PRINTER_INFO_2W'構造体です –

+0

あなたが助けてくれてありがとう –

関連する問題