Go Back   CodingForums.com > :: Server side development > ASP

Before you post, read our: Rules & Posting Guidelines

Reply
 
Thread Tools Rate Thread
Enjoy an ad free experience by logging in. Not a member yet? Register.
Old 07-20-2007, 12:49 PM   PM User | #1
new214
New Coder

 
Join Date: Nov 2006
Posts: 16
Thanks: 0
Thanked 0 Times in 0 Posts
new214 is an unknown quantity at this point
Question loading images i n word

Heya all, Im doing an asp page where i can select a button and then display the data in a word file, however I need to be able to display an image next to the data im displaying? how do i do this in asp code?

ive looked on w3schools and on the internet and cant find anything out there?

Only thing w3schools gives is but this wont work when Im loading the asp as a word file.

Code:
<td width="20%"><img border=0 name="pic" src="thebrick.bmp"></td>
anyyy helpp please??
new214 is offline   Reply With Quote
Old 07-20-2007, 04:53 PM   PM User | #2
Spudhead
Senior Coder

 
Spudhead's Avatar
 
Join Date: Jun 2002
Location: London, UK
Posts: 1,856
Thanks: 8
Thanked 110 Times in 109 Posts
Spudhead is on a distinguished road
Post your code.
Spudhead is offline   Reply With Quote
Old 07-20-2007, 04:56 PM   PM User | #3
Daemonspyre
Regular Coder

 
Join Date: Mar 2007
Posts: 505
Thanks: 1
Thanked 19 Times in 19 Posts
Daemonspyre is on a distinguished road
Before you post your code ---

Are you trying to write the image INTO the Word file using ASP, or just next to it, as in a link to a Word file with an image?

If you are trying to write an image into the Word file, there is a very long and complicated process needed to do this.
__________________
Quote:
To say my fate is not tied to your fate is like saying, 'Your end of the boat is sinking.' -- Hugh Downs
Please, if you found my post helpful, pay it forward. Go and help someone else today.
Daemonspyre is offline   Reply With Quote
Old 07-23-2007, 09:19 AM   PM User | #4
new214
New Coder

 
Join Date: Nov 2006
Posts: 16
Thanks: 0
Thanked 0 Times in 0 Posts
new214 is an unknown quantity at this point
Question loading images in word

Yes Im trying to get the image loaded in to the word file when I run the asp code.
I click a button, it loads a word file and it should display the image in that word file-
how do I do this? Any ideas or code, please????
new214 is offline   Reply With Quote
Old 07-23-2007, 01:43 PM   PM User | #5
Daemonspyre
Regular Coder

 
Join Date: Mar 2007
Posts: 505
Thanks: 1
Thanked 19 Times in 19 Posts
Daemonspyre is on a distinguished road
The rub is that you cannot do this easily!

You have to use the Scripting.FileObject and build your Word file using the RTF Specifications from Microsoft.

Here are the basics:

1) Build your Word file locally as you want it seen on the web, including at least a placeholder for the image. Save it as an RTF.

2) Open said RTF in Notepad (not Wordpad) and SELECT ALL > COPY. NOTE: RTF tables are some of the hardest things to code. If you can, leave them out of the equation.

3) In your ASP, PASTE the information.

4) Create a new RTF file with just the image in it.

5) Save the RTF, open it in Notepad, copy out the binary image information.

6) Find the image or placeholder that you want to replace in the RTF, and use the replace() function to put your image BINARY text into the RTF.

7) At the bottom, put a Response.Write("<META HTTP-EQUIV=""REFRESH"" CONTENT=""0;URL=yourfilename.doc"">"). This will force the page to refresh and open your Word document.


That all sounds really complicated, right? Well, it's even worse when you try to implement it. If you have 1 "}" out of place, the whole thing won't work. Keep Notepad open to look at your RTF to see what is wrong.


My thoughts having lived through this:

1) Use OpenOffice to build the RTF for you. Its syntax is a lot less difficult, and since RTF is known by most text-editing softwares (MSWord, WordPad, OpenOffice, StarOffice, and WordPerfect), you won't be stuck fighting with MS specific code.

2) Print this to the Web, then use something like ASP2PDF to convert the Web page into a PDF file. Little more work, but it saves a lot of the RTF headache.

3) Use XML. Downsides? It only really works in StarOffice, OpenOffice, and Word '07. You can make it work for Word '03, but nothing earlier than that.



Hope this helps... Let me know if you need more information.
__________________
Quote:
To say my fate is not tied to your fate is like saying, 'Your end of the boat is sinking.' -- Hugh Downs
Please, if you found my post helpful, pay it forward. Go and help someone else today.
Daemonspyre is offline   Reply With Quote
Old 07-24-2007, 12:30 AM   PM User | #6
miranda
Senior Coder

 
Join Date: Dec 2002
Location: Arlington, Texas USA
Posts: 1,062
Thanks: 4
Thanked 8 Times in 8 Posts
miranda is an unknown quantity at this point
There is an easier way. I recently had to do something very similar.


The part to embed the image is courtesy of http://www.sitepoint.com/forums/showthread.php?t=210521


The code I have below is an example of the image being added entirely through code. it includes the rtf code to create the document. The document seen here is generally created, by my client and sent to them for editing. However by adding the line to write out the Meta refresh tag it will display it on the webpage.

FYI this code is grabbing info from a database to fill in the variables.
Code:
<%
Dim ApplicantName
Dim ApplicantAddress
Dim ApplicantCityStateZip
Dim PositionName
Dim Location
Dim FSO 
Dim Txt
Dim sRTF

'set the font family table we will be using
sRTF = "{\fonttbl {\f0\froman\fcharset0 Times New Roman;}}" 

'name the attachment with the applicants name so that if 2 people are sending at same time there will be no mistakes
Page = Server.MapPath("Temp")& "\offerletter.doc"

'create the attachment
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set Txt = FSO.CreateTextFile(Page, True)
'open a rich text file 
Txt.WriteLine("{\rtf1")
Txt.WriteLine(sRTF)
Txt.WriteLine("{\info {\title Employment Offer Letter}{\author Miranda}}")
'set the top and bottom margins
Txt.WriteLine("\margt2160 \margb2160")

'set the font size and font family,    each # in the font size = 1/2 pt
Txt.WriteLine("\fs24\f0")
'JPEG Header thing
Txt.WriteLine "{\*\shppict{\pict\jpegblip"

'Our JPEG file to read   thsi says to go to the root directory of the website and then work up from there
Set oPic = FSO.OpenTextFile(Server.MapPath("\") & "\images\banner.jpg", 1, False)

'Transform binary to a BLIP
sData = ""
Do While Not oPic.AtEndOfStream
	sData = sData & LCase(ZeroPad(Hex(Asc(oPic.Read(1))),2))
	If Len(sData) Mod 128 = 0 Then
		Txt.WriteLine sData
		sData = ""
	End If
Loop

If Len(sData) > 0 Then
	Txt.WriteLine sData
End If

'End of JPEG Header
Txt.WriteLine "}}"
Txt.WriteLine("\par " & ApplicantName & " \tab \tab \tab \tab \tab \tab \tab " & DATE()) 
Txt.WriteLine("\par " & ApplicantAddress)
Txt.WriteLine("\par " & ApplicantCityStateZip) 
Txt.WriteLine("\par") 
Txt.WriteLine("\par") 
Txt.WriteLine("\par") 
Txt.WriteLine("\par")
Txt.WriteLine("\par")  
Txt.WriteLine("\par Dear " & ApplicantName & ":")
Txt.WriteLine("\par")
'set the paragraph and justify the text
Txt.WriteLine("\par \qj After careful review of the candidates who applied for the position of " & PositionName & " at the " & Location & ", you have been selected as the applicant whose qualifications best match our current needs.  Therefore, I am pleased to offer you this part-time non-exempt position at an hourly wage of <pay>.  Your first day in this position will be <Date>, and you will be scheduled (for approximately <#> hours per week/from <time> to <time> on <days>/on an as-needed basis).") 
Txt.WriteLine("\par")  
Txt.WriteLine("\par \qj If you are a seasonal employee, please note that after the end of the season, you will need to discuss the re-application process for the next season with your supervisor, as we cannot guarantee future seasonal employment.")
Txt.WriteLine("\par") 
Txt.WriteLine("\par \qj You will be provided with a job description for " & PositionName & ", a Part-Time Employee Handbook, payroll schedule, dress code and other information.")
Txt.WriteLine("\par") 
Txt.WriteLine("\par We look forward to working with you! ")
Txt.WriteLine("\par") 
Txt.WriteLine("\par Sincerely,") 
Txt.WriteLine("\par") 
Txt.WriteLine("\par") 
Txt.WriteLine("\par") 
Txt.WriteLine("\par <name>") 
Txt.WriteLine("\par <title>")
'close the rich text file
Txt.WriteLine("}") 
Txt.Close
Set Txt = Nothing
Set FSO = Nothing

Response.Write("<META HTTP-EQUIV=""REFRESH"" CONTENT=""0;URL=temp/offerletter.doc"">") 

'create email and send email with the attachment
Set oMail = Server.CreateObject("CDO.Message")
With oMail
	.From = sFrom
	.To = sAdminUser
	.Subject = "Offer Letter For " & ApplicantName
	.TextBody = "An offer letter has been generated for " & ApplicantName & " for the " & PositionName & " job."
	.AddAttachment Page
          '.Send()
End With

Set oMail = Nothing

'add a delay to make sure the email is sent before we delete the attachment
'for i = 1 to 100000
'	Timer = i
'Next


'delete the attachment
'If FSO.FileExists(Page) Then
'	FSO.DeleteFile Page,True	
'End If

Set FSO = Nothing

'notify the user that the file was generated and sent
'Response.Write "Offer letter has been generated and sent to Human Resources."
%>
miranda is offline   Reply With Quote
Old 07-24-2007, 01:35 PM   PM User | #7
Daemonspyre
Regular Coder

 
Join Date: Mar 2007
Posts: 505
Thanks: 1
Thanked 19 Times in 19 Posts
Daemonspyre is on a distinguished road
Miranda,

Your way is a little easier than mine, but I incorporate things like First Page Headers and Footers, tables, and images with "OTHER" layout specifications, so your way isn't going to [easily] address those more advanced techniques. As I wasn't sure what new214's Word file looked like, I wanted to be able to provide as much Word functionality as I could.

However, I will admit that your way of grabbing the image from the server and building it out that way is much better!

Thanks for that snippet!
__________________
Quote:
To say my fate is not tied to your fate is like saying, 'Your end of the boat is sinking.' -- Hugh Downs
Please, if you found my post helpful, pay it forward. Go and help someone else today.
Daemonspyre is offline   Reply With Quote
Reply

Bookmarks

Jump To Top of Thread


Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 07:44 PM.


Advertisement
Log in to turn off these ads.