大家有做过银行密码打印程序吗?就是去银行开户时银行给你打印密码时的那种,他们用的是针打,我公司没有,密码是一个一个用户打印的,刚打印第一个用户时,密码打印位置正确,打印第二个用户时,开始打印的位置距第一用用户位置太远,怎幺解决,请高手回答。

解决方案 »

  1.   

    可以用API直接控制打印,给你一个例子:
    uses CommDlg; {$IFNDEF WIN32} 
    const MAX_PATH = 144; 
    {$ENDIF} procedure TForm1.Button1Click(Sender: TObject); 
    var 
    Pd : TPrintDlg; 
    DocInfo: TDocInfo; 
    begin 
    FillChar(Pd, sizeof(Pd), #0); 
    Pd.lStructSize := sizeof(Pd); 
    Pd.hWndOwner := Form1.Handle; 
    Pd.Flags := PD_RETURNDC; 
    if PrintDlg(pd) then begin 
    FillChar(DocInfo, sizeof(DocInfo), #0); 
    DocInfo.cbSize := SizeOf(DocInfo); 
    GetMem(DocInfo.lpszDocName, 32); 
    GetMem(DocInfo.lpszOutput, MAX_PATH); 
    lStrCpy(DocInfo.lpszDocName, 'My Document'); 
    {Add this line to print to a file } 
    lStrCpy(DocInfo.lpszOutput, 'C:\Download\Test.doc'); 
    StartDoc(Pd.hDc, DocInfo); 
    StartPage(Pd.hDc); 
    TextOut(Pd.hDc, 100, 100, 'Page 1', 6); 
    EndPage(Pd.hDc); 
    StartPage(Pd.hDc); 
    TextOut(Pd.hDc, 100, 100, 'Page 2', 6); 
    EndPage(Pd.hDc); 
    EndDoc(Pd.hDc); 
    FreeMem(DocInfo.lpszDocName, 32); 
    FreeMem(DocInfo.lpszOutput, MAX_PATH); 
    end; 
    end;
      

  2.   

    打印机的型号我也不知,我用的是QuickRep控件,他们的打印纸是连续的,本来两个用户的密码距离是14cm,但现在打印出的是30cm
      

  3.   

    自定义打印机纸张设置,和你在QuickRep中设置的一样,并且作为默认。