欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Delphi中怎么調(diào)用驅(qū)動(dòng)打印

Delphi中怎么調(diào)用驅(qū)動(dòng)打印,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

創(chuàng)新互聯(lián)公司專(zhuān)業(yè)為企業(yè)提供港南網(wǎng)站建設(shè)、港南做網(wǎng)站、港南網(wǎng)站設(shè)計(jì)、港南網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、港南企業(yè)網(wǎng)站模板建站服務(wù),10多年港南做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

TPrinter類(lèi)介紹

TPrinter類(lèi)中封裝了Windows打印機(jī)的接口。  
類(lèi)關(guān)系   TObject  
使用TPrinter對(duì)象可以執(zhí)行應(yīng)用程序中的任何打印操作。可以在Printers單元中通過(guò)調(diào)用Printer函數(shù)來(lái)獲得一個(gè)TPrinter   對(duì)象。為了決定如何顯示窗體的打印圖像,可以使用Tform組件的PrintScale屬性。   
在一個(gè)文本變量或一個(gè)打印機(jī)畫(huà)布準(zhǔn)備好后就可以進(jìn)行打印工作了。打印工作一直進(jìn)行到調(diào)用EndDoe過(guò)程。顯示在PrintManager(或網(wǎng)絡(luò)頭頁(yè))上的題目由Title   屬性決定。如果想開(kāi)始打印工作可以調(diào)用BeginDoc方法。結(jié)束一個(gè)成功打印的工作需要調(diào)用EndDoc過(guò)程。如果出現(xiàn)問(wèn)題需要中斷打印可以調(diào)用Abort方法。   

屬性列表  
Aborted   中斷打印  

指示當(dāng)前是否用戶(hù)中斷了打印,從而調(diào)用方法   
__property   bool   Aborted   ={read   =   FAborted,nodefalt}   ;   
如果屬性Aborted為真,則表示打印工作已經(jīng)中斷。如果為假值,則表示用戶(hù)并沒(méi)有中斷打印進(jìn)程。  


Canvas   當(dāng)前打印頁(yè)的表面 

表示當(dāng)前打印頁(yè)的表面。   
__property   Graphics   :   :   TCanvas   *   Canvas   =   {   read   =   GetCanvas   }   ;   
屬性Canvas表示一頁(yè)的打印表面。使用Canvas對(duì)象的Brush,F(xiàn)ont   和Pen   屬性可以決定如何繪制和顯示頁(yè)。一些打印機(jī)不支持圖像,因此,對(duì)這些打印機(jī)調(diào)用Draw,StretchDraw或CopyRect方法將會(huì)失敗。


Capabilities   指示一個(gè)打印設(shè)備驅(qū)動(dòng)器的當(dāng)前設(shè)置  

指示一個(gè)打印設(shè)備驅(qū)動(dòng)器的當(dāng)前設(shè)置。   
__property   TPrinterCajpabilities   Caoabukutues   ={read   =   FCapabities   ,   nodefault}   ;   
屬性Capabilities   包含了打印機(jī)有兼容性,它指定了打印的方向,頁(yè)數(shù)和是否校對(duì)。 


Copies   指定打印的份數(shù)

 指定打印的份數(shù)。   
__property   int   Copies   =   {read   =   GetNumCopies,   write   =SetNumCopies,   nodefault   }   ;   
屬性Copies中指定打印的份數(shù)。  


Fonts   列出當(dāng)前打印機(jī)支持的字體 

列出當(dāng)前打印機(jī)支持的字體。   
__property   Classes   ;;TStrings   *   Fonts   =   {   read   =GetFonts   }   ;   
使用Fonts屬性可以獲得當(dāng)前打印機(jī)支持的字體列表。列表中總是包含有TrueType字體,即使打印機(jī)中不包含這種字體,因?yàn)閃indows   Graphies   Device   Interface(GDI)在打印機(jī)使用時(shí)可以準(zhǔn)確地繪制這種字體。  


Handle   提供訪問(wèn)打印機(jī)對(duì)象句柄的能力  

提供訪問(wèn)打印機(jī)對(duì)象句柄的能力。   
__property   HdC   Handle   =   {   read   =GetHandle   ,   node   fault   };   
使用Handle   屬性可以獲得對(duì)打印機(jī)對(duì)象句柄有訪問(wèn)。 


Orientation   決定打印工作在頁(yè)上的方向  

決定打印工作在頁(yè)上的方向,垂直或水平。   
__property   TpinterOrientation   Orientation   =   {   read   =   GetPrientatiion,   write   =   SetOrienatiion   ,nodefault   }   
使用Orientation   屬性可以決定打印機(jī)打印的方向。Onienation屬性值只能是TPrinterOrientation   類(lèi)型。下表中列出了屬性可能值:   
TPrinter::PageHeight   
指示當(dāng)前打印頁(yè)的像素高度。   
__property   int   PageHeight   =   {read   =   GetPageHeight   ,nodefault   }   ;   
在屬性PageHeight中可以找到當(dāng)前打印頁(yè)的像素高度。


PageHeight   指示當(dāng)前打印頁(yè)的像素高度  

指示當(dāng)前打印頁(yè)的像素高度。   


pateNurnber   指示當(dāng)前打印頁(yè) 

指示當(dāng)前打印頁(yè)。   
__property   int   PageNumber   =   {   read   =   FPageNumber   ,   nodefault   }   ;   
在屬性PageNumber中可以獲得當(dāng)前打印的頁(yè)碼。在調(diào)用NewPage方法后屬性PageNumber將加1。當(dāng)頁(yè)結(jié)束處輸入回車(chē)并寫(xiě)入文本變量時(shí),屬性PageNumber也將加1   。  


PageWidth   指示當(dāng)前打印頁(yè)的像素寬度 

指示當(dāng)前打印頁(yè)的像素寬度。   
__property   int   PageWidth   =   {read   =   GetPageWidth   ,   modefault   }   ;   在屬性PsheWifyh中可以找到當(dāng)前打印頁(yè)的像素寬度。


Printerlndex   在Printers屬性中列出的是當(dāng)前打印機(jī)  

指定在Printers屬性中列出的打印機(jī)是當(dāng)前打印機(jī)。   
__property   int   Printerlndex   =   {   read   =GetPrinterlndex   ,   write   =   SetPrinterlndex   ,nodefault   }   ;   
屬性Printerlndex指定當(dāng)前打印機(jī)。如果改變了本屬性值將自動(dòng)調(diào)用EndDoc方法。如果想選擇缺省的打印機(jī),可以將屬性Printerlndex   設(shè)置為   —   1   。在   Printers   屬性中列出了安裝的打印機(jī)。當(dāng)前打印機(jī)支持的字體列表在Fonts屬性中。  


Printers   列出所有在Windows中安裝的打印機(jī) 

列出所有在Windows中安裝的打印機(jī)。   
__property   Classes   :   :   TStrings   *   Printers   =   {read   =GePrinters   }   ;   在Printers屬性中列出了所有在Windows   中安裝的打印機(jī)。屬性Printerlndex   指定了當(dāng)前選擇的打印機(jī)。當(dāng)前打印機(jī)支持的字體列表在Fonts屬性中。  


Printing  指示打印工作正在進(jìn)行  

指示打印工作正在進(jìn)行。   
__property   bool   Printing   =   {read   =   FPrinting   ,   nodefault   }   ;   
使用Printing屬性可以決定是否正在進(jìn)行一項(xiàng)打印工作。如果應(yīng)用程序中調(diào)用了BeginDoc方法并在調(diào)用EndDoc方法(或Abort方法)之前將把Printing屬性設(shè)置為真值。  


Title   顯示在Ptint   Manager中主網(wǎng)絡(luò)頭頁(yè)中的文本  

決定顯示在Print   Manager中和網(wǎng)絡(luò)頭頁(yè)中的文本。   
__property   Systen   :   :   AndiString   Title   =   {   read   =   FTitle   ,   wrete   =   FTitle   }   ;   
屬性Title在Print   Manager由Windows使用,也作為網(wǎng)絡(luò)的頭頁(yè)。


方法列表  
~TPrinter   刪除一個(gè)打印機(jī)實(shí)例  
__fastcall   virtual   ~TPrinter   (   void   )   ;   
一般不直接調(diào)用~TPrinter方法。打印機(jī)對(duì)象將自動(dòng)創(chuàng)建和刪除。當(dāng)調(diào)用~TPrinter方法時(shí),它將檢查是否打印工作都已經(jīng)結(jié)束。如果都結(jié)束了就釋放資源。例如句柄、字體和畫(huà)布等,最后關(guān)閉打印機(jī)并調(diào)用繼承的析構(gòu)函數(shù)。


Abort   中斷打印

void   __fastcall   Abort(void);   
中斷打印,放棄未打印數(shù)據(jù)。   
使用Abort方法可以在打印工作完成前中斷打印,否則將使用EndDoc方法。調(diào)用Abort方法后設(shè)備將設(shè)置為下一個(gè)打印工作。


BeginDoc   送一個(gè)打印工作到打印機(jī)中   

_void   __fastcall   BeginDoc(void);   
送一個(gè)打印工作到打印機(jī)中。   
調(diào)用BeginDoc可以初始化一個(gè)打印工作。如果打印工作被成功送入,應(yīng)用程序?qū)⒄{(diào)用EndDoc方法結(jié)束打印。打印工作只有在調(diào)用EndDoc方法后才實(shí)際開(kāi)始。


EndDoc   結(jié)束當(dāng)前打印工作并關(guān)閉文本文件變量  

void   __fastcall   EndDoc(void);   
結(jié)束當(dāng)前打印工作并關(guān)閉文件變量。   
調(diào)用EndDoc方法將結(jié)束打印工作(并關(guān)閉當(dāng)前打開(kāi)的文體)。打印工作將在EndDoc方法調(diào)用結(jié)束后開(kāi)始。在應(yīng)用程序中調(diào)用EndDoc方法后,打印機(jī)開(kāi)始打印。將一個(gè)打印工作成功送入打印機(jī)后調(diào)用EndDoc方法。如果打印工作沒(méi)成功,則調(diào)用Abort方法。


GrtPrinter   取回當(dāng)前打印機(jī)  

void   __fastcall   GetPrinter(char*   ADevice,char*   ADriver,char*   APort,int&   ADeviceMode);   
取回當(dāng)前打印機(jī)。   
不需要直接調(diào)用GetPrinter方法。可以通過(guò)訪問(wèn)Printers屬性數(shù)組中的打印機(jī)來(lái)獲得。如果想了解更多的信息,可以參見(jiàn)Win32Developer 's   Reference(WIN32::HLP)中的CreateDC函數(shù)。


NewPage   開(kāi)始一個(gè)新頁(yè)  

void   __fastcall   NewPage(void);   
開(kāi)始一個(gè)新頁(yè),并將PageNumber屬性值加1。   
使用NewPage方法將強(qiáng)制在打印機(jī)的新頁(yè)上繼續(xù)打印工作。   
NewPage方法將把PageNumber屬性值加1。同時(shí)將把Canvas對(duì)象的Pen屬性設(shè)置成(0,0)。


SetPrinter   指定一個(gè)打印機(jī)作為當(dāng)前打印機(jī) 

void   __fastcall   SetPrinter(char*   ADevice,char*   ADriver,char*   APort,int   ADeviceMode);   
指定一個(gè)打印機(jī)作為當(dāng)前打印機(jī)。   
不直接調(diào)用SetPrinter方法。可以通過(guò)訪問(wèn)Printers屬性數(shù)組中的打印機(jī)來(lái)設(shè)置。如果想了解更多的信息,可以參見(jiàn)Win32Developer 's   Reference(WIN32.HLP)中的CreateDC函數(shù)。


TPrinter   創(chuàng)建一個(gè)打印機(jī)
__fastcall   TPrinter(void);   
創(chuàng)建一個(gè)打印機(jī)。   
不能直接調(diào)用TPrinter方法。TPrinter方法將由Printer函數(shù)自動(dòng)調(diào)用。方法為打印機(jī)分配內(nèi)存,并調(diào)用繼承的構(gòu)造方法。然后設(shè)置正確的驅(qū)動(dòng)器、設(shè)備和端口.
TPrinter:


代碼演示

//你必須先得到打印機(jī)的實(shí)際尺寸: 
var 
    pointx,pointy:integer; 
    pointx:=getdevicecaps(printer.handle,logpixelsx); 
    pointy:=getdevicecaps(printer.handle,logpixelsy); 
    printer.canvas.TextOut(X*pointx,Y*pointy,Text);

//注意Printer要添加Printers引用 

if printdialog1.Execute then 

begin 

   Printer.BeginDoc; 

   Printer.Title := 'memo內(nèi)容'; 

   Printer.Canvas.TextOut(100,100,'打印內(nèi)容'); 

   Printer.EndDoc; 

end;

//打印字符串函數(shù)

Procedure PosPrintStr(SizeType,ColorType:integer; str:string);

var ls:TStrings;

begin

  //打印測(cè)試參數(shù) 小票輸出到文件 XSysPrint.Log

  if PosCfg.blPrnText then 

  begin

    WritePrintTxt(str);

    {ls := TStringList.Create;

    ls.Clear;

    try

      ls.Add(str);

      TEXT_PrintString(PosCfg.sPrinterPort,0,0,ls);

    finally

      ls.Free;

    end;

    DelayMSec(PosCfg.nPrnDelay);}

    exit;

  end;

  if PosCfg.sPrinterType='TM300K' then

  begin

       TM300K_PrintStr(sPrinterPortID,SizeType,ColorType,str);

       DelayMSec(PosCfg.nPrnDelay); //打印延時(shí)

  end

  else if PosCfg.sPrinterType='TM200D' then

  begin

       TM200D_PrintStr(sPrinterPortID,SizeType,ColorType,str);

       DelayMSec(PosCfg.nPrnDelay); //打印延時(shí)

  end

  else if PosCfg.sPrinterType='TEC200D' then

  begin

       LPTDOT_PrintStr(sPrinterPortID,1,str);   //并口打印

       DelayMSec(PosCfg.nPrnDelay); //打印延時(shí)

  end

  else if PosCfg.sPrinterType='TM210D' then

  begin

       TM210D_PrintString(sPrinterPortID,SizeType,ColorType,str);//通用并口打印

       DelayMSec(PosCfg.nPrnDelay); //打印延時(shí)

  end

  else if PosCfg.sPrinterType='TEXTFILE' then   //通用文本打印

  begin

       TEXT_PrintString(PosCfg.sPrinterPort,SizeType,ColorType,str);

       DelayMSec(PosCfg.nPrnDelay); //打印延時(shí)

  end

  else if PosCfg.sPrinterType='OTHER' then

  begin

       Other_PrintString(sPrinterPortID,SizeType,ColorType,str);

       DelayMSec(PosCfg.nPrnDelay); //打印延時(shí)

  end

  else  begin

       TM200D_PrintStr(sPrinterPortID,SizeType,ColorType,str);

       DelayMSec(PosCfg.nPrnDelay); //打印延時(shí)

  end;

end;

//模擬打印測(cè)試文本

procedure WritePrintTxt(sMessage: String);

const PRINT_FILE='XSysPrint.Log'; 

var 

    fname, fname0: String;

 fp: TextFile;

begin

  // 創(chuàng)建日志文件

  fname:=DirConcat(UGetAppPath,PRINT_FILE);

  if not FileExists(fname) then

  begin

     AssignFile(fp,fname);

      Rewrite(fp);

      Writeln(fp,'模擬打印');

      Flush(fp);

      CloseFile(fp);

  end;

  // 記錄日志信息

  AssignFile(fp,fname);

  try

    Append(fp);

    Writeln(fp,sMessage);

    Flush(fp);

  finally

    CloseFile(fp);

  end;

end;

看完上述內(nèi)容,你們掌握Delphi中怎么調(diào)用驅(qū)動(dòng)打印的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

分享名稱(chēng):Delphi中怎么調(diào)用驅(qū)動(dòng)打印
標(biāo)題路徑:http://chinadenli.net/article4/gshioe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)營(yíng)銷(xiāo)型網(wǎng)站建設(shè)ChatGPT網(wǎng)站收錄品牌網(wǎng)站制作搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管