Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

### Оптимизация работы с MS-Office через ActiveX для ускорения конвертации в PDF с использованием Delphi и Pascal

Delphi , Технологии , COM и DCOM

Оптимизация работы с MS-Office через ActiveX для ускорения конвертации в PDF с использованием Delphi и Pascal

В последних версиях MS-Office, начиная с версии 2019, наблюдается проблема, связанная с отправкой телеметрических данных при закрытии приложений. Это приводит к задержке в работе фоновых потоков, что существенно замедляет процесс конвертации документов в PDF. Данная проблема была выявлена в приложениях, использующих ActiveX типбиблиотеку для работы с MS-Office документами.

Проблема:

При работе с MS-Office через ActiveX, например, для конвертации документов в PDF, замечено, что фоновые потоки приложений задерживаются на 18-25 секунд. Это связано с тем, что после закрытия приложения MS-Office начинается отправка телеметрических данных. Это подтверждено с помощью инструмента мониторинга ProgMon.

Решение:

Исследования показали, что существует способ ускорить процесс путем отключения отправки телеметрических данных. Это можно сделать, изменяя значение в реестре:

Computer\HKEY_CURRENT_USER\Software\Microsoft\Office\Common\ClientTelemetry

Установка значения 1 для Disable Temetry в виде 32-битного REG_DWORD позволяет сократить время задержки до 3-5 секунд.

Пример кода на Object Pascal (Delphi):

procedure TForm59.ConvertEarlyBinding(const _documentFilePath: string;
                                     bOnlyOpenClose: Boolean = False);
var
    WordApp: ActiveX.TypeLibs.Word.Application;
    WordDoc: ActiveX.TypeLibs.Word.Document;
    oleTrue, oleFalse, emptyVariant: OleVariant;
begin
    oleTrue := True;
    oleFalse := False;
    emptyVariant := EmptyParam;

    // Создание и настройка объекта Word
    WordApp := ActiveX.TypeLibs.Word.coApplication.Create;
    WordApp.Visible := True;

    // Открытие документа
    WordDoc := WordApp.Documents.Open(_documentFilePath, EmptyParam, oleTrue, ...);

    // Если не только открытие, то конвертация в PDF
    if not bOnlyOpenClose then begin
        WordDoc.ExportAsFixedFormat(ChangeFileExt(_documentFilePath, '.pdf'), wdExportFormatPDF, false, ...);
    end;

    // Закрытие активного документа
    WordApp.ActiveDocument.Close(oleFalse, emptyVariant, emptyVariant);

    // Закрытие приложения Word
    WordApp.Quit(false, EmptyParam, EmptyParam);
end;

Альтернативное решение:

Microsoft Office не предоставляет свойств или методов для предотвращения отправки телеметрических данных. Однако, можно обновить реестр или настроить параметры групповой политики, как описано в официальной документации Microsoft.

Важные замечания:

Необходимо понимать, что отключение логирования не удаляет уже собранные данные с компьютера. Для их удаления нужно удалить файлы evt.tbl, sln.tbl, user.tbl, расположенные в директории %LocalAppData%\Microsoft\Office16.0\Telemetry\.

Заключение:

Для оптимизации работы с MS-Office через ActiveX в Delphi и Pascal для ускорения конвертации в PDF, рекомендуется отключить отправку телеметрических данных, изменяя соответствующие параметры в реестре или групповой политике. Это позволит уменьшить задержку при закрытии приложений MS-Office и ускорить процесс конвертации документов.

Создано по материалам из источника по ссылке.

Описание контекста: Оптимизация работы с MS-Office через ActiveX для ускорения конвертации в PDF, используя Delphi и Pascal, путем отключения отправки телеметрических данных.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: COM и DCOM ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2024-12-27 01:53:42/0.0033421516418457/0