我在使用C ++打印时遇到问题。据我所知,这段代码曾经在我以前的打印机上运行,但自从我再买一台(HP C7280)后,它开始出现问题。每当我尝试打印任何东西,甚至是空页时,页面都会打印机。我必须手动从打印机中删除页面。我不知道为什么会这样。我做错了什么,是驱动程序问题,有更好的方法在C ++中打印吗?我使用的是Windows 7 64位,但是当我使用Windows Vista 64位时,这个问题也出现了。我使用以下代码:
PRINTDLG pd;
ZeroMemory(&pd, sizeof(pd));
pd.lStructSize = sizeof(pd);
pd.hwndOwner = mainWindow;
pd.hDevMode = NULL;
pd.hDevNames = NULL;
pd.Flags = PD_USEDEVMODECOPIESANDCOLLATE | PD_RETURNDC;
pd.nCopies = 1;
pd.nMinPage = 1;
pd.nMaxPage = 0xFFFF;
if (PrintDlg(&pd)==TRUE)
{
DOCINFO di;
di.cbSize = sizeof(DOCINFO);
di.lpszDocName = "Rumitec en Roblaco Print";
di.lpszOutput = (LPTSTR)NULL;
di.fwType = 0;
// Start printing
StartDoc(pd.hDC, &di);
StartPage(pd.hDC);
initPrinter(pd.hDC);
// ...
// Do some drawing
// ...
// End printing
EndPage(pd.hDC);
EndDoc(pd.hDC);
DeleteDC(pd.hDC);
}
我做错了吗?或者,是否有更好,更简单,更现代的方式来做到这一点?
编辑:我可以在没有卡纸的情况下从任何其他应用程序打印。记事本,Word等,每个其他应用程序都可以打印得很好。答案 0 :(得分:0)
我认为您可能会因软件而导致打印机卡纸。只需打印边缘 - 这不是很多应用程序所做的 - 您可以轻松地发现打印机硬件/驱动程序问题,在边缘附近打印会导致打印头卡在纸张中。