利用Aspose.Words编辑word生成pdf

开发工具:vs2019
语言:C#
数据库:Oracle

一、利用NuGet程序包安装Aspose.Words;
二、新建Word文档,使用插入书签功能
在这里插入图片描述

三、代码

private void CreatePdfReport_PACS(string _accno)
{
			DataSet ds = new System.Data.DataSet();
            DataTable dt = new System.Data.DataTable();
            OracleDataAdapter dr = new Oracle.DataAccess.Client.OracleDataAdapter();
            string cmdText, IDCardNo, msg;
            OracleCommand Cmd_Procedure = new OracleCommand();
            string  filePath, TemplatePath, TemplateFile, folderPath;
            cmdText = "";
            msg = "";

            string OpTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            try
            {
                Conn = new OracleConnection(ConnectionStr);
                IDCardNo = _accno;
                OracleCommand cmd = new OracleCommand();
                cmd.Connection = Conn;
                ConnOpen();
                //获取报告列表
                cmdText = "Select * from  view_getpatientinfo where accno='" + IDCardNo + "'";
                cmd.CommandText = cmdText;
                dt.Clear();
                dr.SelectCommand = new Oracle.DataAccess.Client.OracleCommand(cmd.CommandText, Conn);
                dr.Fill(ds, "5");
                dt = ds.Tables["5"];
                if (dt.Rows.Count == 0)
                {
                    msg = "没有查询到标本号(" + IDCardNo + ")的检查报告,检查报告未完成。";
                    return;
                }

                //判断文件夹是否存在, 不存在创建文件夹
                folderPath = PdfPath + "PACS\\" + DateTime.Now.Year.ToString() + "\\" + DateTime.Now.Month.ToString() + "\\" + DateTime.Now.Day.ToString();
                //创建文档对象
                if (!Directory.Exists(folderPath))//判断是否存在
                {
                    Directory.CreateDirectory(folderPath);//创建新路径
                }
                filePath = folderPath + "\\" + IDCardNo + ".pdf";
                TemplatePath = AppDomain.CurrentDomain.BaseDirectory + "Template\\";
                TemplateFile = TemplatePath + "CR检查报告单.docx";


                wordToPDF wtp = new wordToPDF();
                Aspose.Words.Document doc= wtp.WordToPdf(TemplateFile);
               
                wtp.InsertValue("jcrq", dt.Rows[0]["check_date"].ToString());
                wtp.InsertValue("jcbh", dt.Rows[0]["accno"].ToString());
                wtp.InsertValue("H1", dt.Rows[0]["h1"].ToString());
                wtp.InsertValue("H2", dt.Rows[0]["h2"].ToString());
                wtp.InsertValue("H3", dt.Rows[0]["h3"].ToString());
                wtp.InsertValue("jcsj", dt.Rows[0]["DESCRIPTION"].ToString());
                wtp.InsertValue("jcts", dt.Rows[0]["IMPRESSION"].ToString());              
                wtp.InsertValue("H4", dt.Rows[0]["h4"].ToString());
                //wtp.InsertValue("bgr", dt.Rows[0]["REPORTDOC"].ToString());
                //wtp.InsertValue("shr", dt.Rows[0]["COMDOC"].ToString());
                wtp.SaveFile(filePath, Aspose.Words.SaveFormat.Pdf);


                String strsql;
                Cmd_Procedure.Connection = Conn;
                Cmd_Procedure.CommandType = CommandType.StoredProcedure;
                Trans = Conn.BeginTransaction();
                strsql = "zl_报告生成记录_Insert";
                Cmd_Procedure.CommandText = strsql;
                Cmd_Procedure.Parameters.Clear();
                OracleParameter P2_1 = new OracleParameter("报告ID_In", OracleDbType.Varchar2, ParameterDirection.Input);
                OracleParameter P2_2 = new OracleParameter("检查时间_In", OracleDbType.Date, ParameterDirection.Input);
                OracleParameter P2_3 = new OracleParameter("审核时间_In", OracleDbType.Date, ParameterDirection.Input);
                OracleParameter P2_4 = new OracleParameter("姓名_In", OracleDbType.Varchar2, ParameterDirection.Input);
                OracleParameter P2_5 = new OracleParameter("检查号_In", OracleDbType.Varchar2, ParameterDirection.Input);
                OracleParameter P2_6 = new OracleParameter("报告地址_In", OracleDbType.Varchar2, ParameterDirection.Input);
                OracleParameter P2_7 = new OracleParameter("报告类型_In", OracleDbType.Varchar2, ParameterDirection.Input);
                P2_1.Value = dt.Rows[0]["ReportKey"].ToString();
                P2_2.Value = Convert.ToDateTime(dt.Rows[0]["CHECK_DATE"].ToString());
                P2_3.Value = Convert.ToDateTime(dt.Rows[0]["AUDIT_time"].ToString());
                P2_4.Value = dt.Rows[0]["NAME"].ToString();
                P2_5.Value = dt.Rows[0]["ACCNO"].ToString();
                P2_6.Value = PdfPathHttp + "PACS\\" + DateTime.Now.Year.ToString() + "\\" + DateTime.Now.Month.ToString() + "\\" + DateTime.Now.Day.ToString() + "\\" + IDCardNo + ".pdf";
                P2_7.Value = "2";
                Cmd_Procedure.Parameters.Add(P2_1);
                Cmd_Procedure.Parameters.Add(P2_2);
                Cmd_Procedure.Parameters.Add(P2_3);
                Cmd_Procedure.Parameters.Add(P2_4);
                Cmd_Procedure.Parameters.Add(P2_5);
                Cmd_Procedure.Parameters.Add(P2_6);
                Cmd_Procedure.Parameters.Add(P2_7);
                Cmd_Procedure.ExecuteNonQuery();
                Trans.Commit();
                tb_output.AppendText(OpTime + ":" + "检查号:" + _accno + "生成检查报告成功:" + filePath + "\r\n");

                msg = "success";
                //清理资源
                cmd.Parameters.Clear();
                cmd.Dispose();
                cmd = null;
            }
            catch (Exception ex)
            {
                //写日志                
                msg = ex.Message.ToString();
                tb_output.AppendText(OpTime + ":" + msg + "\r\n");
            }
            }```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值