利用CPrintDialog列印檔案 (2)

2022-09-01 15:39:14 字數 1517 閱讀 6810

列印基本流程

有了前面的知識,現在我們就可以列印了。windows列印是有著固定的流程的,流程也比較簡單。按照固定的順序呼叫列印api即可:startdoc() -> startpage() -> 列印具體內容 -> endpage() -> enddoc()。如果要列印多頁,迴圈startpage()至endpage()即可。

示例**:

docinfo   doc;

zeromemory(

doc.cbsize = sizeof(doc);

doc.lpszdocname = (lpctstr)"print test file";

startdoc(printdc,   //準備列印

startpage(printdc);  //開始列印頁

//在(2.5cm, 2.5cm)處列印文字

char* text = "列印測試文字";

float xscale = getxscale(printdc);

float yscale = getyscale(printdc);

double x = cm2unit_w(xscale, 2.5);

double y = cm2unit_h(yscale, 2.5);

//在指定位置列印文字

textout(printdc, (int)x, (int)y, (lptstr)text, strlen(text));

endpage(printdc);  //結束列印頁

enddoc(printdc);  //結束列印

列印字型的設定

很多時候我們希望能控制列印字型,下面的**可以建立你想要的字型格式:

/*  建立自定義列印字型

fontface:字型名稱,如果為null,預設採用"宋體"

fontheight:字型高度,單位為厘公尺

isbold:是否加粗

isitalic:是否斜體

isunderline:是否下劃線

isstrikeout:是否刪除線

*/hfont getfont(lpctstr fontface, double fontheight, bool isbold, bool isitalic, bool isunderline, bool isstrikeout)

if(isbold)

if(isitalic)

if(isunderline)

if(isstrikeout)

hfont font = createfont((int)height, width, 0, 0,

weight, italic, underline, strikeout, charset,

out_default_precis, clip_default_precis, proof_quality,

default_pitch | ff_dontcare, face );

return font;}小結

以上就是我們在實現列印中遇到的常見問題,相信理解了這些,在我們自己的程式中實現列印就不再是什麼困難的事情了。

利用IE自帶的WebBrowser進行列印

一般情況下,如果不是特別的列印,需要借助列印控制項,如loopod webbrowse是乙個簡單的瀏覽器程式,支援列印,後退,前進,重新整理,另存為,儲存等功能,可以到網上搜一下方法,在這裡,我們來說下,怎麼使用它列印 首先,就像例項化物件一樣,建立它,在標籤中加入 object id webbro...

故障定位 利用gdb給Linux動態庫打熱補丁

一 前言 對linux下elf檔案格式的分析是linux攻防的基礎。掌握elf檔案的格式分析,不僅僅是學習別人如何攻擊軟體的目的,更多的我們應該利用知識幫助解決實際問題。例如linux有些故障很難復現,如果出了問題,重新換軟體版本,很可能就復現不了了。於是在出現故障時,不重啟應用 程序 的前提下,給...

spring boot打jar包和打war包的區別

原文 spring boot既可以打成war發布,也可以找成jar包發布。說一下區別 jar包 直接通過內建tomcat執行,不需要額外安裝tomcat。如需修改內建tomcat的配置,只需要在spring boot的配置檔案中配置。內建tomcat沒有自己的日誌輸出,全靠jar包應用輸出日誌。但是...