alexmac
alexmac

Reputation: 4201

Embed word document into ASP.net page and access using VBscript

I have some code that opens a word document using VBScript on an ASP.net page:

set objWord = CreateObject("Word.Application")

objWord.Visible = True

objWord.Documents.Open "c:\inetpub\wwwroot\JSWordTest\test.doc", False, False, False

This works great but opens the word doc in another window. Ideally I would like to make this look as if it is contained in the current page perhaps in an IFrame. I have some other buttons which paste text into the word document when clicked.

I cannot just set the src of the iframe to the word document as need a reference to the word document (objWord) to allow me to paste text into it in real time again using Vbscript to do this.

Not sure if this is possible but any ideas/alternatives welcome?

Requirements: The word doc needs to be displayed from web browser

At the side of the word document will be some buttons which when clicked paste text into it

Upvotes: 2

Views: 8963

Answers (4)

user69820
user69820

Reputation:

You could try saving to HTML format

Const wdFormatHTML = 8

dim doc
set doc = objWord.Documents.open("C:\test.doc")
doc.SaveAs "doc.htm", wdFormatHTML 

' etc ...

and then use that as the source of your iframe document. Bear in mind that when saving to HTML format, Word creates a corresponding resources folder (for images etc), so you might need to take that into account.

Upvotes: 0

alisabzevari
alisabzevari

Reputation: 8126

You can get inspirations from Excel Viewer component. It is like EDraw Office Viewer but free and open source. Currently, it opens office documents only but you can easily change it to work with Word.

Upvotes: 0

Michael Cornel
Michael Cornel

Reputation: 4004

If it is an option to install an ActiveX component at the client machines, you can try EDraw Office Viewer component or the cheapter Ultra Office Control. Both are based on the DSOFramer example by Microsoft and provider similar methods to interface with the documents.

Sample code is given and shows how to trigger dialogs, insert text, etc.

Upvotes: 0

unrealtrip
unrealtrip

Reputation: 670

You can use this technique to get the contents of the Word document without displaying any windows at all.

' 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 ' 

Once you've got the contents of the document in the variable you can do what you want with it as far as writing it out with a document.write or whatever method you want to use.

You can find more detail on the MS Word application object and its methods here: http://msdn.microsoft.com/en-us/library/aa221371(office.11).aspx

Upvotes: 2

Related Questions