精华内容
下载资源
问答
  • python替换word中的文字内容 万次阅读 多人点赞
    2018-07-05 14:32:46

    摘要:这篇文章介绍了如何使用python【3.6版本】把pdf文件转换为word文档并替换word文档中的文字内容,这里替换的规则是中英转换或者其它自定义规则

    pdf转换为word

    pdf文件由于很难编辑,因而想要通过编程修改内容有些困难【不是不可能,只是代价比较大,特别是要保留原pdf格式的话】,故而这里介绍一个替换pdf文件文字内容的间接解决方案,即:把pdf文件转换为word然后再编程替换word的文字内容,当然替换完成后想把word转为pdf就简单的多了

    本文这里转换pdf文件介绍四种方法:

    • 使用第三方工具
    • 使用pdfminer3k 解析pdf然后再把内容写入到word中
    • 使用第三方SDK
    • 使用LibreOffice 开发者库

    这里简单说明下几种方法的优劣:

    使用第三方工具的话,有这样两种情况:
    • Online版本,大多可以免费使用,但是转换麻烦,不能编程操作,需要手动实现

    • 软件版本,大多可以批量转换,但是大多转换有限制,需付费才能无限制使用,且不能编程处理

      如果上面的情况符合你的实际需要,那再好不过!当然,不能符合的话,接着往下看

    使用pdfminer3k解析pdf文件

    使用Python抽取PDF文件内容,包括文本、图像、线条等对象

    使用第三方SDK

    这个是一个比较好的选择,然而,SDK大多收费!!!这些SDK一般提供完善的开发者API接口,你可以方便而又简单的调用,楼主这里介绍一个叫做easyConvertPDF,他们提供一个pdf2word.py 的API,使用十分简单,转换效果页令人满意,只是,License太贵了,买不起,当然你可以下载试用

    使用LibreOffice 开发者库

    这个是Micro Office 支持的 Office 开发者库,里面可以实现PDF转换为Word,只是楼主在使用时一致没测试成功,下面给出一段使用代码,你需要先安装LibreOffice 才行


    import os
    import subprocess
    
    for top, dirs, files in os.walk('/my/pdf/folder'):
        for filename in files:
            if filename.endswith('.pdf'):
                abspath = os.path.join(top, filename)
                subprocess.call('lowriter --invisible --convert-to doc "{}"'
                                .format(abspath), shell=True)

    从上面的四种方法中选择一种适合你的方法!

    替换word文字内容

    • 替换word使用的是win32com 的包,使用这个包你需要先安装pywin32

    pip install pywin32

    安装完成后可能会出现如下错误

    ImportError: DLL load failed: win32api, sys, os

    这时你可以通过如下方式解决

    C:\Users\yourname\Anaconda3\Lib\site-packages\pypiwin32_system32这个目录下的pythoncom36.dll 和pywintypes36.dll 拷贝到C:\Users\fanyu\Anaconda3\Lib\site-packages\win32 这个目录下

    正常后编写测试程序
    import os
    import win32com.client
    
    
    # 处理Word文档的类
    
    class RemoteWord:
      def __init__(self, filename=None):
          self.xlApp=win32com.client.DispatchEx('Word.Application')
          self.xlApp.Visible=0
          self.xlApp.DisplayAlerts=0    #后台运行,不显示,不警告
          if filename:
              self.filename=filename
              if os.path.exists(self.filename):
                  self.doc=self.xlApp.Documents.Open(filename)
              else:
                  self.doc = self.xlApp.Documents.Add()    #创建新的文档
                  self.doc.SaveAs(filename)
          else:
              self.doc=self.xlApp.Documents.Add()
              self.filename=''
    
      def add_doc_end(self, string):
          '''在文档末尾添加内容'''
          rangee = self.doc.Range()
          rangee.InsertAfter('\n'+string)
    
      def add_doc_start(self, string):
          '''在文档开头添加内容'''
          rangee = self.doc.Range(0, 0)
          rangee.InsertBefore(string+'\n')
    
      def insert_doc(self, insertPos, string):
          '''在文档insertPos位置添加内容'''
          rangee = self.doc.Range(0, insertPos)
          if (insertPos == 0):
              rangee.InsertAfter(string)
          else:
              rangee.InsertAfter('\n'+string)
    
      def replace_doc(self,string,new_string):
          '''替换文字'''
          self.xlApp.Selection.Find.ClearFormatting()
          self.xlApp.Selection.Find.Replacement.ClearFormatting()
          self.xlApp.Selection.Find.Execute(string, False, False, False, False, False, True, 1, True, new_string, 2)
    
      def save(self):
          '''保存文档'''
          self.doc.Save()
    
      def save_as(self, filename):
          '''文档另存为'''
          self.doc.SaveAs(filename)
    
      def close(self):
          '''保存文件、关闭文件'''
          self.save()
          self.xlApp.Documents.Close()
          self.xlApp.Quit()
    
    if __name__ == '__main__':
     doc = RemoteWord(docx)  # 初始化一个doc对象
     # 这里演示替换内容,其他功能自己按照上面类的功能按需使用
     doc.replace_doc('your string','new string')  # 替换文本内容
     doc.close()

    好了以上就完成了从pdf到word的完整内容,这里楼主附上一个实例:

    楼主需要把pdf文件报表的英文内容替换为中文,也就是等价于翻译,只是翻译是提前做好的,放置在一个match_rule.xlsx的文件中 ,这个文件内容就是两列:原文 译文,然后程序会读取内容并自动替换。

    下面楼主给出代码:

    # 该程序实现把PDF转换为word然后读取word文件中的文字内容并按照特定的规则替换文字
    
    
    
    # -*- encoding: utf8 -*-
    
    
    __author__ = 'yooongchun'
    
    
    # 引入所需要的基本包
    
    import os
    import re
    import xlrd
    import win32com.client
    import logging
    logging.basicConfig(level=logging.INFO)
    
    
    
    # 处理Word文档的类
    
    class RemoteWord:
      def __init__(self, filename=None):
          self.xlApp=win32com.client.DispatchEx('Word.Application')
          self.xlApp.Visible=0
          self.xlApp.DisplayAlerts=0    #后台运行,不显示,不警告
          if filename:
              self.filename=filename
              if os.path.exists(self.filename):
                  self.doc=self.xlApp.Documents.Open(filename)
              else:
                  self.doc = self.xlApp.Documents.Add()    #创建新的文档
                  self.doc.SaveAs(filename)
          else:
              self.doc=self.xlApp.Documents.Add()
              self.filename=''
    
      def add_doc_end(self, string):
          '''在文档末尾添加内容'''
          rangee = self.doc.Range()
          rangee.InsertAfter('\n'+string)
    
      def add_doc_start(self, string):
          '''在文档开头添加内容'''
          rangee = self.doc.Range(0, 0)
          rangee.InsertBefore(string+'\n')
    
      def insert_doc(self, insertPos, string):
          '''在文档insertPos位置添加内容'''
          rangee = self.doc.Range(0, insertPos)
          if (insertPos == 0):
              rangee.InsertAfter(string)
          else:
              rangee.InsertAfter('\n'+string)
    
      def replace_doc(self,string,new_string):
          '''替换文字'''
          self.xlApp.Selection.Find.ClearFormatting()
          self.xlApp.Selection.Find.Replacement.ClearFormatting()
          self.xlApp.Selection.Find.Execute(string, False, False, False, False, False, True, 1, True, new_string, 2)
    
      def save(self):
          '''保存文档'''
          self.doc.Save()
    
      def save_as(self, filename):
          '''文档另存为'''
          self.doc.SaveAs(filename)
    
      def close(self):
          '''保存文件、关闭文件'''
          self.save()
          self.xlApp.Documents.Close()
          self.xlApp.Quit()
    
    
    
    # 遍历找到word文件路径
    
    def find_docx(pdf_path):
      file_list=[]
      if os.path.isfile(pdf_path):
          file_list.append(pdf_path)
      else:
          for top, dirs, files in os.walk(pdf_path):
              for filename in files:
                  if filename.endswith('.docx')or filename.endswith('.doc'):
                      abspath = os.path.join(top, filename)
                      file_list.append(abspath)
      return file_list
    
    
    
    # 替换文本内容
    
    def replace_docx(rule,docx_list):
      len_doc=len(docx_list)
      i=0  # 计数
      for docx in docx_list:
          i+=1
          logging.info('开始替换第 %s/%s 个word文件内容:%s...'%(i,len_doc,os.path.basename(docx)))
          doc = RemoteWord(docx)  # 初始化一个doc对象
          for item in rule:  # 替换
              doc.replace_doc(item[0], item[1])
          doc.close()
    
      logging.info('完成!')
    
    
    
    # 对内容进行排序
    
    
    # 这里因为在进行文本替换的时候涉及到一个长句里面的部分可能被短句(相同内容)内容替换掉
    
    
    # 因而必须先把文本按照从长到短的顺序来进行替换
    
    def sort_rule(rule):
      result=[]
      for item, val in rule.items():
          le=len(item)
          flag = True
          if len(result)>0:
              for index, res in enumerate(result):
                  if len(item) >= len(res[0]):
                      flag=False
                      result.insert(index, (item, val))
                      break
              if flag:
                  result.append((item, val))
    
          else:
              result.append((item,val))
    
      return result
    
    
    
    # 加载Excel,把取得的内容返回,格式:dict{'原文':'译文'}
    
    def init_excel(excel_path):
      logging.info('加载文本匹配规则的Excel:%s' % os.path.basename(excel_path))
      rule={}  # 储存原文和翻译内容
      pdf_path=''
      try:
          book = xlrd.open_workbook(excel_path)  # 打开一个wordbook
          sheet = book.sheet_by_name('Translation')  # 切换sheet
          rows = sheet.nrows  # 行数
          for row in range(rows - 1):
              text_ori=sheet.cell(row, 0).value  # 取得数据:原文
              text_trans=sheet.cell(row,1).value  # 取得数据:译文
              if not re.match(r'^#.+',text_ori):  # 原文不以#开头
                  if text_ori == 'pdf文件(或文件夹)地址':   # 获得pdf文件路径
                      pdf_path=text_trans
                  else:
                      rule[text_ori]=text_trans  # 取得值加入text
      except IOError:
          raise IOError
      logging.info('加载Excel完成!')
    
      return pdf_path, rule
    
    if __name__ == '__main__':
    
      excel_path = './match_rule.xlsx'    # 替换规则的Excel文件地址
      logging.info('正在打开pdf转换软件,请手动转换你的pdf文件!')
      os.popen(r'"./PDF2Word/pdf2word.exe"')
      flag=input('你已经完成pdf文件转换了吗?(y/n):')
      while not flag == 'y':
          logging.info('请先转换pdf!')
          flag = input('你已经完成pdf文件转换了吗?(y/n):')
      pdf_path, rule = init_excel(excel_path)  # 加载Excel,取得内容
      sorted_rule=sort_rule(rule)  # 排序规则:按照由长到短
      docx_list=find_docx(pdf_path)  # 获取docx文件路径
      replace_docx(sorted_rule,docx_list)  # 替换内容
    
      logging.info('程序执行完成!')



    更多相关内容
  • 使用java poi 替换word模板里面的内容

    千次阅读 2019-11-29 14:04:03
    使用java poi 替换word模板里面的内容需求背景功能实现对模板进一步加工,方便我们程序处理java代码验证 需求背景 业务提供了一个word的签名模板,要求根据订单内容替换模板中的关键信息,需要替换内容已明确。 ...

    需求背景

    业务提供了一个word的签名模板,要求根据订单内容替换模板中的关键信息,需要替换的内容已明确。
    在这里插入图片描述

    功能实现

    对模板进一步加工,方便我们程序处理

    第一步,我们需要做的就是对模板进行进一步加工处理,将替换的内容使用固定的标签标志。如下图所示
    在这里插入图片描述
    (使用${}来声明关键词的原因是为了方便查看和防止原文中有相同的单词,类似freemark的标签,非必须的,可根据自己需要加工即可)。

    java代码

     @Override
        public File generateAttorneySignatureFile(Map<String, String> dataMap) throws IOException {
            File exportFile = new File("D:\\tmp\\written+form-模板标记1.doc");
            InputStream ins = new FileInputStream(new File("D:\\tmp\\written+form-模板标记.doc"));
            HWPFDocument document = new HWPFDocument(ins);
            // 读取word的文本内容
            Range bodyRange = document.getRange();
            // 根据第二部加工的key进行替换
            for (Map.Entry<String, String> entry : dataMap.entrySet()) {
                bodyRange.replaceText("${" + entry.getKey() + "}", entry.getValue());
            }
            //写入新文件
            try {
                ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
                document.write(byteArrayOutputStream);
                OutputStream outputStream = new FileOutputStream(exportFile);
                outputStream.write(byteArrayOutputStream.toByteArray());
                outputStream.close();
            } catch (IOException e) {
                Logs.error(e.getMessage(), e);
            }
            return exportFile;
        }
    

    验证

    执行以下代码,进行验证,得到的新的签名文档内容如图所示:

      Map<String, String> map = new HashMap<>();
            map.put("markName", "HE OR SHE");
            map.put("markType", "markType");
            map.put("applyName", "FeianlING");
            wordExportService.generateAttorneySignatureFile(map);
    

    在这里插入图片描述
    done

    展开全文
  • word中如何替换内容 WORD中如何替换文字 材料/工具:word2010 1、打开相应的word文档,比如我们要将文档中的“华为”全部改为“HUAWEI”。 2、点击“编辑”菜单,选择“查找”。 3、出现“查找和替换”...

    在word中如何替换内容 WORD中如何替换文字

    材料/工具:word2010

    1、打开相应的word文档,比如我们要将文档中的“华为”全部改为“HUAWEI”。

    2、点击“编辑”菜单,选择“查找”。

    3、出现“查找和替换”对话框。选择“查找”选项卡,在“查找内容”输入框中输入“华为”。

    4、并勾选“突出显示所有在该范围找到的项目”,word模板中点击“查找全部”按钮。

    5、则文档中所有的“华为”都被选中。

    6、点击“替换”选项卡,在“替换为”输入框中输入“HUAWEI”,点击”全部替换“。

    7、则整个文档中所有需要替换文字的都被替换了。

    在word中,如何进行部分替换

    先选中你要替换的内容所在区域(比如说第一段),然后进行全部替换,然后就会弹出是否搜索其余部分内容的时候,选中否,就可以了

    在word文档中怎样替换文字?

    1、基本替换

    用word替换文本是很简单的:首先打开一个文档,执行“编辑一〉替换”(或按“Ctrl+H”组合键),打开“查找和替换”对话框,在“查找内容”右侧的方框中输入需要替换的字符,在“替换为”右侧的方框中输入替换后的字符,然后单击“全部替换”按钮即可。

    2、格式替换

    如果需要突出文档中某些特定字符,可以通过格式替换的方法将那些字符设置成不同字体格式(如“加粗、倾斜”等)。打开“查找和替换”对话框,在 “查找内容”和“替换为”右侧的方框中输入同样字符,然后将光标定在“替换为”右侧方框中,单击“高级”按钮展开高级选项,单击其中的“格式”按钮,在随后弹出的快捷菜单中,选择“字体”选项,打开“替换字体”对话框,将字型设置成“加粗倾斜”格式,点击“确定”返回,再单击“全部替换”按钮即可。

    3、空行替换

    用Word编辑从网上粘贴过来的文本时,常常含有多余空行,手工删除既累又烦,何不用空行替换的方法呢?打开“查找和替换”对话框,在“查找内容”右侧的方框中输入“^p^p”(p一定是小写格式),在“替换为”右侧的方框中输入“^p”,然后根据空行的多少,反复按几次“全部替换”按钮,就完工了。

    4、图片替换

    如果一篇文档中,多处需要输入某个小图片,那么先在需要输入图片的地方输入某个特殊字母(笔者用的是五笔输入法,所以通常用字母“z”),待文章全部录入完成后,通过“插入一〉图片一〉来自文件”等方法将小图片插入一个到文档中,并选中该图片,执行“复制”操作,再打开“查找和替换”对话框,在 “查找内容”后面的方框中输入字母“z”(默认情况下,可以不考虑大小写问题),在“替换为”后面的方框中输入“^c”,单击“全部替换”按钮就行了。

    5、通配替换

    如果要想将文档中的书名(包含在书名号“《》”之间的部分)统一设置“黑体、红色”,可以利用通配符替换来实现:打开“查找和替换”对话框,展开 “高级”选项,选中其中的“使用通配符”选项,在“查找内容”中输入“《·》”,然后将光标定在“替换为”右侧的方框中,不输入内容,打开word文档“替换字体”对话框,将“中文字体”和“字体颜色”分别设置为“黑体”和“红色”,点击“确定”返回,再按一下“全部替换”按钮即可。

    6、书签替换

    在文档录入时,先将文档中要多次出现的字符(如“比上年同期增长128%”)输入到文档中,然后选中这一特定字符,执行“插入一〉书签”命令,打开“书签”对话框,输入一个便于理解的名称(如“zzb1”),然后依次按“添加一取消”按钮返回。

    以后需要输入该字符时,执行“插入-〉引用-〉交叉引用”命令,打开“交叉引用”对话框,按“引用类型”右侧的下拉按钮,在随后出现的下拉列表中,选择“书签”选项,然后选中其中需要的书签名称,再单击“插入”按钮即可。

    通过这种方法输入的字符,如果对定义的书签内容进行了修改(如“比上年同期增长127.5%”),只要按“Ctrl+A”。组合键选中全文,再按一下F9功能键,后面引用的内容会一次性作出相应的更改,起到文内批量替换的效果。

    7、粘贴替换

    在文档录入时,先将文档中要多次出现的字符(如“比上年同期增长128%”等)输入到文档中,然后选中这一特定字符,执行“复制”操作,再将光标定在需要再次输入此字符的位置上,执行“编辑-〉选择性粘贴”命令,打开“选择性粘贴”对话框,选中其中的“粘贴为链接”选项(其它选项不需要更改),点击“确定”返回。

    这样,重复进行“选择性粘贴”就可以将上述字符插入到文档多处。此时,如果修改了最初的字符内容(如“比上年同期增长127.5%”),则后续词条随之更新,也达到了批量替换的目的。

    8、大小写替换

    如果想将文档中的大(小)写字母,转换成小(大)写格式,可以这样来做:选中需要转换的文档区域,根据转换的实际需要,反复按“shifl+F3”组合键即可。

    格式

    Microsoft Word X (Mac OS X)

    Microsoft Word在当前使用中是占有巨大优势的文字处理器,这使得Word专用的档案格式Word 文件(.doc)成为事实上最通用的标准。Word文件格式的详细资料并不对外公开。Word文件格式不只一种,因为随Word软件本身的更新,文件格式也会或多或少的改版,新版的格式不一定能被旧版的程序读取(大致上是因为旧版并未内建支援新版格式的能力)。微软已经详细公布Word 97的DOC格式,但是较新的版本资料仍未公开,只有公司内部、政府与研究机构能够获知。业界传闻说某些Word文件格式的特性甚至连微软自己都不清楚。

    其他与Word竞争的办公室作业软件,都必须支援事实上最通用的Word专用的档案格式。因为Word文件格式的详细资料并不对外公开,通常这种兼容性是藉由逆向工程来达成。许多文字处理器都有汇出、汇入Word档案专用的转换工具,譬如AbiWord或OpenOffice。(参照文本编辑器当中关于其他竞争软件的说明。)Apache Jakarta POI是一个开放原始码的Java数据库,其主要目标是存取Word的二进制文件格式。不久前,微软自己也提供了检视器,能够不用Word程序就检视Word文件。例:Word Viewer 2003。

    Microsoft office Word 97到Microsoft office Word 2003之前的Word文件格式都是二进制文件格式。不久以前,微软声明他们接下来将以XML为基础的档案格式作为他们办公室套装软件的格式。Word 2003提供WordprocessingML的选项。这是一种公开的XML档案格式,由丹麦政府等机构背书支持。Word 2003的专业版能够直接处理非微软的档案规格。

    跟其它Microsoft Office程序一样,Word可使用固定宏语言(宏语言)来高度定制。(最初是WordBasic,但自从Microsoft office Word 97以来就变成Visual Basic)然而,这种性能也可以在文档中嵌入就像梅利莎蠕虫的电脑病毒。这就是电脑用户需要安装防火墙和反病毒软件的另一个原因。Microsoft's security advice

    人们所知道的第一个感染Microsoft Word文档的病毒叫做概念病毒,一个相对危害很小的病毒,它的出现是为了证明宏病毒出现的可能性。

    如何在Word中全部替换指定内容?

    如果是要用另外的内容覆盖这几页内容,就先复制另外的内容,再选中这几页的内容,再粘贴,这几页内容就被替换掉了。

    如果是要替换这几页中的部分相同文字,就选中这几页内容,再按CTRL+F,再在查找对话框中输入原文字,在替换为对话框中输入被替换成的文字,点全部替换就行了。

    在Word文档中怎样将文字替换成自己要用的格式

    这个用替换,但替换的不是文字,而是格式。

    操作如下:

    打开WORD-编辑-替换工具(或直接用 CTR+H 命令),在替换对话框中输入:

    查找内容:"行" 替换内容:"行"

    点击该对话框下面左侧的"高级"选项,选中"替换为"中的"行"字。

    在对话框最下方出现"格式"、“特殊字符”和“不限定格式”三个小的选项钮,选择“格式-字体”,在弹出的对话框中设置字体为“加粗”,字体颜色为“红色”,确定。

    再回到替换对话框中,点击“全部替换”即可完成上述要求。

    展开全文
  • 接下来,把光标移到“替换为”框中,单击〔特殊字符〕按钮,选择“查找内容”,如下图 这个时候,就会自动插入“^&”,再加上一个顿号,这样就把查找的内容替换成原来的查找内容加上一个顿号了,也就是“^&、”,如...

    这个学期,俺从其他单位来到学校,当起了一名普通的计算机教师,为此,俺特别高兴,备课、上课、批改作业,都非常认真,至少个人认为没有对不住人民,没有误人子弟!

    从一开始就认真记录下自己每上一节课程的心得体会,有啥收获、如何改进教学方法、如何上才能让学生能够最大限度的吸收自己所讲的课程!

    时间一长,心得体会文档就越发多起来了!

    今天晚上,忽然觉得,每一节的标题,似乎不太妥当,应该在“第一节”,“第二节”,“第三节”……等字符后面加上一个顿号较为妥当!

    我一开始,我觉得蛮简单的,使用替换功能就足以搞定!查找所有的“节”字,把它替换成“节、”不就行了吗?于是打开文档,进行了一次全面替换,可是,结果并不如我所料,虽然所有的“第一节”,“第二节”,“第三节”……都变成了“第一节、”,“第二节、”,“第三节、”……,可是全文中其他地方出现的“节”字也变成了“节、”。这可怎么办呢?好几十页呀,总不能一个一个地去手动修改吧? 如下图,为俺的部分文档!

    a850a091f97c1067b83bc444dfefa70c.gif

    上图中,所出现的“节”字不仅大标题有,就连文档内容也有很多地方出现这个字!

    想到自己身为计算机教师,此事若不成,名气安存?

    再想到Word的强大功能,总觉得应该有办法的。还不错,一会儿功夫,果然找到了好办法。

    打开“查找和替换”对话框,选择“替换”标签,在“查找内容”中输入“第节”,然后把光标移到两个字之间,单击下方的〔特殊字符〕按钮(如果没有这个按钮的话,单击〔高级〕按钮就会出现),选择“任意字符”,这时查找的内容就是“第^?节”。

    接下来,把光标移到“替换为”框中,单击〔特殊字符〕按钮,选择“查找内容”,如下图

    ee19b59c6a73d60f2369ff5739b3a441.gif

    这个时候,就会自动插入“^&”,再加上一个顿号,这样就把查找的内容替换成原来的查找内容加上一个顿号了,也就是“^&、”,如下图

    c4993365bac9562210d00d0640baa186.gif

    按下〔全部替换〕按钮,实现完全替换,就可以在“第一节”,“第二节”,“第三节”……等字符的后面全部加上顿号、了,而文档内容中出现的单独的“节”字,去没有被替换,如此,目的达到,讲完收工!

    展开全文
  • Word文档批量替换工具

    万次阅读 热门讨论 2019-07-01 11:25:01
    日常工作中可能会碰到这样的情况,就是需要批量替换一些文件的内容,如合同、产品说明、ISO认证标准化文档(质量手册、程序文件、管理手册)、项目推广方案等,先做批量替换,再进行修改,可以节省大量时间。...
  • 使用aspose-words.jar 实现word文件合并。开源版,下载后可一直使用 1、支持word文档内容部分替换 2、支持word内容合并,包含页眉、页脚、批注等信息 3、doc、docx文件均可支持 4、轻量级,引入jar 包即可引用
  • python docx修改word内容保留图片

    千次阅读 2019-03-22 18:00:05
    修改word中文本,如下代码,保存时会导致word中的部分图片消失 from docx import Document path1 = 'test_in.docx' path2 = 'test_out.docx' file = docx.Document(path1) for parg in file.paragraphs: if ...
  • 我需要帮助替换word文档中的字符串,同时保持整个文档的格式.我正在使用python-docx,在阅读文档之后,它适用于整个段落,所以我放松了格式,如粗体或斜体字.包括要替换的文本是粗体,我想保持这种方式.我正在使用此代码:...
  • 在Django项目开发中需要替换word中表格里的内容以自动生成报告,但各种教程中只有不修改格式替换段落内容,对于表格中单元格的内容替换保留原格式没有找到方法,但是通过分析发现,可以将单元格的cell当作段落来...
  • 1.docx docx 下载命令:pip install docx 代码实现: import docx doc = docx.Document('D:/Pycharm/Company/wrok_test1/1.docx') for paragraph in doc.paragraphs: ... #好高兴为word中的字,111,为要替换的字
  • Office之替换word里的数字

    千次阅读 2019-05-16 10:10:21
    今天帮朋友搞参考文献,遇到个小问题,...选中要替换的文本部分 Ctrl F,替换,勾选使用通配符 替换内容输入[[0-9]{1,3}] 替换为的内容不填 全部替换即可 [[0-9]{1,3}] 意思是1位到3位的数字,两边的是转移符 ...
  • Word书签不但可以帮助读者快速跳转到想要查看的位置,而且可以用做“占位符”,程序员获取“占位符”之后,就可以更新这些“占位符”,即替换书签内容替换模板文档中的书签内容,可以帮助我们快速生成Word报表或...
  • 一:需要引用的主键 ... string fileName = Application.StartupPath + @"\aramexConfig\docx\templateWord.docx";//模板 Dictionary<string, object> aramexShippmentMap = (Dictionary<string, obje..
  • 请记住,始终使用**“查找和替换”**对话框来运行您的正则表达式。同时请记住,如果表达式没有按预期工作,你始终可以按下 CTRL + Z 来撤销您的更改,然后尝试其他表达式。 转置姓名 启动 Word,然后打开一个新的...
  • VBA--word模板标签替换操作

    千次阅读 2014-07-31 00:28:16
    最近项目中有个需求,就是用word生成word,把一份标签对组成的word源材料,放到word模板中。所以就想到用vba来做,可是之前就没有接触过这些啊,连个word排版用的都不怎么好,于是就到下载频道搜索关键词vba。从搜索...
  • POI 替换word文档书签

    千次阅读 2019-08-22 12:03:51
    word按照版本为两种:doc和docx,POI针对这两种操作需要不同的API: doc操作使用HWPFDocument,替换思想就是找到书签的起止位置,对范围内的文本进行替换: public static void docOperate(InputStream ...
  • 对我们来说,正则表达式指的是您可以用来查找和替换文本模式的文本字符和通配符组合。文本字符指的是必须存在于目标文本字符串中的文本。通配符指的是目标字符串中可能各不相同的文本。 试一试! 本节中的步骤...
  • 公司项目最近需要使用操作word文档的功能,对于我来说也是第一次使用Java来操作word,于是在网上去寻找一些好的方法,无意中发现poi-tl这个工具,是真的好用,在此感谢作者,也希望大家多多支持作者。GitHub地址:...
  • 做项目的时候有这样一个需求,我们现在有两个word(docx)文档,一个文档里面放着正文内容,另一个文档是模板,需求是需要将正文内容同时包含样式复制到另一个模板里,因为正文文档里还开启了修订,要求复制过去以后...
  • Word2007的“查找和替换”功能并不仅仅可以对文字进行批量的查找替换,还有很多神奇的功能,比如对插入的图片位置进行批量的查找和调整等等。 今天我们就来试试Word2007的“查找和替换”功能在文字替换外的应用,...
  • Java读取word文档解决方案

    千次阅读 2021-03-03 12:49:33
    java读取word文档时,虽然网上介绍了很多插件poi、java2Word、jacob、itext等等,poi无法读取格式(新的API估计行好像还在处于研发阶段,不太稳定,做项目不太敢用);java2Word、jacob容易报错找不到注册,比较诡异,...
  • 适用于: Word 2016, Word 2013, Word 2010, Word Online, Word Starter, Word Starter ...Word 提供了用于查找文档中的特定内容的多个选项。您可以搜索和替换文本、 图像、 标题、 书签、 或某些类型的格式,如段落
  • PDF内容替换--Python实现

    万次阅读 2017-09-07 12:24:09
    使用python把pdf转换为word然后替换word中的文字内容 摘要:这篇文章介绍了如何使用python【3.6版本】把pdf文件转换为word文档并替换word文档中的文字内容,这里替换的规则是中英转换或者其它自定义规则 pdf...
  • sodngl的专栏03-111670如何将PDF转换为不带乱码的单词如何将PDF转换为Word?将PDF转换为Word不是一项技术性的任务,但是由于许对此问题this昧不清,因此他们认为PDF转换为Word是一个复杂的过程. 实际上,否则,将PDF...
  • Jacob替换word中指定文本

    千次阅读 2013-03-31 11:57:11
    public class JacobWord { private boolean saveOnExit; //word文档 Dispatch doc = null; //word运行程序对象 static ActiveXComponent word; //所有word文档
  • 要用句子中的星号替换单词,Java程序如下:示例publicclassDemo{staticStringreplace_word(Stringsentence,Stringpattern){String[]word_list=sentence.split("\\s+");Stringmy_result="";Stringasterisk_val="";for...
  • 就是将word内容一键粘贴到网页编辑器(在线富文本编辑器)中。Chrome+IE默认支持粘贴剪切板中的图片,但是我要粘贴的文章存在word里面,图片多达数十张,我总不能一张一张复制吧 ? 我希望打开文档doc直接复制粘贴...
  • [实用]【更新中】Java Apache POI 打印Word文档工具(含文本替换,动态表格功能)基于Apache POI对Word进行操作一、基于Apache POI封装的word文档工具V1.0介绍二、Apache POI 知识1. jar包(maven的,这个不多做解释...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,965
精华内容 13,986
关键字:

word替换保留部分内容