Category Archives: 程式教學

如何利用C#將word檔產生為pdf

    在常見的企業需求中,常常會有將word檔轉換成pdf的要求,而一般來說若採取免費的方案有幾種solution 1. 利用提供免費API(例如:docx4j),而此種方式有時候要碰碰運氣,若word的格式太過於複雜,轉換的格式經常會跑掉,若遇到中文字有時會變成亂碼 因為此種方式採用前要先有心裡準備,或是先將要轉的word格式都試過後,都不會跑版才放心採行。 2.利用呼叫 Microsoft.Office.Interop.Word的原生功能轉檔,此方式來說近乎100%的格式沒有問題,但是執行環境下要安裝Office,若採行免費方案下,此方式則被排除。 當然綜合以上二點,所以會想到是否又免費的方案,且轉換格式不跑掉的雙贏策略,那就Open Office 呼之欲出: 本說明採納Open Office的另一實作LibraOffice, 請先下載安裝後, 利用C# 的Process的方法進行執行Commend Line 產生PDF,程式碼如下: /// <summary> /// 利用LibraOffice將Doc轉成PDF /// </summary> /// <param name="openOfficePath">soffice.exe的路徑</param> /// <param name="workDir">要被轉換檔案的資料夾位置</param> /// <param name="docFileName">要被轉換檔案的名稱</param> /// <returns></returns> private bool convertDocToPdf(String openOfficePath,String workDir,String docFileName) { ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.CreateNoWindow = false; startInfo.UseShellExecute = false; startInfo.FileName = openOfficePath; startInfo.WorkingDirectory

    Read More

    TechDays Taiwan 2015大會影片、投影片發布了

      今年來不及參加的會議的開發者,佛心來了的微軟,提供大會講座錄影影片與投影片,相關內容可參考下列網址: https://channel9.msdn.com/Events/TechDays/TechDays-Taiwan-2015   TechDays Taiwan 是由台灣微軟主辦,每年針對 IT 專業人士與開發人員所設計的技術交流盛會。 主要談到的主題: 打造企業雲端智慧 ( Build the Intelligent Cloud ) 創造更個人化的運算 ( Create more personal computing ) 重塑生產力和業務流程 ( Reinvent productivity & business processes )  

      Read More

      如何利用Trigger來建立資料表異動記錄(SQL SERVER)

        在歷經產品上線後,我們常常被詢問到一些問題:   哪些資料是經常被更新的? 哪些資料表是不常被修改的? 是誰將該資料改為100,是什麼時候改的? 這商品的價錢是什麼時候改為99元的?   而為了達到此需求有幾種的解決方案:   在程式設計的時候就加入log的機制,當有異動的內容全都記錄下來 可利用資料庫的功能,例如利用trigger的功能來記錄資料表的異動   本篇說明如果利用trigger的方式: 在網路參考到一篇類似的作法 Nigel Rivett’s SQL Server Auditing triggers,但其原理為建立一audit表格,其用來記錄目前標的的表格異動,當異動產生 ,原封不動記錄異動每個欄位資料至audit表格中(但多加一timestamp欄位)。 但以上做法在網路上討論也有效能的爭議。而是否有折衷的做法,在每次異動時,僅記錄有異動的欄位即可,請看下面的介紹:   首先建立一Audit表格,用來記錄異動資料,script由此下載,其欄位如下:   : 欄位說明 Type:異動行為: U(更新)、i(新增)、D(刪除) TableName:資料表名 PrimaryKeyField:主鍵名稱(P K) PrimaryKeyValue:主鍵值(PK value) FieldName:有異動的欄位名稱 OldValue:原資料值(最多取varchar(1000),超過會截斷) NewValue:異動後的值(最多取varchar(1000),超過會截斷) UpdateDate:異動時間 UpdateName:異動使用者名稱(若是程式就是connect string中填的帳號)   產生Trigger 的script 從這下載, 注意:必須將以下變數換成實際的值 __YOUR_TRIGGER_NAME :產生的trigger的名稱 __YOUR_TABLE_NAME(有二個地方要換):要偵測異動目標的表格名稱  

        Read More

        遇見Workflow Foundation 4

          小編因為工作的關係接觸了 Workflow Foundation,在這裡發文與大家分享與討論,希望有天能把公司的請假系統用Workflow將它完成。小編之前沒有接觸過相關的Workflow,而選擇Workflow Foundation 4是因為,目前是用ASP.Net在做開發,在使用上介面與操作比較熟悉。 Workflow的特點呢!!就是應用程式邏輯可以視覺化的方式表現,讓應用程式的維護更容易進行。 在這裡我們先來製做一個簡單的工做流吧,順便來熟悉一下環境,WF4工作流表現形式上是圖結構,但其實是樹狀結構,只不過WF4.0工作流採用了樹狀結構的方式,並提供了FlawCahr這個活動用以在其內部實現圖結構。 FlowCahrt用於實現一個結構圖的活動。 Sequence用於實現從上到下順序執行的活動。 我們首先新增一個專案,選擇Workflow >> 工作流程主控台應用程式專案 >> 確定。   新增好專案後左邊有工具箱中間的畫面可以將工具箱的各種Activity拖曳進來,右邊有個Workflow1.xaml流程設計檔。 一開始要先選擇FlowCahrt或Sequence來放置Activity,這次我們先使用Sequence。這邊Sequence也可稱為順序容器,在Sequence中,可以加入多個Activity,在流程執行時按照Sequence中的上下順序執行。   再來我們把WriteLine放入Sequence中再將想要顯示的文字輸入到Text欄位裡,在這裡要注意到因為是字串所以要用""(雙引號)把文字包起來。我們也可以在裡面加入取得現在時間的屬性(DateTime.Now)不過要記得轉成字串。 簡單介紹一下WriteLine,主要是將輸入的文字顯示在畫面上。     好了之後記得在主程序中呼叫執行,執行程式(Ctrl+F5)輸出結果 謝謝大家小編就先介紹到這了,雖然只有簡單幾個步驟,但也是個開始。歡迎大家能夠一起來學習。

          Read More
          Web Design MymensinghPremium WordPress ThemesWeb Development

          高氣溫戶外作業熱危害預警行動資訊網上線

          勞動部委託本公司開發「高氣溫戶外作業熱危害預警行動資訊網」,供事業單位及勞工隨時以手機查詢熱危害資訊,以評估及取得相關應對措施,提升戶外相關作業人員之熱危害預防認知,保護從事戶外作業勞工的健康。   歡迎大家使用,系統網址: https://hiosha.osha.gov.tw This image has an empty alt attribute; its file name is 高氣溫戶外作業熱危害預警行動資訊網-qr-code.png  

          璞藝員工旅遊公告4/15~4/19

          訂於4月15日(五)至4月19日(二)舉辦員工旅遊,若期間需要緊急服務可利用email通知,將儘快進行處理。 PS:該期間電話不通,請見諒