Как точно определить, является ли экземпляр SPFile преобразованным файлом?

StackOverflow https://stackoverflow.com/questions/731596

  •  06-09-2019
  •  | 
  •  

Вопрос

Я работал над функцией преобразования документов для преобразования файла docx в файл PDF с использованием MOSS 2007.SPFile.Вызов Convert() выполняется в событии ItemAdded, и событие ItemFileConverted также запускается нормально.Обработка событий, похоже, работает нормально, но свойства IsConvertedFile и SourceLeafName преобразованного экземпляра SPFile не всегда устанавливаются процессом преобразования.Это то, что я пытался использовать, чтобы определить, должен ли быть выполнен вызов SPFile.Преобразовать.

Копаясь в коде для SPFile IsConvertedFile, генерируя свойства converterid и SourceLeafName, кажется, что они основаны на SPFile.Свойства "vti_dttransformerid" и "vti_dtparentleafname".Проблема в том, что эти два свойства не устанавливаются последовательно всякий раз, когда у меня есть код в моем ISPConversionProcessor.Реализация PostProcess(), в которой я надеялся выполнить некоторую последующую обработку файла.Если в методе PostProcess нет кода (только runDefaultPostProcessing = true;заявление) свойства устанавливаются более последовательно.

Здесь у меня есть некоторые дополнительные детали на вики - страницео том, что происходит, но используя .NET Reflector для определения того, где эти поля обновляются, наткнулся на кирпичную стену в OWSTIMER.EXE (Я смог найти все данные для чтения свойств, но даже в службах HtmlLauncher и LoadBalancer эти свойства не упоминались).

Кто-нибудь выполнил полное преобразование документа и использовал SPFile.IsConvertedFile и SPFile.Свойства SourceLeafName успешно?

Это было полезно?

Решение

Если вы не можете доверять API, сохраните преобразованные метаданные IsConverted в пакете свойств для SPListItem .Или, если вы предпочитаете показывать это в пользовательском интерфейсе, добавьте еще одно поле в свой список.Все это должно нормально работать с обработчиком событий.

Это раздражает - выполнять дополнительную работу, но я предполагаю, что могут быть дополнительные метаданные, которые вы можете добавить, которые SPFile в любом случае не смог бы предоставить.

Другие советы

Я создал PDF Converter для SharePoint, но не использовал функциональность Document Converter, поскольку она не соответствовала нашим потребностям и была недостаточно гибкой.

Не уверен, что этот ответ будет разослан как спам, поскольку сейчас я собираюсь связать вас с местом, где вы можете скачать бесплатную пробную версию. Скачайте PDF Converter для SharePoint.

Сейчас я чувствую себя немного грязным, но, возможно, я действительно помог вам ;-)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top