Aspose.Words 开发时遇到的问题
问题一
Document doc.Save(Response, "学员报名表.pdf", ContentDisposition.Inline, null); 执行后没有效果,因为异步的时候需要加,如果不是异步,即没有使用UpdatePanel,那么就不要加此方法Triggers。
解决
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:PostBackTrigger ControlID="btnExportAndPrint" />
</Triggers>
<ContentTemplate>
<asp:Button runat="server" ID="btnExportAndPrint" class="btn btn-primary" Text="打印报名表" OnClick="btnExportAndPrint_Click"/>
</ContentTemplate>
</asp:UpdatePanel>
我的程序
protected void btnExportAndPrint_Click(object sender, EventArgs e)
{
string studentNo = txtStudentCode.Text;
if (!string.IsNullOrWhiteSpace(studentNo))
{
OLD_StudentUser student = OLD_StudentUserDAL.GetByStudentNo(studentNo);
string templateFile = Server.MapPath("../Template/Word/学员报名表.doc");
//string photoPath = Server.MapPath("../IDCardPhoto/142201199201264557.Bmp"); //测试方法
string photoPath = Server.MapPath(student.ZP);
Document doc = new Document(templateFile);
doc = ExportAndPrintHelper.ExportAndPrintRegister(doc,student,studentNo,photoPath);
if (doc != null)
{
doc.Save(Response, "学员报名表.pdf", ContentDisposition.Inline, null);
}
}
else
{
Response.Write("<script>alert('学员学号为空!')</script>");
}
}
public class ExportAndPrintHelper
{
/// <summary>
/// 导出和打印学员报名表
/// </summary>
/// <param name="doc"></param>
/// <param name="student"></param>
/// <param name="StudentNo"></param>
/// <param name="photoPath"></param>
/// <returns></returns>
public static Document ExportAndPrintRegister(Document doc, OLD_StudentUser student, string studentNo, string photoPath)
{
DocumentBuilder builder = new DocumentBuilder(doc); if (!string.IsNullOrWhiteSpace(studentNo))
{
#region 基础信息
if (doc.Range.Bookmarks["Code"] != null)
{
doc.Range.Bookmarks["Code"].Text = DateTime.Now.ToShortDateString();
}
if (doc.Range.Bookmarks["Name"] != null)
{
doc.Range.Bookmarks["Name"].Text = student.Name;
}
if (doc.Range.Bookmarks["Sex"] != null)
{
doc.Range.Bookmarks["Sex"].Text = student.Sex;
}
if (doc.Range.Bookmarks["Born"] != null)
{
doc.Range.Bookmarks["Born"].Text = student.DirthDate.ToString("yyyy.MM.dd");
}
if (doc.Range.Bookmarks["StudentNo"] != null)
{
doc.Range.Bookmarks["StudentNo"].Text = student.StudentsNo;
}
if (doc.Range.Bookmarks["Politics"] != null)
{
doc.Range.Bookmarks["Politics"].Text = student.Politics;
}
if (doc.Range.Bookmarks["IDCardNo"] != null)
{
doc.Range.Bookmarks["IDCardNo"].Text = student.SID;
}
if (doc.Range.Bookmarks["EducationLevel"] != null)
{
doc.Range.Bookmarks["EducationLevel"].Text = student.EducationLevel;
}
if (doc.Range.Bookmarks["Units"] != null)
{
doc.Range.Bookmarks["Units"].Text = student.Units;
}
if (doc.Range.Bookmarks["Job"] != null)
{
doc.Range.Bookmarks["Job"].Text = student.Job;
}
if (doc.Range.Bookmarks["Phone"] != null)
{
doc.Range.Bookmarks["Phone"].Text = student.Phone;
}
if (doc.Range.Bookmarks["RelativesPhone"] != null)
{
doc.Range.Bookmarks["RelativesPhone"].Text = student.RelativesPhone;
}
if (doc.Range.Bookmarks["ResidenceAdd"] != null)
{
doc.Range.Bookmarks["ResidenceAdd"].Text = student.ResidenceAdd;
}
if (doc.Range.Bookmarks["Address"] != null)
{
doc.Range.Bookmarks["Address"].Text = student.Address;
}
if (doc.Range.Bookmarks["NowTime"] != null)
{
doc.Range.Bookmarks["NowTime"].Text = DateTime.Now.ToShortDateString();
}
if (doc.Range.Bookmarks["Photo"] != null)
{
builder.MoveToBookmark("Photo");
var img = builder.InsertImage(photoPath);
img.Width = ;
img.Height = ;
}
#endregion #region 所报课程
List<OLD_CourseRegistration> courses = OLD_CourseRegistrationDAL.GetByStudentNo(studentNo);
for (int i = ; i < courses.Count + ; i++)
{
OLD_Class classes = OLD_ClassDAL.GetByClassName(courses[i - ].ClassName);
builder.MoveToCell(, i, , );
builder.Write(courses[i - ].ClassName.ToString());
builder.MoveToCell(, i, , );
builder.Write(classes.TeacherName.ToString());
builder.MoveToCell(, i, , );
builder.Write(classes.SKdate.ToString());
builder.MoveToCell(, i, , );
builder.Write(classes.ClassAdd.ToString());
builder.MoveToCell(, i, , );
builder.Write(classes.FY.ToString());
} for (int cancel = ; cancel >= courses.Count + ; cancel--)
{
builder.DeleteRow(, cancel);
}
#endregion return doc;
}
else
{
return null;
}
}
}
word图片

执行保存之后的图片

Aspose.Words 开发时遇到的问题的更多相关文章
- 【夯实PHP基础】php开发时遇到白页的调试方法
本文地址 分享提纲: 1. 设置报错报错级别,显示报错 2. 白页的可能原因 1.[设置报错报错级别,显示报错] php开发时,访问地址也对,但就是不出来页面,显示的是 白的页面,所以就可 ...
- Golang Web开发时前端出现谜之空白换行的坑
在使用Golang做Web开发时,有时候渲染出来的模板在前台显示时会出现一些奇怪的空白换行,具体特征就是查看css样式表并没有相关定义的空白部分. 分析: 查看出现问题页面的网页源代码,复制空白换行部 ...
- grunt-connect-proxy解决开发时跨域问题
最近的项目中前后端是完全分离开发的,前端用grunt管理项目.这样就会导致一个问题:开发时前端调用后台的接口时因为不在一个服务器,所以会出现跨域问题.但是也不能用JSONP或CROS方式实现真正的跨域 ...
- J2EE开发时的包命名规则
http://www.blogjava.net/paulwong/archive/2012/04/15/374675.html 转一个J2EE开发时的包命名规则,养成良好的开发习惯 代码编写规范目的: ...
- Brophp框架开发时连接数据库读取UTF8乱码的解决(转)
Brophp框架开发时连接数据库读取UTF8乱码的解决办法 (2012-09-15 10:41:22) 转载▼ 标签: 杂谈 it php 分类: 建站技术 Brophp框架开发时连接数据库读取UTF ...
- iOS开发时,在Xcode中添加多个Targets进行版本控制
在iOS开发中,很可能有以下场景:需要开发多个版本,或因需区分收费版,免费版,或因为网络环境需要区分测试版,发布版,或因渠道不同需要区分企业版,AppStore版等等.解决办法无非就是CheckOut ...
- WCF开发时如何选择正确的实例模式(InstanceMode)?
WCF开发时如何选择正确的实例模式(InstanceMode)? 在使用WCF实例模型时,你是否思考过这几个的问题: ”WCF中的实例模式如何正确应用”? ”使用WCF中的实例模式有何原则可以遵循 ...
- 微信jsSDK公众号开发时网页提示 invalid signature错误的解决方法
微信公众号开发jsSDK,链接地址不能加?参数,可以通过#传递参数. 不然.页面wx.ready()时就会报错,用 wx.error(function (res) { alert("接口验证 ...
- 程序员网站开发时应该注意的SEO问题
一.链接的统一性 搜索引擎排名最主要的因素就是网站内容和链接,假如网站内部链接不一致,在很大程度上直接影响着网站在搜索引擎中的排名.例如彩票专营店导航栏中的“首页”链接,程序员在开发时可能会有以下几种 ...
随机推荐
- APIO2015
还没有写完APIO2015的题目,打算今天写一写. T1: 按位DP,DP时要保证已确定的位为0. 前4组设f[n][k]表示把前n个分成k组是否合法. 最后一组设g[n]表示把前n个最少分为多少组才 ...
- SSH整合所需的jar包
Spring3.1+Hibernate3+Struts2的最新整合所需要的jar包 Spring的基本jar包: 1.org.springframework.web-3.1.4.RELEASE.jar ...
- unserialize函数中的参数是否是污染数据
1.原理 在程序编写的时候,往往需要序列化一些运行时数据,所谓序列化就是按照一定的格式将运行时数据写入本地文件.这样做可以对数据进行本地保存,用的时候直接读文件就可以把运行时产生的数据读出.php中就 ...
- vb.net-三种将datagridview数据导出为excel文件的函数
第一种方法较慢,但是数据格式都比较好,需要引用excel的 Microsoft.Office.Interop.Excel.dll office.dll #Region "导出excel函数 ...
- jQuery.qrcode.js客户端生成二维码,支持中文并且可以生成LOGO
描述: jquery.qrcode.js 是一个能够在客户端生成矩阵二维码QRCode 的jquery插件 ,使用它可以很方便的在页面上生成二维条码.此插件是能够独立使用的,体积也比较 ...
- Leetcode | Valid Sudoku & Sudoku Solver
判断valid,没有更好的方法,只能brute force. class Solution { public: bool isValidSudoku(vector<vector<char& ...
- Java量与变量的区别
常量:其值不变即为常量. 语法: 数据类型 常量名 = 值; double PI = 3.14; 备注: 一般默认常量名大写. 变量与常量之间关系(量间关系) 先来一个简单的实例,好了解 Java 里 ...
- PHP 错误与异常 笔记与总结(1)错误(Deprecated,Notice,Warning)
[常见的错误类型] ① 语法错误 [例1]程序语句结尾少了';' <?php $username = "dee" //少了分号; echo $username; 输出: ( ...
- 使用无限生命期Session的方法
使用无限生命期Session的方法 [来源] 达内 [编辑] 达内 [时间]2013-03-28 Session储存在服务器端,根据客户端提供的SessionID来得到这个用户的文件,然后读 ...
- 20145235 《Java程序设计》第6周学习总结
教材学习内容总结 10.1 InputStream与OutputStream 串流设计的概念 Java将输入/输出抽象化为串流,数据有来源及目的地,衔接两者的是串流对象. 从应用程序角度来看,如果要将 ...