這里主要提供一種將word文檔轉(zhuǎn)成PDF文檔的實(shí)現(xiàn);
具體實(shí)現(xiàn)看c#代碼:要引入Microsoft.Office.Interop.Word;版本12.0.0.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Runtime.InteropServices; using Microsoft.Office.Interop.Word; //Office 命名空間 namespace OfficeToPdf { //excel 類 class WordConverter { //構(gòu)造函數(shù) public WordConverter() { } /// <summary> /// 轉(zhuǎn)換word 成PDF文檔 /// </summary> /// <param name="_lstrInputFile">原文件路徑</param> /// <param name="_lstrOutFile">pdf文件輸出路徑</param> /// <returns>true 成功</returns> public bool ConverterToPdf( string _lstrInputFile, string _lstrOutFile) { Microsoft.Office.Interop.Word.Application lobjWordApp = null ; Document objDoc = null ; object lobjMissing = System.Reflection.Missing.Value; object lobjSaveChanges = null ; try { Object lobjFileName = (Object)_lstrInputFile; objDoc = lobjWordApp.Documents.Open( ref lobjFileName, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing); objDoc.Activate(); Object lobjOutPutFileName = (Object)_lstrOutFile; object lobjFileFormat = WdSaveFormat.wdFormatPDF; //保存格式為PDF objDoc.SaveAs( ref lobjOutPutFileName, ref lobjFileFormat, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing); lobjSaveChanges = WdSaveOptions.wdDoNotSaveChanges; ((_Document)objDoc).Close( ref lobjSaveChanges, ref lobjMissing, ref lobjMissing); objDoc = null ; ((_Application)lobjWordApp).Quit( ref lobjSaveChanges, ref lobjMissing, ref lobjMissing); lobjWordApp = null ; } catch (Exception ex) { //其他日志操作; return false ; } finally { if (objDoc != null ) { ((_Document)objDoc).Close( ref lobjSaveChanges, ref lobjMissing, ref lobjMissing); Marshal.ReleaseComObject(objDoc); objDoc = null ; } if (lobjWordApp != null ) { ((_Application)lobjWordApp).Quit( ref lobjSaveChanges, ref lobjMissing, ref lobjMissing); Marshal.ReleaseComObject(lobjWordApp); lobjWordApp = null ; } //主動(dòng)激活垃圾回收器,主要是避免超大批量轉(zhuǎn)文檔時(shí),內(nèi)存占用過(guò)多,而垃圾回收器并不是時(shí)刻都在運(yùn)行! GC.Collect(); GC.WaitForPendingFinalizers(); } return true ; } } } |
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)服務(wù)器之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
原文鏈接:https://blog.csdn.net/chenqiangdage/article/details/20486049