程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> VB編程經驗之談----打印篇

VB編程經驗之談----打印篇

編輯:VB綜合教程
打印多頁RichText
  
  打印對象在處理RichTextBox時由於忽視了RichText代碼將不會工作得很好。為了打印RichTextBox,要使用SelPrint命令,但是SelPrint不是非常得友好,它按照自己的方式打印然後產生退紙動作。為了打印多頁RichText,要找到每一頁的開始和結束點,然後依此設置SelStart和SelLength,最後使用SelPrint打印出每一頁。以下是工作的每一個步驟:
  
  1、使用SaveFile命令保存編輯版本的文件。
  
  2、轉換編輯版本為打印版本:  
  
  遍歷這個文檔,修改SelIndent和SelRightIndent的數值,使之適合於打印機(注意:編輯時的縮進數值對於屏幕是合適的,但不適用於打印機)。
  
  做些其他的修改,比如:添加頁眉,消除行號。
  
  3、使用SelPrint循環一次打印一個頁面。這裡,計算行數是一個技巧,找到LFCRs是容易的,但是,也必須要計算一下行纏繞,它也算在了行統計中,以及絕對不允許發生的頁面溢出情況。
  
  4、使用SelRTF=""刪除打印版本。
  
  5、使用LoadFile重新啟動編輯版本。
  
  打印MSFlexGrid
  
  這裡有一個快速打印MSFlexGrid控件內容的方法:
  
  Printer.PaintPictureMSFlexGrid_Name.Picture,0,0
  
  Printer.EndDoc
  
  如果想打印滿頁面的整個長度,請在前面添加下面2個語句:
  
  Dimold_widthasInteger
  
  MSFlexGrid_Name.width=printer.width
  
  然後,再在尾部添加:
  
  MSFlexGrid_Name.width=old_width  
  
  快速打印多個拷貝
  
  當以TrueType字體打印一個文檔時,系統將下載打印機需要的字體,這樣做將花費很長的時間。你可以通過在一個打印機文檔中打印所有的拷貝實現快速打印多個拷貝內容:  
  
  Fori=1Tonum_copies
  
  注釋:Printthedocumenthere...  
  
  Printer.NewPage
  
  Nexti
  
  Printer.EndDoc
  
  打印灰色行和區域
  
  黑白打印機不能打印灰色行,但是能通過發抖處理來創建灰色區域。為了創建圍繞一個區域的一個灰色邊界,使用DrawStyle=vbInvisible(5)來繪制一個窄灰色框,這樣就沒有了邊界。
  
  設置打印的邊界
  
  使用打印的scale熟悉來設置邊界。設置了這個屬性後,坐標(0,0)就映射到你需要加邊的地方。比如,下面的代碼設置左邊界為0.5英寸,上邊界為0.75英寸。然後再乘以1440轉換為twip。
  
  Printer.ScaleLeft=-0.5*1440
  
  Printer.ScaleTop=-0.75*1440
  
  Printer.CurrentX=0
  
  Printer.CurrentY=0
  
  很遺憾,打印機不能精確地按照你所想的進行打印。試一試使用下面的命令在左上角打印一個1英寸大小的方塊:
  
  Printer.Line(1440,1440)-Step(1440,1440)
  
  看看偏離了多少。試一試多打印幾次,如果發現打印機有一定規律的偏離,你就可以按照一定的差額進行增減來達到最佳的效果。
  
  提供打印預覽
  
  建立打印程序時,先設置一個要繪制的對象做為參數,然後傳遞給程序一個打印的對象。
  
  為了實現預覽效果,傳遞給程序一個隱藏PictureBox。然後,根據需要的比例,使用PaintPicture拷貝這個隱藏圖形到一個可見的PictureBox。在隱藏PictureBox上按照全尺寸繪制圖形,首先允許你按比例決定了字體,並且,也實現了不失真地完成其他圖形的描述。->

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved