Создание формата документа в формате MS Office для раскрытия свойств документа

"Документы" нашего приложения представляют собой отдельные двоичные файлы.

Наши клиенты спрашивают, можем ли мы добавить свойства документов, аналогичные MS Office, в наши файлы документов, чтобы ими было проще управлять пользователями. Под более простым управлением я подразумеваю возможность для проводника Windows отображать общие свойства документа во всплывающих подсказках.

Мои исследования показывают, что мы должны рассматривать OLE Structured Storage как основу для наших файлов данных. Я видел эту технику, альтернативно описанную как структурированное хранилище MS, форматы составных документов OLE 2 и метаданные файлов Windows.

Мои опасения по поводу использования структурированного хранилища OLE заключаются в том, что похоже, что Office 2007 или 2010 больше не используют этот формат файлов, а для структурированного хранилища OLE требуется регистрация компонента ActiveX DSOFILE.DLL, который многие наши клиенты не смогут использовать, поскольку они запускают наше программное обеспечение на заблокированных рабочих станциях, где пользователи не имеют прав администратора для установки программного обеспечения. (Наше прикладное программное обеспечение - это чистое развертывание XCOPY).

Был бы признателен, услышав идеи о том, что наши варианты.

Спасибо малькольм

2 ответа

Решение

Я уверен, что ваш лучший ответ - использовать составной документ OLE.

Microsoft, возможно, перестала использовать это, но это потому, что они перешли на формат файла XML. Если вы не хотите конвертировать из вашего текущего формата файлов в XML, я не думаю, что новый стандарт для тегов будет вам интересен.

Вы могли бы сделать так, чтобы ваше приложение сохраняло два файла: XML-файл только для тегов и один двоичный файл данных, но это просто причиняет боль вашим пользователям. Весь смысл формата составного документа OLE состоял в том, чтобы разрешить объединение нескольких "файлов" в один файл.

Кроме того, я был бы очень удивлен, если бы в современной Windows не было встроенной поддержки составных документов OLE. Я почти уверен, что еще в Microsoft Word 6.0 более десяти лет назад документы сохранялись в этом формате составных документов OLE., Почему для Windows XP или новее требуется дополнительный файл.DLL, чтобы иметь возможность анализировать теги?

Лучшее в использовании составного формата документов OLE заключается в том, что пользовательские теги будут идти вместе с файлом, независимо от того, что: если пользователь записывает файл на файловый сервер, если пользователь удаляет файл в электронном письме, если пользователь записывает файл на компакт-диск, что угодно. (Первый ответ, который я написал, который я удалил, был плохим; даже если бы он работал, он поместил бы пользовательские теги за пределы файла, и чем больше я об этом думаю, тем менее я был бы рад этой мысли.)

Итак, я предлагаю вам попробовать создать составной документ OLE, а затем просто посмотреть на файл в проводнике Windows при стандартной установке Windows XP. Посмотрите, видите ли вы теги без необходимости загружать и устанавливать ActiveX .DLL. Я уверен, что это сработает. (Но я на самом деле больше не занимаюсь Windows, поэтому не могу удобно проверить это для вас.)

РЕДАКТИРОВАТЬ: Хорошо, я только что сделал тест. Я на работе, и у меня есть компьютер с Windows здесь. Я использовал Word 2007 для создания документа и сохранил документ в формате Word 97. Я посмотрел на свойства документа в проводнике Windows; имя автора было видно в тегах. Я добавил текст в "комментарии", а затем открыл файл в Word 2007. Затем я смог просмотреть комментарии (нажмите на кружок значка "офис" в левом верхнем углу, выберите "Подготовить", выберите "Свойства").

Итак, моя теория имеет некоторые доказательства, подтверждающие ее: мне не нужно было устанавливать никакого специального программного обеспечения, мой проводник Windows просто работал с составным документом Word в формате OLE с тегами. (Может случиться так, что Microsoft Office устанавливает некоторые специальные.DLL для использования тегов с Windows Explorer; у меня действительно установлен Microsoft Office 2007 на этом компьютере. Но ваши клиенты, вероятно, также имеют Microsoft Office, так что даже если это так, я все еще думаю это лучшее решение.)

Я предлагаю вам поиск в Google для "OLE составной формат документа" и посмотреть, как написать этот формат. Я нашел пример того, как читать теги здесь: http://support.microsoft.com/kb/186898

В Windows 2000 или более поздней версии вместо использования составного документа OLE вы также можете сохранять итоговую информацию в метаданных файла NTFS, чтобы такие приложения, как Windows Explorer или Windows Desktop Search, могли использовать атрибуты на страницах свойств, во всплывающих подсказках, столбцах и поиске.

Другие вопросы по тегам