[問題] C++ 如何更變印表機預設紙張大小

作者: gary22675129 (岡)   2015-12-21 21:40:48
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
我試著在createDC裡面丟DEVMODE來設定大小
但印出來的紙張長度還是跟預設的一樣
這個試了好幾天了還是沒用
跪求大神幫忙解難題
程式碼(Code):(請善用置底文網頁, 記得排版)
#include<windows.h>
#include<Wingdi.h>
#include<Winspool.h>
#include<iostream>
using namespace std;
前頭有引入https://support.microsoft.com/en-us/kb/167345的子集合
int main(){
SetDefaultPrinter("NEC Pinwriter P2200");
HANDLE gPrinter;
OpenPrinter("NEC Pinwriter P2200",&gPrinter,NULL);
DOCINFO kk={0};
kk.cbSize=sizeof(DOCINFO);
kk.lpszDocName="報表";
kk.lpszOutput="";
kk.fwType=0;
HDC gHDC=0;
gHDC = CreateDC(
NULL,
"NEC Pinwriter P2200",
NULL,
GetLandscapeDevMode((HWND)gPrinter,"NEC Pinwriter P2200")
);
StartDoc(gHDC,&kk);
StartPage(gHDC);
HFONT hFont;
hFont=CreateFont(30,0,0,0,FW_BOLD,0,0,0,0,0,0,2,0,"SYSTEM_FIXED_FONT");
SelectObject(gHDC,hFont);
TextOut(gHDC,300,63,"中文",4);
EndPage(gHDC);
EndDoc(gHDC);
system("PAUSE");
return 0;
}
作者: testPtt (測試)   2015-12-21 23:27:00
掛.net比較容易
作者: stupid0319 (徵女友)   2015-12-22 00:02:00
GetLandscapeDevMode後,你沒有去改DEVMODE 內容吧
作者: gary22675129 (岡)   2015-12-22 10:25:00
Stupid大 我把step2的部分刪掉雙面列印 改成紙張長度&寬度唷Testptt大 請教.net是什麼 小弟初學VC++ 都靠MSDN

Links booklink

Contact Us: admin [ a t ] ucptt.com