zoukankan      html  css  js  c++  java
  • 打印的一段代码测试研究

     if(name.Compare("sFormat")==0)
       {
        sFormat = value;
        prt.SetManualSize(atoi(ssDirection[atoi(sFormat)-1]), atoi(ssPaperwidth[atoi(sFormat)-1]), atoi(ssPaperheight[atoi(sFormat)-1]));
        writelog("调用的是SetManualSize", "c:\\1.log");
                    writelog( (char*)(LPCTSTR)(ssPaperwidth[atoi(sFormat)-1]),"c:\\1.log");
        writelog((char*)(LPCTSTR)(ssPaperheight[atoi(sFormat)-1]),"c:\\1.log");
        prt.StartPage();
       } else if (name.Compare("sCaptions")==0)
       {
        int iTotal = splitCount(value, "|");
        CString* captions = split(value, "|");
        CString* lefts = split(ssLefts[atoi(sFormat)-1], "|");
        CString* tops = split(ssTops[atoi(sFormat)-1], "|");
        CString* fonts = split(ssFonts[atoi(sFormat)-1], "|");
        for (int i = 0; i < iTotal; i++)
        {
         prt.Print(hFont[atoi(fonts[i])-1], captions[i], FORMAT_NORMAL, atoi(lefts[i]), atoi(tops[i]));
             writelog("直接调用Print", "c:\\1.log");
         writelog((char*)(LPCTSTR)lefts[i], "c:\\1.log");
         writelog((char*)(LPCTSTR)tops[i], "c:\\1.log");
        }
        prt.EndPage();
       }

    void CQPrint::SetManualSize(int direction, int X, int Y)
    {
     PRINTDLG* pPrintDlg = new PRINTDLG;
     AfxGetApp()->GetPrinterDeviceDefaults(pPrintDlg);
     DEVMODE* lpDevMode = (DEVMODE*)::GlobalLock(pPrintDlg->hDevMode);
     lpDevMode->dmOrientation = DMORIENT_PORTRAIT;
     lpDevMode->dmPaperSize = DMPAPER_STATEMENT;
     lpDevMode->dmPaperWidth = X;
     lpDevMode->dmPaperLength = Y;

     m_DC.ResetDC(lpDevMode); 
     ::GlobalUnlock(pPrintDlg->hDevMode); 
     delete pPrintDlg;
    }

    在针式打印机上面,打印小的凭证没有问题,打印大的凭证的时候,出现了部分打印不全的问题。

    可能是纸张大小造成的,这是要原因对应的纸张大小。

    dmOrientation 选择纸的方向。这个成员可以为DMORIENT_PORTRAIT(1)或DMORIENT_ LANDSCAPE(2)。
    dmPaperSize 选择将用于打印的纸张大小。如果纸张的长度和宽度都用dmPaperLength和dmPaperWidth成员来设置的话,这个成员可以被设为0。否 则,dwPaperSize成员可以被设为以下值之一: DMPAPER_LETTER letter, 8 1/2×1 英寸
    MPAPER_LEGAL Legal, 8 1/2×14 英寸
    DMPAPER_A4 A4 letter, 210×297 毫米
    DMPAPER_CSHEET C letter, 17×22 英寸
    DMPAPER_DSHEET D letter, 22×34 英寸
    DMPAPER_ESHEET E letter, 34×44 英寸
    DMPAPER_LETTERSMALL letter small, 8 1/2×11 英寸
    DMPAPER_TABLOID Tabloid, 11×17 英寸
    DMPAPER_LEDGER Ledger, 17×11 英寸
    DMPAPER_STATEMENT Statement, 5 1/2×8 1/2 英寸
    DMPAPER_EXECUTIVE Executive, 7 1/4×10 1/2 英寸
    DMPAPER_A3 A3 Sheet, 297×420 毫米
    DMPAPER_A4SMALL A4 Small Sheet, 210×297 毫米
    DMPAPER_A5 A5 Sheet, 148×210 毫米
    DMPAPER_B4 B4 Sheet, 250×354 毫米
    DMPAPER_B5 B5 Sheet, 182×257 毫米
    DMPAPER_FOLIO Folio, 8 1/2×13 英寸
    DMPAPER_QUARTO Quarto, 215×275 毫米
    DMPAPER_10X14 10×14 英寸
    DMPAPER_11X17 11×17 英寸
    DMPAPER_NOTE Note, 8 1/2×11 英寸
    DMPAPER_ENV_9 #9 EnVelope, 3 7/8×8 7/8 英寸
    DMPAPER_ENV_10 #10 EnVelope, 4 1/8×9 1/2 英寸
    DMPAPER_ENV_11 #11 EnVelope, 4 1/2×10 3/8 英寸
    DMPAPER_ENV_12 #12 EnVelope, 4 3/4×11 英寸
    DMPAPER_ENV_14 #14 EnVelope, 5×11 1/2 英寸
    DMPAPER_ENV_DL DL EnVelope, 110×220 毫米
    DMPAPER_ENV_C5 C5 EnVelope, 162×229 毫米
    DMPAPER_ENV_C3 C3 EnVelope, 324×458 毫米
    DMPAPER_ENV_C4 C4 EnVelope, 229×324 毫米
    DMPAPER_ENV_C6 C6 EnVelope, 114×162 毫米
    DMPAPER_ENV_C65 C65 EnVelope, 114×229 毫米
    DMPAPER_ENV_B4 B4 EnVelope, 250×353 毫米
    DMPAPER_ENV_B5 B5 EnVelope, 176×250 毫米
    DMPAPER_ENV_B6 B6 EnVelope, 176×125 毫米
    DMPAPER_ENV_ITALY Italy EnVelope, 110×230 毫米
    DMPAPER_ENV_MONARCH Monarch EnVelope, 3 7/8×7 1/2 英寸
    DMPAPER_ENV_PERSONAL 6 3/4 EnVelope, 3 5/8×6 1/2 英寸
    DMPAPER_FANFOLD_US US Std Fanfold, 14 7/8×11 英寸
    DMPAPER_FANFOLD_STD_GERMAN German Std Fanfold, 8 1/2×12 英寸
    DMPAPER_FANFOLD_LGL_GERMAN German Legal Fanfold, 8 1/2×13 英寸
    dmPaperLength 重定义由dmPaperSize成员指定的纸张长度,可用于自定义纸张大小,也可以用于点阵打印机,这种打印机能打出任意长度的纸张。这些值与这个结构中其他指定物理长度的值都是以0.1毫米为单位的。
    dmPaperWidth 重载由dmPaperSize成员指定的纸张宽度。
    原文如下:
  • 相关阅读:
    tensorflow使用object detection API训练自己的数据(个人总结)使用Linux服务器训练
    tensorflow使用object detection API训练自己的数据(个人总结)
    tensorflow object detection API 训练自己的目标检测模型中关于xml文件转record文件报错问题
    数据结构与算法题目集(中文)6-7 在一个数组中实现两个堆栈 (20分)
    数据结构与算法题目集(中文)6-6 带头结点的链式表操作集 (20分)
    学生指导——学习心理
    使用docker-compose搭建easy-mock
    mock的使用,easy-mock使用方法详解
    JMeter中 使用JDBC请求,有返回字段,无返回内容,实际该sql语句在数据库中查询,结果中有内容;
    Jmeter 之 Beanshell
  • 原文地址:https://www.cnblogs.com/batman425/p/3038165.html
Copyright © 2011-2022 走看看