程序員在開發項目時,可能有時須要將項目中上傳的文件進行轉換,如將Word文件轉換爲PDF文件。要實現這一功能,可能有些人根本就毫無頭緒或者是實現方法很複雜、不容易理解並且效率低,但如果經過PageOfficeCtrl控件和PDFCtrl控件,則和容易就能實現這一轉換。 程序員
下面我就來和你們分享一下,經過這兩個控件實現文檔轉換的一個示例。 服務器
第一步:請先安裝PageOffice的服務器端的安裝程序,以後在你的網站中根目錄下添加pageoffice文件夾(在www.zhuozhengsoft.com網站的「下載中心」中可下載相應的壓縮包,解壓以後直接將PageOffice實例代碼裏的pageoffice文件夾拷貝到根目錄下就能夠了)。 函數
第二步:在網站中添加文件夾存放word模板文件和轉後的PDF文件,我習慣命名爲「doc」,將要轉換的文件「template.doc」拷貝到該文件夾下。 工具
第三步:在網站中建立動態頁面WordToPDF.aspx。在工具箱中拖動一個PageOfficeCtrl控件到前臺頁面上(PageOfficeCtrl控件位於工具箱最下方)。而後在後臺添加代碼設置PageOffice的服務器頁面、保存頁面、打開Word文件和添加自定義按鈕,部分代碼以下: 網站
//設置服務器頁面 spa
PageOfficeCtrl1.ServerPage = "pageoffice/server.aspx"; orm
//設置保存頁 server
PageOfficeCtrl1.SaveFilePage = "SaveFile.aspx"; 對象
//添加自定義按鈕 索引
PageOfficeCtrl1.AddCustomToolButton("保存", "Save()", 1);
PageOfficeCtrl1.AddCustomToolButton("另存爲PDF文件", "SaveAsPDF()", 1);
string fileName = "template.doc";
//定義將要轉換的PDF文件的名稱
pdfName = fileName.Substring(0, fileName.Length - 4) + ".pdf";
//打開Word文件
PageOfficeCtrl1.WebOpen(Server.MapPath("doc/") + fileName, PageOffice.OpenModeType.docNormalEdit, "張佚名");
以後在前臺頁面添加執行自定義按鈕「保存」、「另存爲PDF文件」時執行的的JS函數:Save()、SaveAsPDF(),代碼以下:
//保存
function Save() {
document.getElementById("PageOfficeCtrl1").WebSave();
}
//另存爲PDF文件
function SaveAsPDF() {
document.getElementById("PageOfficeCtrl1").WebSaveAsPDF();
//轉換爲PDF文件後,在OpenPDF.aspx中打開轉換後的PDF文件
window.open("OpenPDF.aspx?fileName=<%=pdfName %>");
}
第四步:在網站中建立動態頁面SaveFile.aspx保存Word文件,在後臺添加代碼以下:
//定義FileSaver對象
PageOffice.FileSaver fs = new PageOffice.FileSaver();
//保存Word文件
fs.SaveToFile(Server.MapPath("doc/") + fs.FileName);
//關閉FileSaver對象
fs.Close();
第五步:在網站中建立動態頁面OpenPDF.aspx。在前臺頁面中添加層標籤<div></div>,從工具箱中拖動一個PDFCtrl控件到該層中(PDFCtrl控件位於工具箱下方),以後要設置該層的高和寬,不然打開的PDF文檔將沒法正常顯示,部分HTML代碼以下:
<divstyle="width: auto; height: 700px;">
<po:PDFCtrlID="PDFCtrl1"runat="server"OnLoad="PDFCtrl1_Load"Theme="Office2007">
</po:PDFCtrl>
</div>
以後,在OpenPDF.aspx.cs頁面中添加代碼,設置PageOffice服務器頁面、添加自定義按鈕和打開PDF文件。部分代碼以下:
//設置服務器頁面
PDFCtrl1.ServerPage = "../pageoffice/server.aspx";
//設置PDF文件的主題
PDFCtrl1.Theme = PageOffice.ThemeType.CustomStyle;
// 按鍵說明:光標鍵、Home、End、PageUp、PageDown可用來移動或翻頁;數字鍵盤+、-用來放大縮小;數字鍵盤/、*用來旋轉頁面。
//AddCustomToolButton方法中的三個參數分別爲:按鈕名稱、按鈕執行的JS函數、按鈕圖標的索引
PDFCtrl1.AddCustomToolButton("打印", "Print()", 6);
PDFCtrl1.AddCustomToolButton("-", "", 0);
PDFCtrl1.AddCustomToolButton("實際大小", "SetPageReal()", 16);
...
...
PDFCtrl1.AllowCopy = false;//是否容許拷貝
string fileName = Request.QueryString["fileName"];
//打開PDF文件
PDFCtrl1.WebOpen("doc/" + fileName);
最後在前臺頁面添加相應的JS函數,以下:
//打印
function Print() {
document.getElementById("PDFCtrl1").ShowDialog(4);
}
//設置PDF文件的實際大小
function SetPageReal() {
document.getElementById("PDFCtrl1").SetPageFit(1);
}
...
...
如此,就能實現文件的轉換了。
方案總結:
利用PageOffice開發平臺中的組件PageOfficeCtrl和PDFCtrl,可簡單輕鬆的實現文件從Word到PDF格式的轉換,極大地提升開發效率。