Solved

Manupilate Word Template with ASP or VBSCript

Posted on 2003-11-06
5
519 Views
Last Modified: 2007-12-19
I have a word document named report.doc which i used as a template.This word document  have 2 tables. Each table is 2 X 2. I need to be able to connect to this document by ASP or VBScript. Then insert some data into these tables and save the file to a different name so the original file is not changed. Is there a way I can do this in ASP? Will IIS generate an error since openning word object is an .exe (an out of process method)? If it is how do I fixed this problem? Please send me some code an explination if you can. Thanks!
0
Comment
Question by:nguyen_85
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
5 Comments
 
LVL 58

Expert Comment

by:Gary
ID: 9697086
Why use a template, just create a blank document with the formatting you want, heres an example

http://www.codeave.com/asp/code.asp?u_log=142
0
 

Author Comment

by:nguyen_85
ID: 9697316
To GaryC123. I guess that's another safe way to solve this problem. But with Word it's easier for me to format the text from the Word template and just insert data from the ASP side. I probably use the method you send me if there is no better way. I know opening word is sometime dangerous in IIS! Thanks!
0
 
LVL 58

Accepted Solution

by:
Gary earned 250 total points
ID: 9697343
Recommended against by MS, for many reasons.
0
 
LVL 58

Expert Comment

by:Gary
ID: 9697485
0
 

Expert Comment

by:MarkLapsley
ID: 10217538
Hi

well i do the same sought of thing  what i do is write the info to a txt file open the template and use mail merage to merage the info that i have a macro that prints the word document to a postscript file wich is then picked up my acrobat distiller and printed to a pdf file

you will need some extra asp componets for this
// this delate any old file using ASPExec.Execute companent
 <%Set Executor = Server.CreateObject("ASPExec.Execute")
Executor.Application = "cmd /c del c:\watch\out\" & session("orig")& "fax.pdf"
  Executor.Parameters = ""
  Executor.ExecuteDosApp
  Executor.Application = "cmd /c del F:\www.imi-uk.com\pdfs\" & session("orig") & "fax.pdf"
  Executor.Parameters = ""
  Executor.ExecuteDosApp
Response.Write("<font face='arial' color='#FF0000'>Setting Up </font>")
response.flush

%>
// this makes sure that the previos out of procees is stop
for n=1 to 1000000
next
Set ProcList = Server.CreateObject("ASPsvg.Process")
varArray = ProcList.GetProcessList
ArrayLimit = UBound(varArray) -1
For I = 0 to ArrayLimit
strProcessID = varArray(I)(0)
strProcessName = varArray(I)(1)
if strProcessName="cmd.exe" then
strProcessIDtoKill = strProcessID
if ProcList.Kill(strProcessIDtoKill) then
Response.Write("Setting Up<BR>")
response.flush
else
Response.Write("Preparing<BR>")
response.flush
end if
end if
next
set proclist=nothing
set executor=nothing%>

<%// this writes the inforamtion to a txt file
fieldstring="imi~govinc~ro~ra~jur~prod~dir~shr~sec~dfees~shfees~secfees~curr~orig~not~app~cert"
datastring=session("imiinc") & "~" & session("govinc") & "~" & session("rofee") & "~" & session("ra") & "~" & session("jur") & "~" & session("prod") & "~" & request.Form("dir") & "~" & request.Form("shr") & "~" & request.Form("sec") & "~" & session("dfees") & "~" & session("shfees") & "~" & session("secfees") & "~" & session("bill") & "~" & session("orig") & "~" & request.Form("notarisation") & "~" & request.Form("apostille") & "~" & request.Form("certificate") %>
  <%      Set Executor = Server.CreateObject("ASPExec.Execute")
            Set objFSO = CreateObject("Scripting.FileSystemObject")
      objFSO.CreateTextFile("C:\data\fax.txt")
      Set objIncFile = objFSO.OpenTextFile("C:\data\fax.txt", 8)
      objIncFile.WriteLine(fieldstring)
      objIncFile.WriteLine(datastring)
      objIncFile.Close
      rem ------------------docs---------------------------
Response.Write("<BR>Preparing<BR>")
response.flush%>

  <% // this open word and merges the file the WaitFor.Comp componet allows word to process it documet before and colse them when finished
Set WdApp = Server.CreateObject("Word.Application")
Set WaitObj = Server.CreateObject ("WaitFor.Comp")
WdApp.Documents.Open("C:\data\fax.doc")
strFilename = "C:\watch\out\" & session("orig") & "fax.pdf"
Response.Write "Sending Data<BR>"
Response.Flush%>
  <%
WaitObj.TimeOut = 10
  if WaitObj.WaitForFileExists (strFileName) then
    Response.Write "Waiting for response.....<BR>"
  else
    Response.Write "Connection Failed, please hit reload button to re-send the data<BR>"
response.end
  end if
Response.Flush%>
  <%
//this is the macro for the word doc
Private Sub Document_Open()
Dim fileloc As String
fileloc = "c:\watch\in\" & ActiveDocument.MailMerge.DataSource.DataFields("ordID").Value & "nmapp.ps"
    Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
    wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
    Collate:=True, Background:=True, PrintToFile:=True, OutputFileName:=fileloc, _
    Append:=False
ActiveDocument.Close savechanges = no
End Sub
0

Featured Post

Secure Your Active Directory - April 20, 2017

Active Directory plays a critical role in your company’s IT infrastructure and keeping it secure in today’s hacker-infested world is a must.
Microsoft published 300+ pages of guidance, but who has the time, money, and resources to implement? Register now to find an easier way.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

I was asked about the differences between classic ASP and ASP.NET, so let me put them down here, for reference: Let's make the introductions... Classic ASP was launched by Microsoft in 1998 and dynamically generate web pages upon user interact…
This demonstration started out as a follow up to some recently posted questions on the subject of logging in: http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Q_28634665.html and http://www.experts-exchange.com/Programming/…
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…
Are you ready to implement Active Directory best practices without reading 300+ pages? You're in luck. In this webinar hosted by Skyport Systems, you gain insight into Microsoft's latest comprehensive guide, with tips on the best and easiest way…

749 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question