MFC實現列印功能

2021-08-11 03:20:22 字數 1315 閱讀 7646

使用cprintdialog類的建構函式:
cprintdialog(bool bprintsetuponly,

// true

for print setup, false

for print dialog

dword dwflags = pd_allpages | pd_usedevmodecopies | pd_nopagenums| pd_hideprinttofile | pd_noselection,

cwnd* pparentwnd = null);

去實現開啟設定列印資訊視窗。

第乙個引數:true列印設定 false列印對話方塊

第二個引數:全頁列印|使用裝置模式複製|無頁數|隱藏列印檔案|無選擇

第三個引數:父視窗

一般:cprintdialog dlg(false,pd_allpages,null);即可

我們需要的東西要從mfc程式中獲取到列印資訊,然後列印到一張紙上,那張紙的資訊需要建立乙個印表機的裝置環境去製造。

建立印表機裝置環境過程:

hdc hdcprinter=dlg.getprinterdc();//判斷若為空,表示沒有印表機裝置

cdc dc;

dc.attach(hdcprinter);//把列印裝置環境附加到dc物件

1.關鍵點

lpdevmode資料結構中包含了有關裝置初始化和印表機環境的資訊。

lpdevmode pdevmode;//定義印表機資料結構

pdevmode=dlg.getdevmode();//獲取預設印表機的資料結構

pdevmode->dmorientation=dmorient_landscape;//設定為橫向列印

pdevmode->dm*****size=dm*****_b5;//設定紙張大小為b5

dc.resetdc(pdevmode);//重新設定dc內容

接下來還需要去設定列印出來的檔案資訊

docinfo di;//列印檔案結構體

memset(&di,0,sizeof(di));//初始化操作

di.cbsize=sizeof(di);//設定列印檔案大小

di.lpszdocname=_t("cdc::startdoc() code fragment");//設定列印檔案名字

if(dc.startdoc(&di)<0)//通知印表機驅動程式執行一新的列印任務

else

VC實現列印功能

http yesky.com 13 1700013.shtml列印api http bloghome.cn topics vc 4 22.htm列印api 設定紙張大小 if printdlg pd return false assert pd.hdc null 設定紙張大小daiguopeng,d...

C 實現列印功能

實際開發過程中經常會遇到列印某種報表的情況,用c 實現列印報表的功能。第一,如果報表的大小合適,或者紙張的大小足夠放得下報表,則可以選擇直接截圖,列印截圖所得的 第二,如果報表和紙張的大小不匹配,則可能需要在程式中根據一定格式拼出合適大小的報表。private void button3 click ...

C 列印匯出功能實現

由於做的專案用到列印和匯出功能,我根據在圖書館裡看到的,結合實踐,自己編寫 實現了這方面的功能,其中有不足之處,不吝賜教.class printex r 0 c 20 for int i 0 i dgv.rowcount 1 i else return true 列印label中資料 public ...