可以將打印機默認打印設(shè)置改為黑白打印,如果打印對象是RGB配色,打印機驅(qū)動轉(zhuǎn)換為CMYK顏色時,黑色都是由彩色墨水組成的
創(chuàng)新互聯(lián)是一家專注網(wǎng)站建設(shè)、網(wǎng)絡(luò)營銷策劃、微信小程序定制開發(fā)、電子商務(wù)建設(shè)、網(wǎng)絡(luò)推廣、移動互聯(lián)開發(fā)、研究、服務(wù)為一體的技術(shù)型公司。公司成立十年以來,已經(jīng)為上千家成都混凝土攪拌機各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務(wù)。現(xiàn)在,服務(wù)的上千家客戶與我們一路同行,見證我們的成長;未來,我們一起分享成功的喜悅。
2.可以試一下圖片從一個標準灰度圖片格式化而來,這樣圖片自身只有黑白色,也許可以
網(wǎng)絡(luò)上找到這個比較全面,你試一下,我記得以前也是這么設(shè)置的。
int GetDeviceCaps( HDC hdc, int nIndex);
其中,hdc用來指定設(shè)備環(huán)境句柄,nIndex用來指定要獲取的參量索引,對于打印機而言,它常常需要下列的預(yù)定義值:
LOGPIXELSX 打印機水平分辨率
LOGPIXELSY 打印機垂直分辨率
PHYSICALWIDTH 打印紙的實際寬度
PHYSICALHEIGHT 打印紙的實際高度
PHYSICALOFFSETX 實際可打印區(qū)域的物理左邊距
PHYSICALOFFSETY 實際可打印區(qū)域的物理上邊距
下面的函數(shù)代碼就是用來設(shè)置頁邊距,并且還計算頁面的物理邊距:
void CEx_Prn1View::SetPageMargin(CDC *pDC, CPrintInfo *pInfo, int l, int t, int r, int b)
// l, t, r, b分別表示左上右下邊距, 單位為0.1mm
{
int nOldMode = pDC- GetMapMode();
pDC- SetMapMode(MM_LOMETRIC);
// 計算一個設(shè)備單位等于多少0.1mm
double scaleX = 254.0 / (double)GetDeviceCaps(
pDC- m_hAttribDC, LOGPIXELSX);
double scaleY = 254.0 / (double)GetDeviceCaps(
pDC- m_hAttribDC, LOGPIXELSY);
int x = GetDeviceCaps(pDC- m_hAttribDC,
PHYSICALOFFSETX);
int y = GetDeviceCaps(pDC- m_hAttribDC,
PHYSICALOFFSETY);
int w = GetDeviceCaps(pDC- m_hAttribDC,
PHYSICALWIDTH);
int h = GetDeviceCaps(pDC- m_hAttribDC,
PHYSICALHEIGHT);
int nPageWidth = (int)((double)w*scaleX + 0.5);
// 紙寬,單位0.1mm
int nPageHeight = (int)((double)h*scaleY + 0.5);
// 紙高,單位0.1mm
m_nPhyLeft = (int)((double)x*scaleX + 0.5);
// 物理左邊距,單位0.1mm
m_nPhyTop = (int)((double)y*scaleY + 0.5);
// 物理上邊距,單位0.1mm
pDC- DPtoLP(pInfo- m_rectDraw);
CRect rcTemp = pInfo- m_rectDraw;
rcTemp.NormalizeRect();
m_nPhyRight = nPageWidth - rcTemp.Width() -
m_nPhyLeft; // 物理右邊距,單位0.1mm
m_nPhyBottom = nPageHeight - rcTemp.Height() -
m_nPhyTop; // 物理下邊距,單位0.1mm
// 若邊距小于物理邊距,則調(diào)整它們
if (l m_nPhyLeft) l = m_nPhyLeft;
if (t m_nPhyTop) t = m_nPhyTop;
if (r m_nPhyRight) r = m_nPhyRight;
if (b m_nPhyBottom) b = m_nPhyBottom;
// 計算并調(diào)整pInfo- m_rectDraw的大小
pInfo- m_rectDraw.left = l - m_nPhyLeft;
pInfo- m_rectDraw.top = - t + m_nPhyTop;
pInfo- m_rectDraw.right -= r - m_nPhyRight;
pInfo- m_rectDraw.bottom += b - m_nPhyBottom;
pDC- LPtoDP(pInfo- m_rectDraw);
pDC- SetMapMode(nOldMode);
// 恢復(fù)原來的映射模式
}
一般情況下先用EXCEL做好一個樣表文件,設(shè)定好打印區(qū)域和樣式,需要填內(nèi)容的時候,先程序復(fù)制一個樣表文件,然后調(diào)用API打開表格填寫內(nèi)容并打印,如果想用API來實現(xiàn)調(diào)整模板和打印預(yù)覽,可能比較困難,而且很抽象,個人覺得費時費力效果還不一定理想
文章標題:vb.net打印區(qū)域 vb窗口打印
URL標題:http://chinadenli.net/article46/dogcoeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、品牌網(wǎng)站設(shè)計、移動網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、電子商務(wù)、網(wǎng)站營銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)