javascript对word文档进行页眉页脚套打

word的套打,一般都是使用文本域,然后通过js脚本对文本域处理,插入对应的值。
word的页眉页脚貌似弄不了文本域,所以只能单独处理。
页眉页脚也是需要样式的,这个刚开始的时候有点走弯路了,啥靠左靠右空行之类的,搞到头疼。
下班公车上,无聊的望着窗外,脑袋里还想着如何实现,突然一个东西冒了出来,table,对,就是这个东西。


话不多说,先上效果图:

页眉:
javascript对word文档进行页眉页脚套打_第1张图片

页脚:


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;//关闭页眉页脚


代码其实还可以继续优化下,先这样吧,越来越懒了~
(条形码、二维码图片的生成,前面我也有写,需要的童鞋可以参考)
(还有个问题,一直没解决,就是如何获取当前页码,有知道的童鞋可以分享下不?)

你可能感兴趣的:(JavaScript,js,脚本,word)