奇怪而简单的打印问题,快疯了。
本人在做一个支票的套打程序,支票的尺寸是长2300mm,宽是800mm我用下面这段代码在一个串口打印机上可以做到自定义纸张的大小,可是换个USB的打印机器就不行了。而且我在网络找了下,自定义纸张的大小差不多都只这段代码啊。为什么啊?
LPDEVMODE lpDevMode;
PRINTDLG pd;
pd = pInfo ->m_pPD ->m_pd;
if (AfxGetApp() ->GetPrinterDeviceDefaults(&pd))
{
lpDevMode = (LPDEVMODE)GlobalLock(pd.hDevMode);
if(lpDevMode)
{
lpDevMode->dmFields = DM_PAPERSIZE; //允许重新设置纸张大小
lpDevMode ->dmPaperSize = DMPAPER_USER;
// lpDevMode ->dmOrientation = DMORIENT_LANDSCAPE; //横向打印
lpDevMode ->dmPaperWidth = 2300;
lpDevMode ->dmPaperLength = 800;
}
GlobalUnlock(pd.hDevMode);
}
[解决办法]
图片大小是不能使用固定大小的 要先取得打印机的点阵,然后按照一定的比例把点阵转换位具体的尺寸,然后就可以生成你想要的大小了,换了打印机也不会改变的!