日期:2014-05-20  浏览次数:20361 次

证书套打问题
系统为WEB模式,采用vs2005.net进行开发;
如何能够实现该模式下的对证书的套打?



------解决方案--------------------
用绝对定位.高宽都要写死. 要反复的试验才行.
------解决方案--------------------
把你要打印的东东放在iframe里面,把iframe的width,height=0

把target=iframe

剩下的,就是用一堆纸去调打印的位置了
------解决方案--------------------
icebamboo123() ( ) 信誉:100 Blog 2007-1-23 11:31:31 得分: 0



把你要打印的东东放在iframe里面,把iframe的width,height=0

把target=iframe

剩下的,就是用一堆纸去调打印的位置了


------------
这个方法是可行的,我曾经也是用这种模式实现了 "报销单套打 ",
一页默认4行记录,如果多余的,则自动打到第二页,并且第二页是不要表头的,
所以第二页默认打10行记录。客户用后很满意。
至于,第二页怎么控制,这个你要自已写个小算法。
后来用同样的方法,实现了成绩单打印。
以上是web方式。
------解决方案--------------------
用excel作为证书模板

行列坐标就很好定位了(例如c1,c2。。。。)


Dim strOpenFile,strSaveFile as String
Dim xlsApp As New Excel.Application
Dim xlsWorkBook As Excel.Workbook
Dim xlsSheet As Excel.Worksheet
Dim xlsRange As Excel.Range
Dim xlsSrcRange As Excel.Range

strOpenFile = Server.MapPath( "..\ReportFormat\test.xls ")
strSaveFile = Server.MapPath( "..\filetemp\testtarget.xls ")
xlsApp.Application.DisplayAlerts = False
xlsApp.Visible = False

'打开格式文件
xlsWorkBook = xlsApp.Workbooks.Open(strOpenFile)
xlsSheet = xlsWorkBook.Sheets(1)
'根据需要的sheet数拷贝格式
xlsSheet.Copy(, xlsWorkBook.Sheets(1))
'获取需要填入数据的sheet
xlsSheet = xlsWorkBook.Sheets(1)
'选择拷贝源的行的下一行
xlsRange = xlsSheet.Rows(3)
'插入一行
xlsRange.Insert()
xlsRange.Insert()
'选择拷贝源
xlsSrcRange = xlsSheet.Rows(2)
'把源拷贝到刚插入的行
xlsSrcRange.Copy(xlsSheet.Rows(3))
xlsSrcRange.Copy(xlsSheet.Rows(4))

'进行数据填充,实际代码根据记录数使用循环
xlsSheet.Cells(2, 1) = "A "
xlsSheet.Cells(2, 2) = 300
xlsSheet.Cells(3, 1) = "B "
xlsSheet.Cells(3, 2) = 400
xlsSheet.Cells(4, 1) = "C "
xlsSheet.Cells(4, 2) = 500

'sheet重命名
xlsSheet = xlsWorkBook.Sheets(1)
xlsSheet.Name = "200501 "
xlsSheet = xlsWorkBook.Sheets(2)
xlsSheet.Name = "200502 "


'另存为结果表
xlsWorkBook.SaveAs(strSaveFile)
'关闭
xlsWorkBook.Close()
xlsApp.Quit()
xlsApp = Nothing
xlsWorkBook = Nothing
xlsSheet = Nothing
xlsRange = Nothing
xlsSrcRange = Nothing
GC.Collect()

------解决方案--------------------
to:cain2001(菜鸟2001) ( ) 信誉:100 Blog

只要这100个学校的毕业证书只有文字上的差别,那都可以把文字不一样的地方留出空白,通过代码里判断之后把空白处填充
甚至,可以把整个EXCEL模板都留空,在相应的位置直接填充文字,就算每个学校的校名等等项目位置不统一,也可以通过代码判断修改填充位置。

'进行数据填充,实际代码根据记录数使用循环
xlsSheet.Cells(2, 1) = "A "
xlsSheet.Cells(2, 2) = 300
xlsSheet.Cells(3, 1) = "B "
xlsSheet.Cells(3, 2) = 400
xlsSheet.Cells(4, 1) = "C "
xlsSheet.Cells(4, 2) = 500

在数据填充之后就可以直接打印表了