javascript对word文档进行页眉页脚套打
程序员文章站
2022-07-13 13:08:52
...
[size=medium]word的套打,一般都是使用文本域,然后通过js脚本对文本域处理,插入对应的值。
word的页眉页脚貌似弄不了文本域,所以只能单独处理。
页眉页脚也是需要样式的,这个刚开始的时候有点走弯路了,啥靠左靠右空行之类的,搞到头疼。
下班公车上,无聊的望着窗外,脑袋里还想着如何实现,突然一个东西冒了出来,table,对,就是这个东西。[/size]
[size=medium]话不多说,先上效果图:[/size]
页眉:
[img]http://dl.iteye.com/upload/picture/pic/134410/1ad114db-b586-3a49-a930-fbfe549e108c.png[/img]
页脚:
[img]http://dl.iteye.com/upload/picture/pic/134412/4417a171-ec9a-37d9-b37f-577f2a0c2098.png[/img]
js代码片段:
[size=medium]代码其实还可以继续优化下,先这样吧,越来越懒了~
(条形码、二维码图片的生成,前面我也有写,需要的童鞋可以参考)
(还有个问题,一直没解决,就是如何获取当前页码,有知道的童鞋可以分享下不?)[/size]
word的页眉页脚貌似弄不了文本域,所以只能单独处理。
页眉页脚也是需要样式的,这个刚开始的时候有点走弯路了,啥靠左靠右空行之类的,搞到头疼。
下班公车上,无聊的望着窗外,脑袋里还想着如何实现,突然一个东西冒了出来,table,对,就是这个东西。[/size]
[size=medium]话不多说,先上效果图:[/size]
页眉:
[img]http://dl.iteye.com/upload/picture/pic/134410/1ad114db-b586-3a49-a930-fbfe549e108c.png[/img]
页脚:
[img]http://dl.iteye.com/upload/picture/pic/134412/4417a171-ec9a-37d9-b37f-577f2a0c2098.png[/img]
js代码片段:
//处理页眉 objWord 公文对象
objWord.ActiveWindow.View.SeekView = 9;//打开页眉
objWord.ActiveWindow.Selection.ParagraphFormat.Alignment = 1;//居中
var table = objWord.Tables.Add(objWord.ActiveWindow.Selection.Range,6,6);
table.Borders.OutsideLineStyle = 0;//设置边框不显示
table.Borders.InsideLineStyle = 0;
table.Cell(1,1).Merge( table.Cell(1,6) ); //合并单元格
table.Cell(1,1).range.InlineShapes.AddPicture(barcodePath); //插入条形码图片 barcodePath图片临时文件路径
table.Cell(2,1).Merge( table.Cell(2,5) );
table.Cell(2,1).range.ParagraphFormat.Alignment = 2;//靠右
table.Cell(2,1).range.Text="办文编号";
table.Cell(2,1).range.Font.Bold=true ;
table.Cell(2,1).range.Font.Name="黑体" ;
table.Cell(2,1).range.Font.Size=13.5 ;
table.Cell(2,2).range.ParagraphFormat.Alignment = 0;//靠左
table.Cell(2,2).range.Font.Bold=false ;
table.Cell(2,2).range.Font.Name="黑体" ;
table.Cell(2,2).range.Font.Size=13.5 ;
table.Cell(2,2).range.Text="000000000000";
table.Cell(3,1).Merge( table.Cell(3,6) );
table.Cell(4,1).Merge( table.Cell(4,6) );
table.Cell(4,1).range.ParagraphFormat.Alignment = 1;//居中
table.Cell(4,1).range.Font.Bold=false ;
table.Cell(4,1).range.Font.Name="方正小标宋_GBK" ;
table.Cell(4,1).range.Font.Size=22 ;
table.Cell(4,1).range.Text="xxxxxxxxxxxxxxxxx";
table.Cell(5,1).Merge( table.Cell(5,6) );
table.Cell(6,5).range.Text="密级:";
table.Cell(6,5).range.Font.Bold=true ;
table.Cell(6,5).range.Font.Name="黑体" ;
table.Cell(6,5).range.Font.Size=13.5 ;
table.Cell(6,5).Width="4";
table.Cell(6,5).range.ParagraphFormat.Alignment = 2;
table.Cell(6,6).range.Font.Name="仿宋GB2312";
table.Cell(6,6).range.Font.Size=13 ;
table.Cell(6,6).range.ParagraphFormat.Alignment = 0;
table.Cell(6,6).range.Text="密级";
objWord.ActiveWindow.View.SeekView = 10;//打开页脚
objWord.ActiveWindow.Selection.ParagraphFormat.Alignment = 1;
var tableEnd = objWord.Tables.Add(objWord.ActiveWindow.Selection.Range,2,7);
tableEnd.Borders.OutsideLineStyle = 1;//设置边框显示
tableEnd.Borders.InsideLineStyle = 1;
tableEnd.Cell(1,1).range.Text="公开属性";
tableEnd.Cell(1,1).range.Font.Bold=true ;
tableEnd.Cell(1,1).range.Font.Name="黑体" ;
tableEnd.Cell(1,1).range.Font.Size=12.5 ;
tableEnd.Cell(1,1).Width="2.2";
tableEnd.Cell(1,1).range.ParagraphFormat.Alignment = 1;
tableEnd.Cell(1,2).range.Text="";
tableEnd.Cell(1,2).range.Font.Bold=false ;
tableEnd.Cell(1,2).range.Font.Name="黑体" ;
tableEnd.Cell(1,2).range.Font.Size=12.5 ;
tableEnd.Cell(1,2).range.ParagraphFormat.Alignment = 1;
tableEnd.Cell(1,3).range.Text="校对";
tableEnd.Cell(1,3).range.Font.Bold=true ;
tableEnd.Cell(1,3).range.Font.Name="黑体" ;
tableEnd.Cell(1,3).range.Font.Size=12.5 ;
tableEnd.Cell(1,3).range.ParagraphFormat.Alignment = 1;
tableEnd.Cell(1,4).range.Text="";
tableEnd.Cell(1,4).range.Font.Bold=false ;
tableEnd.Cell(1,4).range.Font.Name="黑体" ;
tableEnd.Cell(1,4).range.Font.Size=12.5 ;
tableEnd.Cell(1,4).range.ParagraphFormat.Alignment = 1;
tableEnd.Cell(1,5).range.Text="";
tableEnd.Cell(1,5).range.Font.Bold=false ;
tableEnd.Cell(1,5).range.Font.Name="黑体" ;
tableEnd.Cell(1,5).range.Font.Size=12.5 ;
tableEnd.Cell(1,5).range.ParagraphFormat.Alignment = 1;
tableEnd.Cell(1,6).range.Text="";
tableEnd.Cell(1,6).range.Font.Bold=false ;
tableEnd.Cell(1,6).range.Font.Name="黑体" ;
tableEnd.Cell(1,6).range.Font.Size=12.5 ;
tableEnd.Cell(1,6).range.ParagraphFormat.Alignment = 1;
tableEnd.Cell(1,7).range.Text="";
tableEnd.Cell(1,7).range.Font.Bold=false ;
tableEnd.Cell(1,7).range.Font.Name="黑体" ;
tableEnd.Cell(1,7).range.Font.Size=12.5 ;
tableEnd.Cell(1,7).range.ParagraphFormat.Alignment = 1;
tableEnd.Cell(2,1).Merge( tableEnd.Cell(2,5) );
tableEnd.Cell(2,2).Merge( tableEnd.Cell(2,3) );
tableEnd.Cell(2,1).range.Text="电话:";
tableEnd.Cell(2,1).range.Font.Bold=true ;
tableEnd.Cell(2,1).range.Font.Name="黑体" ;
tableEnd.Cell(2,1).range.Font.Size=12.5 ;
tableEnd.Cell(2,1).range.ParagraphFormat.Alignment = 0;
tableEnd.Cell(2,1).Borders.OutsideLineStyle = 0;//不显示边框
tableEnd.Cell(2,2).range.Text="页号:";
tableEnd.Cell(2,2).range.Font.Bold=true ;
tableEnd.Cell(2,2).range.Font.Name="黑体" ;
tableEnd.Cell(2,2).range.Font.Size=12.5 ;
tableEnd.Cell(2,2).range.ParagraphFormat.Alignment = 0;
tableEnd.Cell(2,2).Borders.OutsideLineStyle = 0;
objWord.ActiveWindow.View.SeekView = 0;//关闭页眉页脚
[size=medium]代码其实还可以继续优化下,先这样吧,越来越懒了~
(条形码、二维码图片的生成,前面我也有写,需要的童鞋可以参考)
(还有个问题,一直没解决,就是如何获取当前页码,有知道的童鞋可以分享下不?)[/size]
上一篇: Java脚本引擎执行js代码以及动态编译
下一篇: jdbc批量添加数据