相关疑难解决方法(0)

使用OLE和Delphi提高Word文档中搜索替换的性能

经过一些实验后,我最终得到了以下代码,以便在MSWord中执行搜索和替换.此代码在页眉和页脚中也能很好地工作,包括第一页或奇数/偶数页面的页眉和/或页脚不同的情况.

问题是我需要调用MSWordSearchAndReplaceInAllDocumentParts我替换的每个字符串,并且我得到一个不可接受的性能(在4页doc字中大约50个字符串2分钟).理想情况下,它当然应该是"瞬时的".

在处理页眉和页脚之前,我只是在主文档中进行搜索和替换(使用wdSeekMainDocument).在这种情况下,perofmrance是可以接受的(即使很慢).我只是想知道它为什么这么慢:切换视图需要时间吗?通常页眉或页脚包含的单词很少,所以我预计页眉和页脚中的所有搜索和替换都不会使整体性能变得更糟.但这不是我观察到的.

这是代码,在底部我放置了探查器结果:

// global variable (just for convenience of posting to Stack Overflow)   
var
 aWordApp: OLEVariant; // global

// This is the function that is executed once per every  string I replace
function MSWordSearchAndReplaceInAllDocumentParts;
begin
    try
      iseekValue := aWordApp.ActiveWindow.ActivePane.View.SeekView;
      iViewType := aWordApp.ActiveWindow.ActivePane.View.Type;
      if iViewType <> wdPrintView then
        aWordApp.ActiveWindow.ActivePane.View.Type := wdPrintView;
      if aWordApp.ActiveDocument.PageSetup.OddAndEvenPagesHeaderFooter then
      begin
        Try
          aWordApp.ActiveWindow.ActivePane.View.SeekView := wdSeekEvenPagesFooter;
          SearchAndReplaceInADocumentPart;
        Except
            // do nothing ..it was not able to set above view
        end;
        Try
          aWordApp.ActiveWindow.ActivePane.View.SeekView := wdSeekEvenPagesHeader; …
Run Code Online (Sandbox Code Playgroud)

delphi activex word-automation

11
推荐指数
1
解决办法
2417
查看次数

Delphi使用Word ActiveX将doc转换为pdf

有没有人已经使用Word 2007或Word 2010 pdf导出功能编写了将doc或docx转换为pdf的代码?

delphi pdf-generation activex ms-word

5
推荐指数
2
解决办法
9741
查看次数

从OpenOffice保存为pdf

由于我刚刚问了这个问题并得到了非常有用的答复,我想知道是否有人已经使用Open Office中内置的documentTopdf例程来将odt,doc,docx文件保存到pdf.

这里有c#示例,因为在Delphi中直接使用它对很多用户来说都很棒.

pdf delphi openoffice.org

3
推荐指数
1
解决办法
2602
查看次数

如何使用Delphi在OpenOffice文档中插入图像

我正在使用在odt Open Office文档如何搜索和替换的公认解决方案中提到的方法 使用Delphi搜索和替换odt文档中的文本

现在我的要求是用图像替换文本。例如,我的odt文件将具有“ SHOW_CHART = ID”标签,我将从数据库中获取给定ID的图表作为图像文件,然后将其替换为“ SHOW_CHART = ID”。

所以我的问题是如何将图像从文件插入到ODT文档中。我发现另一个链接问同样的问题,但使用Java。 如何使用Java将图像插入OpenOffice编写器文档中? 但我不懂Java。

delphi openoffice-writer

3
推荐指数
1
解决办法
621
查看次数