Да. Это довольно просто, но, насколько я знаю, не задокументировано (вообще или очень хорошо). Скажем, вы хотите добавить файл .ini в ваш документ Office (.docx, .xslx, .pptx), чтобы «переносить» его вместе с документом (т.е. вы отправляете свой .docx *). 1004 * кому-то по электронной почте и хотите, чтобы ваш файл .ini , который вы добавили, оставался с yourdoc .docx , даже если человек, открывающий DOCX, вносит некоторые изменения, а затем сохраняет их и отправляет обратно вам.
- Переименуйте расширение вашего документа в
.zip . Распакуйте его.
- В корневой папке найдите
[Content_Types] .xml файл и откройте его.
- Прямо под корнем
<Type/>
элемент, добавьте <Default
Extension="ini"
ContentType="custom/ini"/>
(примечание -
для другого файла, просто убедитесь, что
расширение соответствует файлу, который вы
собираюсь добавить и атрибут
Extention
соответствует этому. Для
ContentType
атрибут, который может быть
вообще ничего).
- Теперь добавьте ваш имя файла .ini файл в
пакет. Вы можете добавить его где угодно -
корень, путь / word , новый
папка типа / word / MyIniFiles .
- Далее установите связь между
Ваш файл и документ. если ты
нет, файл не будет нести с
документ. Перейдите к
\ word_rels \ document.xml.rels file,
и добавить под
<Relationships/>
что-то вроде <Relationship
Id="rd1"
Type="http://schemas.microsoft.com/office/2007/relationships/ini"
Target="abcpy.ini" />
где
атрибут Id
- это уникальное имя в вашем Type
(лучше всего использовать rID X или что-то подобное), Type
отражает URI (из
почти все) и Target
относительный путь к файлу, который вы
добавлено. Я добавил abcpy.ini в
/ word папка, которая находится в том же
root как document.xml , так что мой
Относительный путь - это просто имя файла.
Если бы я добавил его в папку под
/ слово , которое называлось myIniFiles ,
Target
будет
myIniFiles / abcpy.ini
- Сохраните все. Распакуйте ваш файл из корня и назовите документ обратно к вашему первоначальному имени и
расширение обратно до .docx . Копировать / вставить поверх оригинального файла. Готово.
Если у вас есть редактор пакетов Open XML (входит в состав VSTO Power Tools для VS2008 или недавно выпущенный автономный для VS 2010), вы можете использовать VS для выполнения некоторых эта работа для вас, но по сути это то же самое. Другая терминология, например, Target
равно Name
и т. Д.
Обратите внимание, что это не какой-то хак. Сами Microsoft использует эту же технику в Office 2010 для изображений, измененных с помощью новых «художественных эффектов» - исходный файл изображения переносится в тип HDPhoto , а измененные изображения сохраняются в формате png или jpg (и это те, которые отображаются в клиенте). HD-фото (с расширением .wdp
) перемещается вместе с документом, но фактически никогда не используется при отображении в Word, PowerPoint и т. Д.