小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

如何利用C#實現(xiàn)在Word中插入豎排文字

 務實耐久 2014-01-27
最近在做一個項目,需要利用Word做為打印模板,不過客戶給出的報表樣式中有些數(shù)據(jù)是豎排輸出的,但大部分的文檔示例中,對此均未提及。經過摸索發(fā)現(xiàn)豎排文字,其實與橫排文字的控制輸出是一致的,只需做設置即可。實現(xiàn)步驟如下:
1.創(chuàng)建打印模板文件(*.dot)
  此為關鍵步驟,在需要豎排的地方,先文字的字體、樣式設置后,然后設置文字方向,再選擇該段文字,為其插入一個書簽(BookMark),并為該書簽命名。
2.利用C#打開,替換該書簽即可,代碼如下:
注意使用以下代碼時,需要引入Word庫

    Word.ApplicationClass App = null;    //Word應用程序對象
  Word.Document doc = null;                         //Word文檔對象
  object missing = System.Reflection.Missing.Value;
    object miss=Type.Missing;
  if (App==null)    App = new Word.ApplicationClass();//創(chuàng)建word對象
  App.Visible = false;  //設置word不可見
  //根據(jù)模板創(chuàng)建新文檔,不過這個模板文件的名稱放置在app.config文件中
  object oTemplate = ConfigurationSettings.AppSettings["TemplateOfLetter"];//獲取文件名
doc = App.Documents.Add(ref oTemplate, ref missing,ref missing, ref missing);//創(chuàng)建新文檔
doc.Activate();//激活文檔
Object objBookMark = "姓名";//姓 名 創(chuàng)建書簽對象
string name="張三";
doc.Bookmarks.get_Item(ref objBookMark).Range.Text =name;//替換該書簽,可為任意值了
//打印輸出
doc.PrintOut( ref missing,ref missing,ref missing,ref missing,ref missing,ref missing,
    ref missing,ref missing,ref missing,ref missing,ref missing,ref missing,ref missing,
    ref missing,ref missing,ref missing,ref missing,ref missing);
//關閉新創(chuàng)建的文檔
object SaveChanges  = Word.WdSaveOptions.wdDoNotSaveChanges;//創(chuàng)建關閉選項
  if (doc!=null)
    doc.Close( ref SaveChanges, ref missing, ref missing);
  //退出Word 
  if (App!=null)
      App.Application.Quit(ref miss, ref miss, ref miss);
  App=null;
  doc = null;


  3.注意事項
a)在控制Word時,應注意釋放已占用的word對象,所以上述代碼最好寫在try/catch/finally中,把資源釋放代碼寫在finally中
b)如果在word中用多個文字需要豎排,最好使用表格或文本框對象,強烈建議使用文本框對象來放置豎排文本,這樣不會影響頁面設置,而單純的豎排文字方向會導致整個頁面全部文字變成豎排,不利用其他文本的放置
c)如果需要一次性生成多個文檔并打印輸出的話,可以考慮使用多線程技術,并利用進度欄進行進度顯示,該部分內容不在本主題的討論范圍。
d)關于效率問題,操作word進行文檔輸出,其效率并不算高,但好在word的使用范圍廣,不需要在客戶的機器上另行安裝其他報表工具,且用戶有能力對報表模板進行樣式及不涉及數(shù)據(jù)輸出等小范圍的頁面調整,并且用戶較為熟悉,打印控制也較為方便,如果不是對效率有太高的要求,使用Word做為打印模板是比較合適,自已的程序的測試數(shù)據(jù),生成3879個文件并打印輸出,用時3223秒,基本上是0.9秒生成并輸出一個,考慮到打印機的速度(目前打印機,能達到30張/s的都算是很快的了),這樣的效率是完全可以接受的。

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多