精华内容
下载资源
问答
  • Word文档加密器是一款WORD文档加密器,支持加密不同版本的WORD文档,防止未授权的用户阅读、复制、编辑、打印你的WORD文件Word文档加密器内置四种不同的加密模式。非绑定模式--加密后的文件不绑定用户电脑,但用户...
  • CHM2Word,chm帮助文件word文档,非常实用,欢迎下载!
  • 根据WORD文档模板书签绑定数据自动生成WORD文件下载打印
  • PHP读取word文档 导入word文档

    千次阅读 2019-10-26 15:50:48
    PHP读取word文档 导入word文档PHP读取word文档 导入word文档openoffice把word转html用phpquery读取html的内容 PHP读取word文档 导入word文档 用openoffice和phpquery实现word文档的导入 读取word文档数据 前一段时间...

    PHP读取word文档 导入word文档

    前一段时间在工作中遇见了一个棘手的需求,客户要求把word里的数据导入,对数据进行统计。
    刚开始觉得挺简单用phpword应该能够实现,后在网上各处询问也没发现phpword能够导入word,
    然后我就转换了思路,先用libreoffice把word转换成html

    libreoffice把word转html

    安装libreoffice就不多做介绍
    openoffice命令
    用这个命令就可以把word文档转为html

    用phpquery读取html的内容

    获取到html了下面就是读取里边的内容了 大家应该都用过jquery,jQuery可以在html中获取html里的内容
    可以在php后端我们改如何操作呢,用phpQuery就可以让php处理html代码像jQuery一样方便。
    项目地址:https://code.google.com/p/phpquery/

    github地址:https://github.com/TobiaszCudnik/phpquery

    DEMO

    下载库文件:https://code.google.com/p/phpquery/downloads/list

    我下的是onefile版:phpQuery-0.9.5.386-onefile.zip

    官方demo:https://code.google.com/p/phpquery/source/browse/branches/dev/demo.php

    然后在项目中引用。
    phpquery
    phpquery的文档特别少,但是和jquery的差别并不大
    pq($param, $context = null);

    pq(); 相当于 jQuery的$();。它主要完成三件事情:

    1. 载入标记资源:

    // 输入到载入的文档:
    // 对于最开始输入的字符串不接收文本类型的节点:pq(’

    ’)
    // 从$pq->getDocumentID()根据ID载入到文档: pq(’
    ’, $pq->getDocumentID())
    // 根据DOM节点的归属将同样的文档载入:pq(’
    ’, DOMNode)
    // 从phpQuery 对象载入文档: pq(’
    ’, $pq)

    1. 运行查询

    // 根据最后一个选择的文档执行查询:pq(‘div.myClass’)
    // 根据$pq->getDocumentID()的ID从文档中进行查询:pq(‘div.myClass’, $pq->getDocumentID())
    // 在同样的文档上根据DOM节点的归属进行查询并且使用节点作为查询的根节点:pq(‘div.myClass’, DOMNode)
    // 在文档上使用phpQuery对象进行查询
    // 同时使用对象的栈作为根节点进行查询: pq(‘div.myClass’, $pq)

    1. 使用phpQuery对象对DOM节点进行原型化操作

    foreach(pq(‘li’) as $li) // $ li是纯DOM节点, 将它变为phpQuery对象: pq($li);。

    原创文章,码字不易,转载请注明出处

    展开全文
  • c#根据word模板生成word文档 附件中包含程序源码以及word模板文件 需要引用的DLL已经在源码中标出
  • 可以修复Word软件提示打不开或打开后乱码的Word文档文件。软件采用微软最新发布的管方二进制文档结构规范进行开发,对于有严重结构坏损的文档,宏宇Word修复向导,具有自动强力修复内核,可最大化的修复文档中的文字...
  • 超星pdg文件转换为word文档的方法超星pdg文件转换为word文档的方法超星pdg文件转换为word文档的方法
  • java 根据模板文件生成word文档

    万次阅读 多人点赞 2018-09-19 16:18:05
    最近需要做一个导出word的功能, 在网上搜了下, 有用POI,JXL,iText等jar生成一个word文件然后将数据写到该文件中,API非常繁琐而且拼出来的样式也不美观,于是选择了另一种方式----feemarker基于word模板的导出方式, ...

      原文链接:https://blog.csdn.net/zhangzhangjava/article/details/52937159

     

    最近需要做一个导出word的功能, 在网上搜了下, 有用POI,JXL,iText等jar生成一个word文件然后将数据写到该文件中,API非常繁琐而且拼出来的样式也不美观,于是选择了另一种方式----feemarker基于word模板的导出方式, 这种方式非常简单而且导出的样式美观, 其原理就是先做一个word模板, 该模板中变量数据用${xxx}这种方式填写, 然后再导出时只需读取模板然后用相应的数据替换其中的${xxx}即可. 

         
           一,简单模板导出(不含图片, 不含表格循环) 
             1, 新建一个word文档, 输入如下类容: 
                
             2, 将该word文件另存为xml格式(注意是另存为,不是直接改扩展名) 
             3, 将xml文件的扩展名直接改为ftl 
             4, 用java代码完成导出(需要导入freemarker.jar) 

    Java代码:

    @Test
        public void test(){
            Map<String,Object> dataMap = new HashMap<String, Object>();
            try {
                //编号
                dataMap.put("id", "123456");
                //日期
                dataMap.put("date", new SimpleDateFormat("yyyy年MM月dd日").format(new SimpleDateFormat("yyyy-MM-dd").parse("2018-09-19")));
                //附件张数
                dataMap.put("number", 1);
                //受款人
                dataMap.put("payee", "张三");
                //付款用途
                dataMap.put("use_of_payment", "test");
                //大写金额
                dataMap.put("capitalization_amount", MoneyUtils.change(100.20));
                //小写金额
                dataMap.put("lowercase_amount", "100");
                //Configuration 用于读取ftl文件
                Configuration configuration = new Configuration(new Version("2.3.0"));
                configuration.setDefaultEncoding("utf-8");
    
                /**
                 * 以下是两种指定ftl文件所在目录路径的方式,注意这两种方式都是
                 * 指定ftl文件所在目录的路径,而不是ftl文件的路径
                 */
                //指定路径的第一种方式(根据某个类的相对路径指定)
    //                configuration.setClassForTemplateLoading(this.getClass(), "");
    
                //指定路径的第二种方式,我的路径是C:/a.ftl
                configuration.setDirectoryForTemplateLoading(new File("c:/"));
    
                //输出文档路径及名称
                File outFile = new File("D:/报销信息导出.doc");
    
                //以utf-8的编码读取ftl文件
                Template template = configuration.getTemplate("报销信息导出.ftl", "utf-8");
                Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "utf-8"), 10240);
                template.process(dataMap, out);
                out.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

    注意:我使用的 freemarker 版本为2.3.28,Configuration对象不推荐直接new Configuration(),仔细看Configuration.class文件会发现,推荐的是 Configuration(Version incompatibleImprovements) 这个构造方法,具体这个构造方法里面传的就是Version版本类,而且版本号不能低于2.3.0

     

     


          5, 这时在D盘下就生成了一个test.word, 打开可以看到${xxx}已被替换  



             二, word文件中导入图片 
              1, 新建一个word文档, 在要插入图片的地方随便插入一张图片 
     
              2, 将word另存为xml 
              3, 将xml扩展名改为ftl 
              4, 打开ftl文件, 搜索w:binData 或者 png可以快速定位图片的位置,图片 已经编码成0-Z的字符串了, 如下: 


              5, 将上述0-Z的字符串全部删掉,写上${imgStr}(变量名随便写)后保存 
              6, 导入图片的代码与上述代码是一样的, 也是创建一个Map, 将数据存到map中,只不过我们要把图片用代码进行编码,将其也编成0-Z的字符串: 

    Map<String,String> dataMap = new HashMap<String,String>();  
     dataMap.put("imgStr", getImageStr());  
      
    //....其余省略 

     



    这是对图片进行编码的代码: 

         public String getImageStr() {  
                     String imgFile = "d:/aa.png";  
                     InputStream in = null;  
                     byte[] data = null;  
                     try {  
                         in = new FileInputStream(imgFile);  
                         data = new byte[in.available()];  
                         in.read(data);  
                         in.close();  
                     } catch (Exception e) {  
                         e.printStackTrace();  
                     }  
                     BASE64Encoder encoder = new BASE64Encoder();  
                     return encoder.encode(data);  
                 }  

     


    注意: 该代码需要用到 sun.misc.BASE64Encoder 类,这个类就是JDK中的类,但在eclipse中默认是不访问的,需要设置一下,设置方式: 
    项目上右键-->Build Path-->Configure Build Path... 

     
    双击Access rules,点击add, 选择Accessible,下方输入**, OK , 这样就可以访问sun.misc.BASE64Encoder 类了 


       三, 导出循环的表格 
          1, 新建一个word文档, 插入如下表格: 
           
     
           2, 另存为xml, 将扩展名改为ftl 
           3, 搜索  w:tr 可以找到行的起点与结束点(注意第一对w:tr 是表头,应找第二对 w:tr), 如图: 
          
     
                 

           4, 用<#list userList as user> </#list>标签将第二对 w:tr 标签包围起来(userList是集合的key, user是集合中的每个元素, 类似<c:forEach items='userList' var='user'>), 如图: 
         
     
           5, 解析该ftl文件 

    这是User类 

         public class User {  
            private String a;  
            private String b;  
            private String c;  
        //生成set和get方法,此处省略  
        }  



    这是解析ftl文件的代码,跟上面一样,只是Map的value是一个集合而已 

         @Test  
           public void exportListWord() throws Exception{  
               //构造数据  
               Map<String,List> dataMap = new HashMap<String,List>();  
               List<User> list = new ArrayList<User>();  
                 for(int i=0;i<10;i++){  
                     User user = new User();  
                     user.setA("a"+(i+1));  
                     user.setB("b"+(i+1));  
                     user.setC("c"+(i+1));  
                     list.add(user);  
                 }  
                 dataMap.put("userList", list);  
                   
                 Configuration configuration = new Configuration();  
                 configuration.setDefaultEncoding("utf-8");  
                 configuration.setDirectoryForTemplateLoading(new File("C:/"));  
                 File outFile = new File("D:/test.doc");  
                 Template t =  configuration.getTemplate("c.ftl","utf-8");  
                 Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "utf-8"),10240);  
                 t.process(dataMap, out);  
                 out.close();  
           }  


    如果你需要输出集合的索引, 用${user_index}即可. 

    四, 常见问题解决方案 
    4.1, 异常信息如下:

         freemarker.core.ParseException: Encountered "<" at line 3, column 28888 in test.ftl.  
        Was expecting one of:  
            <STRING_LITERAL> ...  
            <RAW_STRING> ...  
            "false" ...  
            "true" ...  
            <INTEGER> ...  
            <DECIMAL> ...  
            "." ...  
            "+" ...  
            "-" ...  
            "!" ...  
            "[" ...  
            "(" ...  



      这是由于在写${xxx}表达式的时候, xxx与其前方的文字样式不一致, 在另存为xml后你可以搜索一下 "${" , 会发现如下图这种情况: 

     

    由于${xxx}中的xxx格式与其前方的文字不一致, 那么在生成xml时,就会有一些修饰xxx样式的标签,例如修饰xxx的字体,颜色等的标签, 所以在word中看似写的是${xxx}实际上转为xml后变成了${<w:color ...>xxx</w:color>},这样这个el表达式中的标签就解析不了报错了, 可以去掉${}内部的标签只留下xxx或者删掉 "${" 和 "}"然后给xxx加上el表达式都可以解决此问题. 

       五, javaWeb中利用response导出(注意编码问题,防止中文乱码) 

         Map<String,String> dataMap = new HashMap<String,String>();  
                  dataMap.put("username", "张三");  
                  dataMap.put("sex", "男");  
                    
                  Configuration configuration = new Configuration();  
                  configuration.setDefaultEncoding("utf-8");  
                  configuration.setDirectoryForTemplateLoading(new File(request.getRealPath("/")+"/templete"));//指定ftl所在目录,根据自己的改  
                  response.setContentType("application/msword");     
                  response.setHeader("Content-Disposition", "attachment;filename=\"" + new String("文件名.doc".getBytes("GBK"), "iso8859-1") + "\"");  
                  response.setCharacterEncoding("utf-8");//此句非常关键,不然word文档全是乱码  
                  PrintWriter out = response.getWriter();  
                 Template t =  configuration.getTemplate("test.ftl","utf-8");//以utf-8的编码读取ftl文件  
                 t.process(dataMap, out);  
                 out.close();  

     

    展开全文
  • word文档压缩NXPowerLite,可将文件大的Word文档压缩小,对于新手较适用。
  • 将txt文件改变为Word文档(VB6.0源代码编写)将txt文件改变为Word文档点击确定,会记事本文件转化为word文件,并保留文
  • md文件转换成word文档

    千次阅读 2020-12-01 17:27:29
    md文件转成word文档 Typora导出word文件时需要先下载pandoc Typora导出word文件时因为文档里面有表格,导出失败,所以先使用使用pandoc命令导出无边框表格的word 1.在xxx.md所在文件夹打开命令提示符 2.在命令提示...

    md文件转成word文档


    Typora导出word文件时需要先下载pandoc

    Typora导出word文件时因为文档里面有表格,导出失败,所以先使用使用pandoc命令导出无边框表格的word

    1.在xxx.md所在文件夹打开命令提示符

    2.在命令提示符输入:pandoc -s xxxx.md -o xxxx.docx ,回车后生成xxxx.docx文档。
    在这里插入图片描述

    3.打开word,视图-宏-查看宏-创建
    在这里插入图片描述

    4.输入下面代码保存,然后运行就可以全选页面所有的无边框表格,全选后在表格上右键,表格属性-边框和底纹-全部-确定。
    在这里插入图片描述
    Sub SelectAllTables()
    Dim tempTable As Table
    Application.ScreenUpdating = False
    If ActiveDocument.ProtectionType = wdAllowOnlyFormFields Then
    MsgBox “文档已保护,此时不能选中多个表格!”
    Exit Sub
    End If
    ActiveDocument.DeleteAllEditableRanges wdEditorEveryone
    For Each tempTable In ActiveDocument.Tables
    tempTable.Range.Editors.Add wdEditorEveryone
    Next
    ActiveDocument.SelectAllEditableRanges wdEditorEveryone
    ActiveDocument.DeleteAllEditableRanges wdEditorEveryone
    Application.ScreenUpdating = True

    End Sub

    展开全文
  • word文档转成CHM文件工具,可以把word文件转换为chm文件
  • word文档查重

    2018-07-23 09:16:57
    支持word文档查重,协助进行各类标书word文件查询重复部分。
  • C#生成word文档 、word转pdf、合并pdf文件等 在系统开发中经常会有用户需求涉及到基于模板导出word文档、pdf文档,或者把几个文件合并成一个进行导出预览等,他们所说需求不一样,但在功能实现上却是相同的。由于...

    C#生成word文档 、word转pdf、合并pdf文件等

    在系统开发中经常会有用户需求涉及到基于模板导出word文档、pdf文档,或者把几个文件合并成一个进行导出预览等,他们所说需求不一样,但在功能实现上却是相同的。由于前期在使用时对pdf涉及的不太多,所以在文件导出时都是用的word转pdf形式。
    备注:在当前文章中所涉及到的模板均为.doc文件。

    需求描述

    用户根据表单填写基本信息,需要单个或者批量导出信息到word文档中。
    模板准备:
    1.空模板.doc //作为合并文件时的模板使用
    2.表单模板.doc //导出word模板

    代码如下:

    using Aspose.Words;
    using iTextSharp.text.pdf;
    using Newtonsoft.Json;
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Web;
    using System.Web.Services;
    
    
    public string HelloWorld()
            {
                var result = new { statue = "fail", url = "" };
                try
                {
                    Student bll = new Student();
                    string tempPath = HttpContext.Current.Server.MapPath("~/");//系统部署地址
    
                    #region 创建文件夹
    
                    List<string> li = new List<string>();
                    List<Student> list = GetStudentData();
                    foreach (Student model in list)
                    {
                        Document doc = new Document(tempPath + "表单模板.doc");//加载模板
                        string fName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "_" + model.name + ".doc";
                        string savePath = tempPath + fName;//文件保存路径
                        //根据word中的标签赋值
                        doc.Range.Bookmarks["NAME"].Text = "张三";
                        doc.Range.Bookmarks["SEX"].Text = "男";
                        doc.Range.Bookmarks["AGE"].Text = "18";
    
                        doc.Save(savePath, SaveFormat.Doc);
                        DOCConvertToPDF(savePath, savePath.Replace(".doc", ".pdf"));
                        li.Add(savePath.Replace(".doc", ".pdf"));//生成附件的list集合
                    }
                    #endregion 创建文件夹
                    //保存文件路径
                    string sPath = tempPath + "_导出基本信息.doc";
                    string pdf_path = sPath.Replace(".doc", ".pdf");
                    DOCConvertToPDF(tempPath + "空模板.doc", pdf_path);
                    MergePDFFiles(li.ToArray(), pdf_path);//合并文件
    
                    //删除转换后的文件
                    foreach (PdfModel model in mergeFile_temp)
                    {
                        model.pdf.Dispose();
                        File.Delete(model.url);//删除临时文件
                        File.Delete(model.url.Replace(".pdf", ".word"));
                    }
    
                    result = new { statue = "success", url = pdf_path };
                }
                catch (Exception ex)
                {
                }
                return JsonConvert.SerializeObject(result); ;
            }
    
            /// <summary> 合并PDF </summary>  
            /// <param name="fileList">PDF文件集合</param>  
            /// <param name="outMergeFile">合并文件名</param>  
            /// 
            public static void MergePDFFiles(string[] fileList, string outMergeFile)
            {
                PdfReader reader;
                iTextSharp.text.Rectangle re;
                PdfDictionary pd;
                //List<PdfReader> readerList = new List<PdfReader>();//记录合并PDF集合  
                iTextSharp.text.Document document = new iTextSharp.text.Document();
                PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(outMergeFile, FileMode.Create));
                document.Open();
    
                PdfContentByte cb = writer.DirectContent;
                PdfImportedPage newPage;
                for (int i = 0; i < fileList.Length; i++)
                {
                    if (!string.IsNullOrEmpty(fileList[i]))
                    {
                        reader = new PdfReader(fileList[i]);
                        PdfModel model = new PdfModel();
                        model.pdf = reader;
                        model.url = fileList[i];
                        mergeFile_temp.Add(model);
    
                        int iPageNum = reader.NumberOfPages;
                        for (int j = 1; j <= iPageNum; j++)
                        {
                            //获取Reader的pdf页的打印方向
                            re = reader.GetPageSize(reader.GetPageN(j));
                            //设置合并pdf的打印方向
                            document.SetPageSize(re);
                            document.NewPage();
                            newPage = writer.GetImportedPage(reader, j);
                            cb.AddTemplate(newPage, 0, 0);
                        }
                        //reader.Dispose();
                        //readerList.Add(reader);
                    }
                }
                document.Close();
                //Process.Start(outMergeFile);//预览
            }
    
    
            private static bool DOCConvertToPDF(string sourcePath, string targetPath)
            {
                bool result;
                try
                {
                    Aspose.Words.Document document = new Aspose.Words.Document(sourcePath);
                    document.Save(targetPath, Aspose.Words.SaveFormat.Pdf);
                    result = true;
                }
                catch (Exception ex)
                {
                    result = false;
                }
                return result;
            }
    
            public static List<Student> GetStudentData()
            {
    
                List<Student> list = new List<Student>();
    
                for (int index = 0; index < 3; index++)
                {
                    Student model = new Student();
                    model.name = "张三_" + index;
                    model.sex = "男-" + index;
                    model.age = index.ToString();
                    list.Add(model);
                }
                return list;
            }
    //访问实体类
    public class Student
        {
            /// <summary>
            /// 姓名
            /// </summary>
            public string name
            {
                set;
                get;
            }
            /// <summary>
            /// 性别
            /// </summary>
            public string sex
            {
                set;
                get;
            }
            /// <summary>
            /// 年龄
            /// </summary>
            public string age
            {
                set;
                get;
            }
    
        }
        public class PdfModel
        {
            public PdfReader pdf
            {
                set;
                get;
            }
            public string url
            {
                set;
                get;
            }
        }
    
    ... prompt'''

    文章中所涉及的模板为:
    这里写图片描述

    生成的文件格式为:
    这里写图片描述

    关于引用文件暂时无法上传。
    关于合并文件的暂时没有找到好的方法,都先凑合着用吧。

    展开全文
  • word文档批量处理大师(含授权文件),批量处理word文件,改格式,改页眉页脚,替换文字等
  • word文档前端预览

    2020-06-04 17:39:31
    本资源,通过前端引入js插件,可以进行本地word文档的预览,并且也通过服务器加载文档进行word文档预览
  • 现在项目中,java导出word的方式是利用freemarket的template.poccess方式,以xml格式的doc文件作为模板来导出, 可最近有个新的需求,要在导出的word文件第一页加上首页内容,首页内容是另一个word文件的内容。我试...
  • java 根据word模板生成word 文档

    热门讨论 2012-07-24 12:38:11
    开发语言java 可以根据word模板生成word文档
  • Word文档转换Markdown文档

    千次阅读 2019-02-28 16:30:22
    Word 文档转换Markdown 格式文档 工具地址 http://www.writage.com 下载完成后点击安装 傻瓜式安装一直点 安装完成后 ,打开word 出现如下图标表示安装成功 接下来打开一个word 文档 点击 【另存为】 然后...
  • java将WORD文档转换成pdf文件

    万次阅读 2007-10-14 11:31:00
    实现思路一、先将WORD文档转换成HMTL文件格式(参阅我的前一文《JAVA操作WORD文档)。二、用流读取HTML文件。将其保存在一个String对象中。三、用Itext组件,将生成的字符串对象转换成PDF文件。四、在要生成的PDF...
  • 利用VBA代码将一个word文档按页分割成多个word文档
  • 如何将一个word文档按页分割成多个word文档,很有参考价值
  • 最近在公司开发个小功能,要求是基于需求提供的word文档模板来生成规定的word文档。 想了一下,就用了poi来做,这里特别强调一点,实现该功能所需的jar包最好是:poi-scratchpad-3.8-beta4-20110826.jar 和 poi-3.8...
  • word文档操作

    热门讨论 2011-11-14 11:13:40
    这里演示了一个word操作的最最简单的例子,开发环境是windows XP + VC6(MFC APP) + word2010, 实现了打开一个文档,向其写入指定的内容,再关闭文档的功能。这里最主要的关键点还是在于先封装一个word操作类,这个...
  • 本来是想写 用nodejs 或者 js 将word文档转为html的脚本, js在IE浏览器下有 new ActiveApplication 对象可以 获取文档 nodejs 获取文档看这篇http://www.jianshu.com/p/68a420a68ded 因为还没时间整理 所以先给...
  • word文档转swf文件,支持64位,好用。含SN。
  • VB批量打开Word文档

    2021-05-18 07:35:56
    摘要:VB源码,文件操作,批量打开文件 VB批量打开文件的例子,本例主要是批量打开Word文档,选择要打开的Word文档,注意可以多选,然后打开选中的Word文档
  • word文档密码破解

    万次阅读 热门讨论 2018-12-20 16:39:12
    有的时候,为了保护word文档不被编辑以及被其他人乱修改,我们会对word文档进行一个密码设置,以此来保护word文档。可是当我们忘记设置的密码怎么办? 我们可以尝试下面的方法: 法一:借助破解工具:Word ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 651,615
精华内容 260,646
关键字:

如何发word文档