1

在 PowerPoint(至少 2007 年,但可能还有其他)中,它拒绝对某些形状的“某些”文本进行拼写检查。

我认为这是形状的类型,所以改变了它们,这并没有解决它。所以我做了一些实验,将我所谓的“受感染”文本移动到几个框中,并看到它以某种方式附加到文本上。

获取一个包含已知感染和未感染部分的非常简单的文件,我将 .pptx 转换为 .zip 并打开 .\ppt\slides\slide1.xml

此处不进行拼写检查的文本附有:

<a:rPr noProof="1" ...

拼写没问题的文本,或在封闭内按下“忽略”的文本:

<a:rPr dirty="0" smtClean="0" ...

和拼写错误的文本,发现:

<a:rPr dirty="0" smtClean="0" err="1" ...

我找到并删除了文件中的所有 noProof="1",将其退回给柜台并打开了演示文稿。并且按照我的预期进行所有拼写检查,找到所有框中的所有错误,而不会损坏文件。

保存后,我重新打开了silde1.xml,发现dirty="0" smtClean="0"还是dirty="0" smtClean="0" err="1"在正确的地方。

现在的问题是,我如何使用这些新发现的知识来修复文件,而无需手动提取所有 slide#.xml 文件,在文本编辑器中打开它们并使用“替换”来修复它们?

提取过程可以自动化,但如果可以从 PowerPoint 中的 VBA 进行,那就更容易了。

谢谢,安德鲁

4

3 回答 3

1

我知道您要求提供有关 PowerPoint 的具体答案,而不是在“某些”区域进行拼写检查。

我想向您推荐一个我使用的名为 Spell Check Anywhere 的程序。它将拼写检查添加到所有 Windows 程序,包括 PowerPoint。因此,您将能够在任何 Windows 程序中进行拼写检查,无论您在何处键入。

拼写检查质量非常高,单词建议比 Word 提供的要好得多。

它还带有快速打字功能。

因此,当您正在寻找 PowerPoint 的解决方案时,该程序将为您提供一个解决您的整个拼写检查需求的解决方案。

谢谢,托默

于 2012-04-15T10:53:29.927 回答
1

很好的发现。不确定是否有办法通过 VBA API 做到这一点。但是您应该能够使用 OpenXML API 来做到这一点。这可能需要编码为 .net 项目。

http://www.microsoft.com/download/en/details.aspx?id=5124

于 2012-04-13T09:48:19.437 回答
1

我终于找到了一种方法来使用脚本(至少是过程的一部分)使用powershell.

  1. .pptx将文件重命名为.zip
  2. 导航\ppt\slides
  3. 提取slide*.xml文件
  4. Windows Powershell
  5. 导航包含提取的 xml 文件的文件夹
  6. 粘贴以下代码:

    $configFiles=get-childitem . *.xml -rec

    foreach ($file in $configFiles) { (Get-Content $file.PSPath) | Foreach-Object {$_ -replace ' noProof="1"', ''} | Set-Content $file.PSPath }

  7. xml文件放回 zip 文件中

  8. .zip将文件重命名为.pptx,
  9. 结果:Powerpoint拼写检查正确的文件。
于 2012-08-28T14:42:59.827 回答