У меня есть код, который открывает текстовый документ с использованием VBScript на странице ASP.net:
set objWord = CreateObject("Word.Application")
objWord.Visible = True
objWord.Documents.Open "c:\inetpub\wwwroot\JSWordTest\test.doc", False, False, False
Это отлично работает, но открывает документ Word в другом окне. В идеале я хотел бы, чтобы это выглядело так, как будто оно содержится на текущей странице, возможно, в IFrame. У меня есть несколько других кнопок, которые при нажатии вставляют текст в текстовый документ.
Я не могу просто установить src iframe в текстовый документ, поскольку мне нужна ссылка на текстовый документ (objWord), чтобы я мог снова вставлять текст в него в реальном времени, используя Vbscript для этого.
Не уверен, возможно ли это, но приветствуются любые идеи / альтернативы?
Требования: Слово "документ" должно отображаться в веб-браузере.
Сбоку от текстового документа будут кнопки, которые при нажатии вставляют в него текст.





Вы можете использовать этот метод, чтобы получить содержимое документа Word, вообще не отображая никаких окон.
' Declare an object for the word application '
Set objWord = CreateObject("Word.Application")
objWord.Visible = False ' Don''t show word '
objWord.Documents.open("C:\test.doc") ' Open document '
objWord.Selection.WholeStory ' Select everything in the doc '
strText = objWord.Selection.Text ' Assign document contents to var'
objWord.Quit False ' Close Word, don't save '
После того, как вы поместили содержимое документа в переменную, вы можете делать с ней все, что хотите, вплоть до записи ее с помощью document.write или любого другого метода, который вы хотите использовать.
Вы можете найти более подробную информацию об объекте приложения MS Word и его методах здесь: http://msdn.microsoft.com/en-us/library/aa221371(office.11).aspx
Если есть возможность установить компонент ActiveX на клиентских машинах, вы можете попробовать Компонент EDraw Office Viewer или более дешевый Ультра офисный контроль. Оба основаны на примере DSOFramer от Microsoft и предоставляют аналогичные методы взаимодействия с документами.
Приведен пример кода, который показывает, как запускать диалоги, вставлять текст и т. д.
Вы можете получить вдохновение от компонента Программа просмотра Excel. Это похоже на EDraw Office Viewer, но бесплатно и с открытым исходным кодом. В настоящее время он открывает только офисные документы, но вы можете легко изменить его для работы с Word.
Вы мог пытаетесь сохранить в формате HTML
Const wdFormatHTML = 8
dim doc
set doc = objWord.Documents.open("C:\test.doc")
doc.SaveAs "doc.htm", wdFormatHTML
' etc ...
а затем используйте это как источник вашего документа iframe. Имейте в виду, что при сохранении в формате HTML Word создает соответствующую папку ресурсов (для изображений и т. д.), Поэтому вам, возможно, придется это учитывать.