列印基本流程
有了前面的知識,現在我們就可以列印了。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包應用輸出日誌。但是...