在开发项目时,可能有时需要将项目中上传的文件进行转换,如将Word文件转换为PDF文件。要实现这一功能,可能有些人根本就毫无头绪或者是实现方法很复杂、不容易理解而且效率低,但若是通过PageOfficeCtrl控件,则很容易就能实现这一转换,并且还可以利用PDFCtrl控件在网页里显示转换生成的PDF文件。
下面我就来和大家分享一下,通过这两个控件实现文档转换并显示的一个示例。
第一步:请先安装PageOffice的服务器端的安装程序,之后在你的网站中根目录下添加pageoffice文件夹(在
www.zhuozhengsoft.com网站的“下载中心”中可下载相应的压缩包,解压之后直接将PageOffice实例代码里的pageoffice文件夹拷贝到根目录下就可以了)。
第二步:在网站中添加文件夹存放word模板文件和转后的PDF文件,我习惯命名为“doc”,将要转换的文件“template.doc”拷贝到该文件夹下。
第三步:在网站中创建web页面WordToPDF.aspx。在工具箱中拖动一个PageOfficeCtrl控件到前台页面上(PageOfficeCtrl控件位于工具箱最下方)。然后在后台添加代码设置PageOffice的服务器页面、保存页面、打开Word文件和添加自定义按钮,部分代码如下:
    //设置服务器页面
    PageOfficeCtrl1.ServerPage = "pageoffice/server.aspx";
    //
设置保存页
    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/") +fileNamen,  PageOffice.OpenModeType.docNormalEdit, "张佚名");
之后在前台页面添加执行自定义按钮“保存”、“另存为PDF文件”时执行的的JS函数:

Save()、SaveAsPDF(),代码如下:
    //保存
    function Save() {
    document.getElementByIdx_x_x_x("PageOfficeCtrl1").WebSave();}
    //
另存为PDF文件
    function SaveAsPDF() {
    document.getElementByIdx_x_x_x("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();
第五步:显示转换得到的PDF文档。在网站中创建web页面OpenPDF.aspx。在前台页面中添加层标签<div></div>,从工具箱中拖动一个PDFCtrl控件到该层中(PDFCtrl控件位于工具箱下方),之后要设置该层的高和宽,否则打开的PDF文档将无法正常显示,部分HTML代码如下:
   <div style="width: auto; height: 700px;">
   <po:PDFCtrl ID="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.getElementByIdx_x_x_x("PDFCtrl1").ShowDialog(4); }
    //
设置PDF文件的实际大小
    function SetPageReal() {
    document.getElementByIdx_x_x_x("PDFCtrl1").SetPageFit(1);}
    ...
    ...
如此,就能实现文件的转换以及显示了。
方案总结:
利用PageOffice开发平台中的组件PageOfficeCtrl和PDFCtrl,可简单轻松的实现文件从Word到PDF格式的转换并显示转换得到的PDF文档,极大地提高了程序员的开发效率。