由于业务需求,根据模板生成word .而我们的模板是使用vsto开发的wps 插件。在生成word 以后需要生成pdf。需求如下:
1、下载是带水印
2、将其中零时编号改成正式编号(审批通过的编号)
3、去掉之前控件背景色
4、生成pdf
完整代码如下:这是一个一般处理程序.ashx
using Microsoft.Office.Interop.Word;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Web;
using Woo.Utility;
using WooDataEntity;
namespace Web.ModuleBusiness.ContractText
{
/// <summary>
/// SaveWpsPDF 的摘要说明
/// </summary>
public class SaveWpsPDF : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
WCMSDATA wd = DataEntity.Initializes();
string textId = context.Request["Id"];
string previewType = context.Request["previewType"];
WOO_CONT_TEXT cont_text = wd.WOO_CONT_TEXT.First(p => p.ID == Convert.ToInt32(textId));
var contract = wd.WOO_CONTRACT.First(h => h.ID == Convert.ToInt32(cont_text.CONTRACT_ID));//获取机构下的手印路径
var water = contract.MAIN_DEPARTMENT_.WATER_MARK;
var is_wateremark = contract.IS_WATERMARK;
//if (is_wateremark == 0)//不带 水印
//{
// return;
//}
string newContractNo = contract.NO;
string fileName = is_wateremark == 0 ? "ContractTextWordTemplate.docx" : System.IO.Path.GetFileName(water);// context.Request["filename"] == null ? "ContractTextWordTemplate.docx" : context.Request["filename"];
string pdfFileName = "";
if (fileName.IndexOf('.') > 0)
{
pdfFileName = fileName.Substring(0, fileName.LastIndexOf('.'));
}
string dir = HttpContext.Current.Request.PhysicalApplicationPath;
string date = string.Format("{0}-{1}-{2}-{3}-", DateTime.Now.ToString("yyyy-M-d"), DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second);
string savePath = string.Format("{0}Upload\\TextField\\{1}", dir, pdfFileName + ".pdf");
string newWordPath = string.Format("{0}Upload\\TextField\\{1}{2}", dir, date, "newWord.docx");
string contextPath = "";
string templatePath = string.Format("{0}Upload\\WordTemplate\\{1}", dir, fileName);//"ContractTextWordTemplate.docx");
string filePath = cont_text.PATH;
string firstDir = "", endFileName = "", showPdf = "";
if (filePath.LastIndexOf(".pdf") < 0)//没转换pdf
{
var fileNameSub = filePath == "" ? "" : filePath.Substring(filePath.LastIndexOf('/'));
contextPath = string.Format("{0}Upload\\TextField\\{1}", dir, fileNameSub);
//生成PDF
string reValue = ConvertPDF(t