阻止 Word 2010 保存 o:gfxdata base64 或 uuencoded VML?

2023-12-26

我正在处理包含多个绘图画布的 .docx 文件,其中插入了图像以及在 Word 2010 中绘制的一些线条和箭头。我使用的是没有兼容模式的 2010 格式。

Word 插入一个o:gfxdata属性到每个v:shape and v:group元素并用 ascii 编码的东西填充它。根据我的阅读,它可能是描述以下内容的 VML 的副本v:shape or v:group。我不知道我是否只是不知道要查找什么,但我无法确定这些数据的用途,因为删除这些数据对我在 Word 2003、2007 或 2010 中阅读或编辑文档的能力没有明显影响。

它确实将 document.xml 膨胀到几乎是(表面上)所需大小的两倍。这相当会减慢 OpenTBS 的处理速度,因此如果可能的话,我想将其删除。有谁知道如何告诉 Word 2010 停止保存这些额外数据?或者说它是做什么用的?我真的很难找到任何关于它的文档这个帖子 http://answers.microsoft.com/en-us/office/forum/office_2010-word/word-2010-file-bloat/80f77059-10fa-4cb7-8bd2-ffd67e260761.

Edit:

这里有一个示例.docx http://www.sarahkempdesigns.com/now/wp-content/uploads/2013/01/ogee_washer_example.docx。 document.xml 约为 141KB,OpenTBS 平均需要 10.35 秒来创建一个包含该文件作为子模板 21 次的文件。如果我删除所有 o:ogfxdata 属性,文件大小将减少到约 37KB,并且 OpenTBS 只需 2.99 秒即可生成相同的文件。

Edit 2:

经过进一步调查,删除 o:gfxdata 似乎可能会导致安装了较旧兼容包的 Word 2003 拒绝该文件,并出现以下错误:

“这是预发布版本的兼容包,可以打开 仅预发布 Office 2007 文件。您想检查是否有更新的 兼容包的版本?”

我已经能够通过安装较新的兼容包来打开该文件 - 尽管它会提示用户不兼容并转换文件以便打开它。这不会损坏我的文件,但需要注意。


属性o:ogfxdata网络上的记录很少。 根据您的调查,这是某种兼容性额外信息。

您可以使用 OpenTBS 删除模板中的这些属性。 可以在模板上进行一次清理,无需任何合并,然后将清理后的模板保存为新模板。或者您可以在每次打开模板时执行清理。

清理 DOCX 文件:

while ($x = clsTbsXmlLoc::FindStartTagHavingAtt($TBS->Source, 'o:gfxdata', 0) ) {
  $x->ReplaceAtt('o:gfxdata', '');
  $TBS->Source = str_replace(' o:gfxdata=""', '', $TBS->Source);
}

请注意,该类clsTbsXmlLoc随 OpenTBS 提供且未记录。 该代码应该从 OpenTBS 1.8.0 开始工作。 (目前处于稳定测试版本)。

我注意到自从属性o:gfxdata被删除,当您编辑 docx 时它们不会立即返回。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

阻止 Word 2010 保存 o:gfxdata base64 或 uuencoded VML? 的相关文章

  • 使用 VBA 从 Excel 激活 Word 窗口

    我正在尝试从 Excel 访问 MS Word 窗口 我找到了访问新 Word 文档或特定文档的方法 例如将 Excel 范围内的文本复制到 Word 文档 https stackoverflow com questions 2006077
  • 基于现有模板生成Word文档的最佳方法是什么

    TL DR 我可以使用 NET 生成 Word 文档 如 XAML ItemTemplates 吗 我发现很难找到一个满足我所有要求的解决方案 所以我想我会把它扔到 stackoverflow 希望有人能指导我 非常感谢 简单来说 我需要根
  • Word 和 Python - 创建目录

    我正在使用 python 的 pywin32 client 扩展并构建 Word 文档 我尝试了很多很好的方法来生成目录 但都失败了 我认为我想要做的是调用 ActiveDocument 对象并使用 MSDN 页面中的以下示例创建一个对象
  • C# 中的 MS Word 插件文本更改事件

    我有一个 Microsoft Word 插件 可以在文本中查找相似的单词 但是当我单击按钮时 我的问题是 当用户输入单词时如何调用函数 换句话说 当用户键入以获取当前单词并处理它并获取它的相似单词时 我想要一个像 TextChange 或
  • 查找字符串中的所有字符串

    我通过 http 请求响应文本获取 StrTxt 作为 html 字符串 我想找到 StrTxt 中所有出现的 字符串 像这样的东西 for each string in StrTxt StrTxt all matched strings
  • 从 Word OLE 应用程序对象获取应用程序标题

    有没有办法从 Word Application OLE 对象获取窗口标题 我想用它来尝试使用窗口FindWindow 我正在创建一个 OLE 对象并添加一个现有文档 如下所示 App CreateOLEObject Word Applica
  • 从包含合并单元格的表格中删除列

    我正在尝试从具有水平合并单元格的表中删除列 Selection MoveEnd Unit WdUnits wdCell Count 3 Selection Columns Delete 即使列被删除 合并的单元格也会在此过程中被删除 留下一
  • 如何在VB.net中读取PDF文件或在VB.net中将PDF转换为word文档

    我需要使用 VB net 编写的应用程序阅读 PDF 中的文本 目前最好的方法是什么 我也愿意先将 PDF 转换为 Word 文档 然后阅读 iTextPdf 看起来是一个很好的起点 开源和 C 所以任何示例都应该可以移植到 vb net
  • 如何打开嵌入的资源word文档?

    我的项目中有一个嵌入的 Word 模板文档 我将其添加为资源 Resources resx gt 添加资源 gt 添加现有文件 现在我想打开它 如下所示 Microsoft Office Interop Word Application a
  • Word JS API:扩展范围

    在努力解答的同时这个问题 https stackoverflow com a 51159442 3077495我真的希望能够将范围扩展特定数量的字符 在 COM API 中我会使用Range MoveEnd 是否有我在 JS API 中没有
  • 如何使用 Microsoft.Office.Interop.Word.Document.PrintOut() 将 docx 打印到特定打印机

    这似乎是一个简单的需求 但由于某种原因我找不到如何实现这一点 我有这样的代码 Microsoft Office Interop Word Application word new Microsoft Office Interop Word
  • 使用 C# 中的互操作将宏插入并运行到 Word 中

    如何使用 C 中的 Interop 将宏插入并运行到 Word 文档中 using System Runtime InteropServices using Microsoft Vbe Interop using Word Microsof
  • Python win32com - 自动化 Word - 如何替换文本框中的文本?

    我正在尝试使用 Python 自动化 Word 来替换 Word 文档中的文本 如果重要的话 我使用的是 word 2003 和 Python 2 4 下面我的替换方法的第一部分适用于除文本框中的文本之外的所有内容 文本只是没有被选择 我注
  • 如何使用 apache poi 将 .docx 转换为 .doc

    我需要知道如何转换 docx to doc using apache poi 也许使用XWPFDocument HWPFDocument课程 如果无法实现 请提供替代解决方案 使用 LibreOffice 通过 JODConverter 驱
  • 如何将参数传递给 OLE 自动化对象(例如 MS Word)

    这主要是一个Delphi语法相关的问题 调用 OLE 对象的方法时 我需要将参数设置为 True 我需要在Word Automation中设置 这是来自词参考 http support microsoft com kb 285885 en
  • 如何使用 PHP 在文本区域中显示 Word 文档?

    我试图使用 com 类测试代码来显示 Word 文件 但我似乎无法得到答案并且仍在搜索 我遇到错误 有时程序根本不显示任何内容 请给我一些想法 我正在使用 PHP 4 如果站点托管在装有 Word 的 Windows 计算机上 您可以使用
  • VBA写入Word,更改字体格式

    我正在 Excel 中编写 VBA 脚本 以将基于某些表格的文本输出到 Word 文档 在大多数情况下 一切都很顺利 我在 stackoverflow 的帮助下自学 我有一个相当长的代码 因此将其全部复制到这里会很困难 我将尝试展示相关部分
  • Office JavaScript API:突出显示文档中的文本

    我正在使用 Microsoft Office JavaScript API 开展一个业余项目 我一直依赖着文档 https learn microsoft com en us office dev add ins reference jav
  • 将表行从 Word 文档复制到现有文档表特定单元格

    我正在寻找一个宏 它将内容从一个 Word 文档中的表格复制到另一个现有 Word 文档中的表格到特定单元格中 从第 5 行开始 复制后面的所有行并将其粘贴到现有文档中的第 5 行 这可能吗 在此输入图像描述 https i stack i
  • 在 MS Word 中运行外部 vba 代码

    我可以将外部代码链接到 Word 文档吗 我有很多带有宏的 Word 文档 VBA 代码 全部使用相同的代码 我希望代码从外部源运行 而不是从所有这些文档中运行 这样 如果我必须更新代码 我只有一个地方需要更新 您可以创建一个模板并将其放入

随机推荐

  • ASP.NET 中的 JWT 令牌验证

    我正在 ASP NET 中编写一个 API 它公开两个端点 一个用于生成 JWT 令牌 另一个用于验证给定的令牌 令牌生成似乎工作正常 HttpPost public IHttpActionResult Token var headerAu
  • 如何使用 redux 从深度嵌套的子组件调用父组件中的函数

    class Parent extends React Component constructor props super props this clicked this clicked bind this getChildrenValues
  • 如何使用powershell从网络读取XML文件

    当我使用 URL 连接到 HP ILO 时 http ilo ip xmldata item 全部 http ilo ip xmldata item All它返回以下格式的 XML 文件
  • 有没有办法从 AIFF 文件中删除 IDV 标签?

    我正在为在 Ubuntu 服务器上运行的 Rails 应用程序开发后端任务系统 在将上传的 AIFF 文件转换为 FLAC 之前 我需要从中删除所有可能存在的标签 我怎样才能做到这一点 TagLib Ruby 目前尚未涵盖 AIFF 是否有
  • 如何在 flutter 中获取我的 .db 文件或文件路径?

    我已经在名为 cities db 的文件中恢复了一些信息 并将其放在项目路径 assets 中 你能告诉我如何获取它吗 安装应用程序后 我可以在路径 data data pkgName code cache xxx xxx build fl
  • ASP.Net MVC:IAuthorizationFilter/Attribute 首选登录安全检查?

    IAuthorizationFilter 与属性相结合是在控制器运行进程之前检查用户是否登录的首选方法吗 由于我是 MVC 新手 我一直在尝试找出如何处理在 WebForms 中完成的情况 我昨天遇到的问题是根据是否登录来检查用户是否能够查
  • Xslt 组父/子

    我在从 xml xslt 转换中获取以下结果时遇到问题
  • 如何使用请求来衡量下载速度和进度?

    我在用requests下载文件 但对于大文件 我需要每次检查磁盘上文件的大小 因为我无法以百分比显示进度 而且我还想知道下载速度 我该怎么做呢 这是我的代码 import requests import sys import time im
  • OpenCL:SIMT执行模型的基本问题

    SIMT 架构的一些概念和设计我仍然不清楚 根据我所看到和阅读的内容 不同的代码路径和 if 一起是一个相当糟糕的主意 因为许多线程可能会同步执行 那么这究竟意味着什么呢 怎么样 kernel void foo int flag if fl
  • 如何逐行读取文本区域 HTML 标记

    我有一个文本区域 其中每行都包含整数值 如下所示 1234 4321 123445 我想检查用户是否确实输入了有效值 而不是一些有趣的值 如下所示 1234 987l 为此 我需要逐行读取文本区域并验证它 如何使用 javascript 逐
  • Flutter Android 警报管理器不工作

    我已经安装了Android 闹钟管理器 https pub dartlang org packages android alarm manager按照链接中的说明将插件添加到我的 Flutter v1 0 0 应用程序中 但是当我尝试使用A
  • 无法在ubuntu v-20.04.1中安装nodejs

    我正在尝试使用此命令安装 nodejs 版本 14 15 4 apt install nodejs 14 15 4 但我收到这个错误 E 找不到 nodejs 的版本 14 15 4 我在这个命令中犯了什么错误 或者有什么更好的安装方法吗
  • 如何修复 Angular 6 中文件上传时出现的 415 不支持的媒体类型

    我负责 Net Core Web Api 和 Angular 应用程序 我创建了一个控制器 它将图像链接到数据库中的项目 HttpPut Action id public async Task
  • 如何对UDP协议进行拥塞控制?

    我有一个自定义的 UDP 协议 具有多个发送器 接收器 旨在尽可能快地发送大文件 它是基于客户端 服务器的 如何检测 LAN 上的拥塞情况以降低 UDP 数据包的发送速率 编辑 请不要评论UDP的使用是否合适 该协议使用 UDP 但在数据包
  • Java 中的 DI 没有注释?

    有没有什么方法 现有框架 可以在 Java 中配置 DI 而不必向 不属于 的类添加注释 在我的研究中 看起来要完成构造函数注入 我们需要向构造函数添加一些注释 如下所示 Inject or Autowired for Spring Boo
  • 无法对“XMLHttpRequest”执行“发送”

    我正在开发一个使用ajax 的Cordova 应用程序 我的问题是 在调试中 应用程序正在运行 但是当我构建一个版本时 我收到了错误 readyState 0 status 0 statusText NetworkError Failed
  • 如何使 type="number" 只为正数

    目前我有以下代码
  • 在 TeamCity 构建步骤中获取构建作业 URL

    我有一个 Microsoft Teams Webhook 当 TeamCity 构建失败时它会提醒我 我想知道如何获取当前 TeamCity 版本的 URL 以便可以将此信息传递到我的 webhook 仅使用手头的参数 您就可以将 uri
  • 如何使用 Ajax 和 Jquery 从 PHP 数据库中提取信息,并使用该信息填充元素?

    我正在调整一个网站 以便员工更轻松地编辑产品 现在 必须有人登录数据库并更改价格 然后必须有人更改网站本身的物理 html 因此 我正在编写代码 从数据库中提取所有产品 并将它们显示在可以编辑的页面上 我认为用 Ajax 来做所有事情都是最
  • 阻止 Word 2010 保存 o:gfxdata base64 或 uuencoded VML?

    我正在处理包含多个绘图画布的 docx 文件 其中插入了图像以及在 Word 2010 中绘制的一些线条和箭头 我使用的是没有兼容模式的 2010 格式 Word 插入一个o gfxdata属性到每个v shape and v group元