手里没有关于Printers的书
哪位能说一下Printers里面的纸张怎么设定,和纸张的横竖
如果那位有Printers的说明,请给个网址,先谢谢了

解决方案 »

  1.   

    查过Printers、纸张、打印,没找到相关的信息
    哪位兄弟帮一下
      

  2.   

    /////////////纸张大小控制/1/////////////////////////////////
         iIndex :=   Printer.PrinterIndex;
         Printer.GetPrinter(Device,Driver,Port,hDMode);  // 获取打印机DevMode 结构的句柄值,//存放在hDMode 中
         if hDMode <> 0 then
         begin
           pDMode := GlobalLock(hDMode); // 获取指向打印机DevMode 结构的// 指针
           if pDMode <> nil then
           begin
             //设置成DMPAPER_USER 和256可能是一样的。不知道。
             pDMode^.dmPaperSize   := 256;// DMPAPER_USER;  //如果要将当前打印机纸张变为自定义 //dmPaperSize 必须设置成256         {///////////////////////////////////////////////////
              电脑里这是按 0.1MM为单位算的嘛?
              这样看起来也不是很精确,可是这样好像解决了问题。
              按最后的结果算了一下,问题不是很大。误差可能出在计算机内部的进制度转换上。
             ///////////////////////////////////////////////////}         pDMode^.dmPaperLength := StrTOInt(iPaperLength)*10;
             pDMode^.dmPaperWidth  := StrTOInt(iPaperWidth)*10;
             pDMode^.dmFields      := pDMode^.dmFields or  DM_PAPERSIZE;
             pDMode^.dmFields      := pDMode^.dmFields or  DM_PAPERLENGTH;
             pDMode^.dmFields      := pDMode^.dmFields or  DM_PAPERWIDTH;
             // 以上三条语句是对相应 的dmFields 成员进行置位。
             ResetDC(Printer.Handle,pDMode^);  // 设置打印机设备环境句柄的值
             GlobalUnlock(hDMode);
             Printer.PrinterIndex := iIndex;
           end;  //if
         end; //if 
       /////////////////////////////////////////////////////////////////////////
    没分,我杀了楼主。呵