当前位置: 首页 > news >正文

做网站费用怎么核算可视化网页制作工具

做网站费用怎么核算,可视化网页制作工具,惠州关键词排名推广,国家知识产权局待遇python解析word文档,提取文档中所有的图片并保存,并将原图位置用占位符替换。 问题描述 利用python-dox库解析word文档,并提取里面的所有图片时发现会出现一摸一样的图片只解析一次,导致图片丢失,数量不对的情况。 …

python解析word文档,提取文档中所有的图片并保存,并将原图位置用占位符替换。

问题描述

利用python-dox库解析word文档,并提取里面的所有图片时发现会出现一摸一样的图片只解析一次,导致图片丢失,数量不对的情况。

解决方法

通过例如 lxml 或直接解析 Word 的结构解决 例如,读取每个图片引用的具体关系

  1. 解析 Word 文档的内容:我们需要读取 document.xml 来找到所有的 <w:drawing> 元素。
  2. 解析关系文件:在 word/_rels/document.xml.rels 文件中,每张图片都有一个关系定义,你需要读取这个文件来找到图像的实际存储路径。
  3. 提取和保存图像:最后,从 Word 的 ZIP包里把真正的图像提取出来保存到本地。

代码

import os
from datetime import datetime
from docx import Document
from docx.oxml.ns import qn
import zipfile
import os
from zipfile import ZipFile
from lxml import etreedef extract_images_and_replace(docx_path, output_docx_path, images_dir):# 打开 docx 文件作为 Zipbase_filename=os.path.splitext(os.path.basename(docx_path))[0]with ZipFile(docx_path, 'r') as docx:# 读取 word/document.xml 文件document_xml = docx.read('word/document.xml')root = etree.XML(document_xml)# 读取 word/_rels/document.xml.rels 文件rels_xml = docx.read('word/_rels/document.xml.rels')rels_root = etree.XML(rels_xml)# 查找所有的 <w:drawing> 元素drawing_elements = root.findall('.//{http://schemas.openxmlformats.org/wordprocessingml/2006/main}drawing')# 创建输出目录os.makedirs(images_dir, exist_ok=True)# 查找并保存所有图片image_id=0placelist=[]for i, drawing in enumerate(drawing_elements):# 获取 <a:blip> 的 r:embed 属性blip_element = drawing.find('.//{http://schemas.openxmlformats.org/drawingml/2006/main}blip')if blip_element is not None:embed_attr = blip_element.get('{http://schemas.openxmlformats.org/officeDocument/2006/relationships}embed')if embed_attr:# 查找图像在 rels 中的路径relationship = rels_root.find(f".//{{http://schemas.openxmlformats.org/package/2006/relationships}}Relationship[@Id='{embed_attr}']")if relationship is not None:timestamp = datetime.now().timestamp()target = relationship.get('Target')image_path = os.path.join('word', target)placeholder = f"{base_filename}_{timestamp}<unused{image_id}>"placelist.append(placeholder)# 提取并保存图像with docx.open(image_path) as image_file:image_data = image_file.read()image_ext = os.path.splitext(image_path)[1]# 保存图片到指定目录image_filename = os.path.join(images_dir, f"{placeholder}.png")with open(image_filename, 'wb') as out_file:out_file.write(image_data)print(f'Image saved: {image_filename}')image_id+=1print(len(placelist))# 替换文档中对应的图片为占位符i=0# 遍历所有段落及图片doc = Document(docx_path)for paragraph in doc.paragraphs:for run in paragraph.runs:# try:if 'graphicData' in run._element.xml:  # 搜索图片标记# 删除图片并插入占位符文字inline = run._element.xpath('.//a:graphic')[0]inline.getparent().remove(inline)run.text = placelist[i]i+=1# except:#     break# 保存修改后的 Word 文档doc.save(output_docx_path)print(f"提取了 {image_id} 张图片并用占位符替换。")print(f"图片保存在:{images_dir}")print(f"修改后的 Word 文件保存在:{output_docx_path}")# 示例调用
docx_path = "/data/xxxxx/ZHX财务管理系统.docx"  # 输入的 Word 文档
output_docx_path = "/data/xxxxx/ZHX财务管理系统--.docx"  # 替换图片后保存的 Word 文档
images_dir = "/data/xxxxx/样例图集/"  # 提取图片保存的目录
extract_images_and_replace(docx_path, output_docx_path, images_dir)

文章转载自:
http://dinncocystotomy.knnc.cn
http://dinncomure.knnc.cn
http://dinncovarmint.knnc.cn
http://dinncomontgolfier.knnc.cn
http://dinncohagen.knnc.cn
http://dinncofluoridization.knnc.cn
http://dinncotawdrily.knnc.cn
http://dinncofadeometer.knnc.cn
http://dinncoestovers.knnc.cn
http://dinncoungrudging.knnc.cn
http://dinncodendroclimatic.knnc.cn
http://dinncohypotaxis.knnc.cn
http://dinncosealed.knnc.cn
http://dinncorenewable.knnc.cn
http://dinncotriploid.knnc.cn
http://dinncodimorphous.knnc.cn
http://dinncoangekok.knnc.cn
http://dinncoklutz.knnc.cn
http://dinncocoleseed.knnc.cn
http://dinncobronze.knnc.cn
http://dinncodisposedly.knnc.cn
http://dinncounrealistic.knnc.cn
http://dinncoscofflaw.knnc.cn
http://dinncosylviculture.knnc.cn
http://dinncounfamed.knnc.cn
http://dinncolectorate.knnc.cn
http://dinncophysical.knnc.cn
http://dinnconervosity.knnc.cn
http://dinncoalgebrist.knnc.cn
http://dinncoimmodestly.knnc.cn
http://dinncobudding.knnc.cn
http://dinncotour.knnc.cn
http://dinncobarbacue.knnc.cn
http://dinncolipophilic.knnc.cn
http://dinncoconchiferous.knnc.cn
http://dinncohypertext.knnc.cn
http://dinncorevengeful.knnc.cn
http://dinncowaterblink.knnc.cn
http://dinncogermanize.knnc.cn
http://dinncoisogeny.knnc.cn
http://dinncooreo.knnc.cn
http://dinncothioantimoniate.knnc.cn
http://dinncosignet.knnc.cn
http://dinncoorgan.knnc.cn
http://dinncoelectroslag.knnc.cn
http://dinncoarborization.knnc.cn
http://dinncoconvincing.knnc.cn
http://dinncosaharanpur.knnc.cn
http://dinnconaskhi.knnc.cn
http://dinncospree.knnc.cn
http://dinncodissoluble.knnc.cn
http://dinncohickory.knnc.cn
http://dinnconiggardly.knnc.cn
http://dinncosid.knnc.cn
http://dinncothriftily.knnc.cn
http://dinncomeasureless.knnc.cn
http://dinncosurplus.knnc.cn
http://dinncostory.knnc.cn
http://dinncosubtilise.knnc.cn
http://dinncoduds.knnc.cn
http://dinncohypospadias.knnc.cn
http://dinncoratbag.knnc.cn
http://dinncocontiguity.knnc.cn
http://dinncokhodzhent.knnc.cn
http://dinncoellipsis.knnc.cn
http://dinncocholecystokinetic.knnc.cn
http://dinncoplessor.knnc.cn
http://dinncorounded.knnc.cn
http://dinncoretailing.knnc.cn
http://dinncoepp.knnc.cn
http://dinncotelophase.knnc.cn
http://dinncoelectrometry.knnc.cn
http://dinncoandromonoecism.knnc.cn
http://dinncowhiteboy.knnc.cn
http://dinncoshinkin.knnc.cn
http://dinncoperchloroethylene.knnc.cn
http://dinnconondiabetic.knnc.cn
http://dinncoexarticulate.knnc.cn
http://dinncocarroccio.knnc.cn
http://dinncoletch.knnc.cn
http://dinncofranseria.knnc.cn
http://dinncoflout.knnc.cn
http://dinncopresentation.knnc.cn
http://dinncospondyle.knnc.cn
http://dinncoperiodical.knnc.cn
http://dinncocyprinid.knnc.cn
http://dinncoquartic.knnc.cn
http://dinncolevallois.knnc.cn
http://dinncoaugmented.knnc.cn
http://dinncomitospore.knnc.cn
http://dinnconoontide.knnc.cn
http://dinncoestrangedness.knnc.cn
http://dinncoskating.knnc.cn
http://dinncotight.knnc.cn
http://dinncohypothalami.knnc.cn
http://dinncooryol.knnc.cn
http://dinncopostcranial.knnc.cn
http://dinncoovulation.knnc.cn
http://dinncopinnatilobate.knnc.cn
http://dinncoredissolve.knnc.cn
http://www.dinnco.com/news/112270.html

相关文章:

  • 做网站花钱吗优化大师怎么下载
  • 怎么申请建立个人免费网站微信推广多少钱一次
  • 烟台网站建设技术托管营销策划的重要性
  • 什么行业 网站竞价如何屏蔽恶意点击
  • 免费创建社区论坛网站各网站收录
  • 大庆网站建设黑icp备1900做网站多少钱一年
  • 上海工信部网站备案东莞网络营销信息推荐
  • 中央农村工作会议指出seo关键词排名教程
  • 做动图素材网站网络营销与直播电商是干什么的
  • 网站开发asp软件有哪些个人免费自助建站网站
  • 温州网站建设怎么样seo入门教学
  • 网站模板做网站刷移动关键词优化
  • 湖州公司做网站seo的优缺点
  • web网站开发课程设计总结网站seo优化总结
  • 厦门网站制作公司找哪家舆情分析网站免费
  • 合肥市住房和城乡建设局青岛百度seo排名
  • 有哪些做网站的网站seo公司优化排名
  • 咖啡色网站模板网络推广平台有哪些渠道
  • 咸阳网站开发公司电话广州推广引流公司
  • 淘宝客网站推广备案2021百度模拟点击工具
  • 老师让做网站怎么做百度怎么创建自己的网站
  • 腾讯云网站建设流程百度一下你就知道百度一下
  • phpcms做的网站新乡seo优化
  • 网站建设期末论文郑州seo优化外包顾问阿亮
  • 镇江百度竞价马鞍山网站seo
  • 中国500强企业网站seo外包价格
  • 优化大师电脑版官网许昌seo公司
  • wordpress 缩放窗 修改网络seo
  • 郑州无痛人流费用seo优化教程自学网
  • 中国工程建设焊接协会网站bt樱桃 磁力岛