javascript下用ActiveXObject控件替换word书签,将内容导出到word后打印_javascript技巧
由于时间比较紧,没多的时候去学习研究上述工具包,现在用javascript操作ActiveXObject控件,用替换word模板中的书签方式解决。
最近有需求将数据导出到word里,然后编辑打印。
想过几种方案:
1.使用jacob。
2.使用apache的poi。
3.使用itext。
由于时间比较紧,没多的时候去学习研究上述工具包,现在用javascript操作ActiveXObject控件,用替换word模板中的书签方式解决。
前提条件:
1.浏览器安全级别降低,可以使用ActiveXObject控件。
2.装有office word。
目前实现了替换单个书签,多行表格书签,和图片,基本上满足需求。不过还有很多操作word的使用方法不太清楚,网上大部分都使用的VB,有不清楚的地方,大家可以交流。
下面说一下我的设计实现思路:
首先当然是定义word模板,在需要替换的地方加上标签。 菜单-插入-书签,输入属性名,如year,date,pic1,voList等等。
打印页面:
需要把打印的数据从后台取出,以单个vo(一个对象)为一组,或以voList(对象的列表集合)为一组 组织好页面上 再得到这些数据后进行替换。
数据组织形式如下:
使用:
注意:
替换图片的值需要解释一下:
1.可以设为相对本页面的路径如../zbgl/abc.png
2.如果是输出流,则需要把请求输出流的url映射成以图片格式结尾的。如/.../abc.do?id=123换成/../abc.png?id=123
可以在web.xml里配一个servlet,如以*.png的请求转成.do的。如:
public class PngDispatcherServlet extends HttpServlet {
private static final long serialVersionUID = 6230740581031996144L;
public void init() throws ServletException {
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
doGet(request, response);
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
//StringBuffer url = request.getRequestURL();
StringBuffer url = new StringBuffer(request.getRequestURI());
if(request.getQueryString() != null) {
url.append('?');
url.append(request.getQueryString());
}
String newUrl = url.toString().replaceAll(".png", ".do");
ServletContext sc = getServletContext();
RequestDispatcher rd = sc.getRequestDispatcher(newUrl); //定向的页面
rd.forward(request, response);
}
}
export2word.js代码:
/**
*
Title: 用word书签替换的方式将内容导出到word
*
Description: **
*
Copyright: Copyright (c) 2007-2010
*
Company: **
* @author zhu
* @version 1.0
*/
var baseVoListObj = function(){
this.volist = new Array();
this.cols = new Array();
this.widths = new Array();
}
var WordApp = function(wordTplPath){
var wordObj = new ActiveXObject("Word.Application");
if(wordObj==null){
alert( "不能创建Word对象!");
}
wordObj.visible=false;
this.wordObj = wordObj;
this.docObj = this.wordObj.Documents.Open(getRootPath() + wordTplPath);
}
WordApp.prototype.closeApp = function(){
if (this.wordObj !=null){
this.wordObj.Quit();
}
}
WordApp.prototype.replaceBookmark = function(strName,content,type){
if (this.wordObj.ActiveDocument.BookMarks.Exists(strName)) {
if (type != null && type == "pic") {//图片
var objDoc = this.wordObj.ActiveDocument.BookMarks(strName).Range.Select();
var objSelection = this.wordObj.Selection;
objSelection.TypeParagraph();
//alert(getRootPath()+content);
var objShape = objSelection.InlineShapes.AddPicture(getRootPath()+content);
}
else {
this.wordObj.ActiveDocument.BookMarks(strName).Range.Select();
this.wordObj.Application.selection.Text = content;
}
}else{
//alert("标签不存在");
}
}
WordApp.prototype.replaceBookmarkUsevo = function(voObj){
if(typeof voObj != "object"){
alert("请输入正确的vo对象");
}else{
for(var i in voObj){
this.replaceBookmark(i,voObj[i]);
}
}
}
WordApp.prototype.replaceBookmarkUsepicvo = function(voObj){
if(typeof voObj !="object"){
alert("请输入正确的vo对象");
}else{
for(var i in voObj){
this.replaceBookmark(i,voObj[i],"pic");
}
}
}
WordApp.prototype.replaceBookmarkUsevolist = function(strName,voListObj){
if(typeof voListObj != "object"){
alert("参数应为数组类型");
}else{
var row = voListObj.volist.length;
var col = voListObj.cols.length;
var objDoc = this.wordObj.ActiveDocument.BookMarks(strName).Range;
var objTable = this.docObj.Tables.Add(objDoc,row,col) ;//插入表格
for (var i = 0; i < row; i++) {
for(var j=0; j
objTable.Cell(i+1,j+1).Range.InsertAfter(voListObj.volist[i][voListObj.cols[j]]);
var width = voListObj.widths[j];
if(width.indexOf("px")!=-1){
objTable.Cell(i+1,j+1).Width = (width.substr(0,width.length-2)/100) * 28.35;//1厘米=28.35磅
}
}
}
//objTable.AutoFormat(16);
objTable.Borders.InsideLineStyle = 1
objTable.Borders.OutsideLineStyle = 0;
}
}
WordApp.prototype.getSingleVo = function(formName,arrayObj){//第二个参数可以为空,不填时默认为表单里的所有元素
var formObj = document.forms[formName];
if(formObj!=null){
if(arrayObj!=null){
if(arrayObj instanceof Array){
var vo = {};
for(var i=0;i
eval("vo." + arrayObj[i] + " = formObj.elements[arrayObj[i]].value;");
}
}
//alert(objToString(vo));
return vo;
}else{
alert("弟二个参数应为数组类型");
}
}else{
var vo = {};
for(var i=0;i
}
return vo;
}
}else{
alert("第一个参数表示的表单不存在");
return null;
}
}
WordApp.prototype.getVoList = function (formName,arrayObj){//表单名,属性数组(可以为空)
//var formArray = document.forms[formName];
var formArray = document.getElementsByName(formName);
if (formArray != null) {
if (arrayObj instanceof Array) {
var voListObj = new baseVoListObj();
for(var i=0;i
for(var j=0;j
eval("vo."+arrayObj[j]+" = formArray[i].elements[arrayObj[j]].value;");
if(i==0){//第一次的时候定义有效属性和宽度
voListObj.cols.push(arrayObj[j]);
voListObj.widths.push(formArray[i].elements[arrayObj[j]].style.width);
}
}
}
voListObj.volist.push(vo);
}
return voListObj;
}else{
var voListObj = new baseVoListObj();
for(var i=0;i
for(var j=0;j
if(i==0){//第一次的时候定义宽度
voListObj.cols.push(formArray[i].elements[j].name);
voListObj.widths.push(formArray[i].elements[j].style.width);
}
}
voListObj.volist.push(vo);
}
return voListObj;
}
}else{
return null;
}
}
function objToString(obj){
if(obj instanceof Array){
var str="";
for(var i=0;i
for(var j in obj[i]){
str+=j+"="+obj[i][j]+" ";
}
str+="]\n";
}
return str;
}else if(obj instanceof Object){
var str="";
for(var i in obj){
str+=i+"="+obj[i]+" ";
}
return str;
}
}
function getRootPath()
{
var location=document.location;
if ("file:" == location.protocol) {
var str = location.toString();
return str.replace(str.split("/").reverse()[0], "");
}
var pathName=location.pathname.split("/");
return location.protocol+"//"+location.host+"/"+pathName[1]+"/";
}
先说到这里吧,以后有更好的再更新,希望对大家有用。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Lors de l'édition du contenu d'un document Word, les lignes peuvent être automatiquement renvoyées à la ligne. Si aucun ajustement n'est effectué à ce moment-là, cela aura un grand impact sur notre édition et donnera de gros maux de tête aux gens. En fait, il s'agit d'un problème avec la règle. Ci-dessous, je vais présenter la solution pour annuler le retour à la ligne automatique dans Word. J'espère que cela pourra aider tout le monde ! Après avoir ouvert un document Word et saisi du texte, lorsque vous essayez de copier et coller, le texte peut passer à une nouvelle ligne. Dans ce cas, vous devez ajuster les paramètres pour résoudre ce problème. 2. Pour résoudre ce problème, il faut d’abord connaître la cause de ce problème. À ce stade, nous cliquons sur Afficher sous la barre d'outils. 3. Cliquez ensuite sur l'option "Règle" ci-dessous. 4. À ce stade, nous constaterons qu'une règle apparaît au-dessus du document, avec plusieurs marqueurs coniques dessus.

Lorsque nous utilisons Word, afin d’éditer le contenu de manière plus esthétique, nous utilisons souvent des règles. Il faut savoir que les règles de Word incluent des règles horizontales et des règles verticales, qui servent à afficher et ajuster les marges de page du document, les retraits de paragraphes, les tabulations, etc. Alors, comment afficher la règle dans Word ? Ensuite, je vais vous apprendre à définir l'affichage de la règle. Les étudiants dans le besoin devraient le récupérer rapidement ! Les étapes sont les suivantes : 1. Tout d'abord, nous devons afficher la règle de mots. Le document Word par défaut n'affiche pas la règle de mots. Il nous suffit de cliquer sur le bouton [Afficher] dans Word. 2. Ensuite, nous trouvons l’option [Règle] et la cochons. De cette façon, nous pouvons ajuster la règle des mots ! Oui ou non

Les documents Word sont largement utilisés en raison de leurs fonctions puissantes. Non seulement différents formats peuvent être insérés dans Word, tels que des images et des tableaux, etc., mais désormais, pour l'intégrité et l'authenticité des fichiers, de nombreux fichiers nécessitent une signature manuelle à la fin. du document. Cela ressemble à ceci. Comment résoudre des problèmes complexes ? Aujourd'hui, je vais vous apprendre à ajouter une signature manuscrite à un document Word. Utilisez un scanner, un appareil photo ou un téléphone portable pour numériser ou photographier la signature manuscrite, puis utilisez PS ou un autre logiciel de retouche d'image pour effectuer le recadrage nécessaire sur l'image. 2. Sélectionnez « Insérer - Image - À partir d'un fichier » dans le document Word dans lequel vous souhaitez insérer la signature manuscrite, puis sélectionnez la signature manuscrite recadrée. 3. Double-cliquez sur l'image de signature manuscrite (ou cliquez avec le bouton droit sur l'image et sélectionnez « Définir le format d'image »), et « Définir le format d'image » apparaît.

Parmi les logiciels de bureautique, Word est l'un de nos logiciels les plus utilisés. Les documents texte que nous produisons sont généralement exploités avec Word. Certains documents doivent être soumis en version papier selon les besoins. Avant l'impression, la mise en page doit être définie avant de pouvoir être présentée. . produire de meilleurs résultats. La question est donc : comment définir les marges des pages dans Word ? Nous avons des explications de cours spécifiques pour vous aider à résoudre vos doutes. 1. Ouvrez ou créez un nouveau document Word et cliquez sur le menu « Mise en page » dans la barre de menu. 2. Cliquez sur le bouton "Marges" de l'option "Mise en page". 3. Sélectionnez une marge de page couramment utilisée dans la liste. 4. S'il n'y a aucune marge appropriée dans la liste, cliquez sur « Marges personnalisées ». 5. La boîte de dialogue "Mise en page" apparaît, entrez respectivement l'option "Marges".

Word est un logiciel que nous utilisons souvent dans notre bureau. Il possède de nombreuses fonctions qui peuvent faciliter nos opérations. Par exemple, pour un article volumineux, nous pouvons utiliser la fonction de recherche à l'intérieur pour découvrir qu'un mot dans le texte intégral est faux, afin que nous puissions le remplacer directement. Apportez les modifications une à une ; lors de la soumission du document à vos supérieurs, vous pouvez embellir le document pour le rendre plus beau, etc. Ci-dessous, l'éditeur partagera avec vous les étapes à suivre pour dessiner un pointillé. ligne dans Word. Apprenons ensemble ! 1. Tout d'abord, nous ouvrons le document Word sur l'ordinateur, comme indiqué dans la figure ci-dessous : 2. Ensuite, saisissez une chaîne de texte dans le document, comme indiqué dans le cercle rouge dans la figure ci-dessous : 3. Ensuite, appuyez sur et maintenez [ctrl+A] Sélectionnez tout le texte, comme indiqué dans le cercle rouge dans la figure ci-dessous : 4. Cliquez sur [Démarrer] en haut de la barre de menu.

Nous utilisons souvent Word pour le travail de bureau, mais savez-vous où se trouvent les paramètres d'ombrage dans Word ? Aujourd'hui, je vais partager avec vous les étapes spécifiques de l'opération. Venez jeter un œil, les amis ! 1. Tout d'abord, ouvrez le document Word, sélectionnez un paragraphe d'informations de paragraphe de texte qui doit être ajouté avec un ombrage, puis cliquez sur le bouton [Démarrer] dans la barre d'outils, recherchez la zone de paragraphe et cliquez sur le bouton déroulant à droite. (comme indiqué dans le cercle rouge dans la figure ci-dessous) ). 2. Après avoir cliqué sur le bouton de la liste déroulante, dans les options du menu contextuel, cliquez sur l'option [Bordure et ombrage] (comme indiqué dans le cercle rouge dans la figure ci-dessous). 3. Dans la boîte de dialogue contextuelle [Bordure et ombrage], cliquez sur l'option [Ombrage] (comme indiqué dans le cercle rouge dans la figure ci-dessous). 4. Dans la colonne remplie, sélectionnez une couleur

Dans le travail de bureau quotidien, si vous copiez un morceau de texte d'un site Web et le collez directement dans Word, vous verrez souvent une [flèche vers le bas]. Cette [flèche vers le bas] peut être supprimée en la sélectionnant, mais s'il y en a trop. de tels symboles, existe-t-il donc un moyen rapide de supprimer toutes les flèches ? Alors aujourd’hui, je vais partager avec vous les étapes spécifiques pour supprimer la flèche vers le bas dans Word ! Tout d'abord, la [Flèche vers le bas] dans Word représente en fait un [Saut de ligne manuel]. Nous pouvons remplacer toutes les [Flèches vers le bas] par des symboles [Marque de paragraphe], comme indiqué dans la figure ci-dessous. 2. Ensuite, nous sélectionnons l'option [Rechercher et remplacer] dans la barre de menu (comme indiqué dans le cercle rouge dans la figure ci-dessous). 3. Ensuite, cliquez sur la commande [Remplacer], une boîte de dialogue apparaîtra, cliquez sur [Symboles spéciaux]

La technologie de détection et de reconnaissance des visages est déjà une technologie relativement mature et largement utilisée. Actuellement, le langage d'application Internet le plus utilisé est JS. La mise en œuvre de la détection et de la reconnaissance faciale sur le front-end Web présente des avantages et des inconvénients par rapport à la reconnaissance faciale back-end. Les avantages incluent la réduction de l'interaction réseau et de la reconnaissance en temps réel, ce qui réduit considérablement le temps d'attente des utilisateurs et améliore l'expérience utilisateur. Les inconvénients sont les suivants : il est limité par la taille du modèle et la précision est également limitée ; Comment utiliser js pour implémenter la détection de visage sur le web ? Afin de mettre en œuvre la reconnaissance faciale sur le Web, vous devez être familier avec les langages et technologies de programmation associés, tels que JavaScript, HTML, CSS, WebRTC, etc. Dans le même temps, vous devez également maîtriser les technologies pertinentes de vision par ordinateur et d’intelligence artificielle. Il convient de noter qu'en raison de la conception du côté Web
