display pdf in browser from byte array c# : Rotate all pages in pdf control Library platform web page asp.net wpf web browser Driving%20Word%20and%20Excel%20from%20Visual%20FoxPro1-part1941

3
rd
Annual Southern California Visual FoxPro Conference
Sponsored by Microcomputer Engineering Services, LLC 
Copyright 1999, Tamar E. Granor 
11 
Manipulating Text 
The Text property of Range and Selection contains whatever text is in the specified area. 
To import document contents, create an appropriate Range and read its Text property, like 
this: 
oRange = oWord.ActiveDocument.Paragraphs[7].Range 
cParagraph7 = oRange.Text 
Text also lets you add or change the document contents. You can add text by assigning it to 
the Text property.  
oRange.Text = "This is a new sentence." 
You can also add the text to whatever's already there. Simple text manipulation does the 
trick. 
oRange.Text = oRange.Text + "Add text at the end." 
or  
oRange.Text = "Add text at the beginning " + oRange.Text  
Another possibility is to read text into VFP, manipulate it in some way and write back.  
cMakeUpper = oRange.Text 
cMakeUpper = UPPER(cMakeUpper) 
oRange.Text = cMakeUpper 
That example can be shortened to a single line, like this: 
oRange.Text = UPPER(oRange.Text) 
Using this approach, we can send the data from a record to a new, blank document: 
USE _samples + "\TasTrade\Data\Customer" 
LOCAL oDocument, oRange 
oDocument = oWord.Documents.Add()  && Use the Normal template 
oRange = oDocument.Range() 
oRange.Text = Customer_ID + ": " + Company_Name  
oRange.Text = oRange.Text + "Attn: " + TRIM(Contact_Name) + ; 
" - " + Contact_Title  
oRange.Text = oRange.Text + Address  
oRange.Text = oRange.Text + TRIM(City) + " " + TRIM(Region) + ; 
Postal_Code  
oRange.Text = oRange.Text + UPPER(Country) 
Because Word always keeps a paragraph marker (CHR(13)) at the end of the document, 
when executing this code, it adds a paragraph marker after each addition to oRange.Text. 
In other situations (including the examples below), you need to add the paragraph marker 
explicitly. 
Of course, building a document by composing a single string doesn't take advantage of the 
special capabilities of Word. Range's InsertAfter and InsertBefore methods let you add text 
at the end or beginning, respectively, and expand the range to include the new text. 
Here's an alternative, faster approach to the example: 
#DEFINE CR CHR(13)  
USE _samples + "\TasTrade\Data\Customer" 
LOCAL oDocument, oRange 
Rotate all pages in pdf - rotate PDF page permanently in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Users to Change the Rotation Angle of PDF File Page Using C#
rotate pdf pages and save; rotate pages in pdf and save
Rotate all pages in pdf - VB.NET PDF Page Rotate Library: rotate PDF page permanently in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
PDF Document Page Rotation in Visual Basic .NET Class Application
rotate all pages in pdf file; how to save a pdf after rotating pages
3
rd
Annual Southern California Visual FoxPro Conference
Sponsored by Microcomputer Engineering Services, LLC 
Copyright 1999, Tamar E. Granor 
12 
oDocument = oWord.Documents.Add()  && Use the Normal template 
oRange = oDocument.Range() 
oRange.InsertAfter(Customer_ID + ": " + Company_Name + CR) 
oRange.InsertAfter("Attn: " + TRIM(Contact_Name) + ; 
" - " + Contact_Title + CR) 
oRange.InsertAfter(Address + CR) 
oRange.InsertAfter(TRIM(City) + " " + TRIM(Region) + ; 
Postal_Code + CR) 
oRange.InsertAfter(UPPER(Country)) 
In my tests, the InsertAfter version was one-and-a-half times to twice as fast as the 
concatenation method. 
Moving in a Range or Selection 
Besides changing a range or selection's content, you may need to modify its extent. A 
number of methods change the area covered by a range or selection. One of the simplest is 
the Move method, which changes the boundaries of the range or selection. 
Move accepts two parameters. The first indicates the unit of movement 
you can move by 
characters, words, paragraphs, rows in a table, or the whole document. The second 
parameter tells how many of the specified units to move 
a positive number indicates 
forward movement (toward the end of the document), while a negative number means 
backward movement (toward the beginning of the document).  
In all cases, the range or selection is collapsed to a single point before moving. When 
moving forward, the range or selection is collapsed to its end point, then moved; when 
moving backward, it's collapsed to its beginning point before moving. 
Constants from the wdUnits group are used for the units of movement. Table 1 shows the 
values for this group that can passed to the Move method. VFP constant definitions for 
these, as well as for other Word constants used in these notes, are in the file Word.H on the 
conference CD. The notes use the constants for readability. 
Constant 
Value  Description 
wdCharacter 
One character. 
wdWord 
One word. 
wdSentence 
One sentence. 
wdParagraph 
One paragraph. 
wdSection 
One section of a document. (Word allows you to divide 
documents into multiple sections with different formatting.) 
wdStory 
The entire length of whichever part of the document you're 
in. Word considers the main body of the document to be 
one "story," the header to be another "story," the footnotes 
to be a third and so forth. 
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
NET example for how to delete several defined pages from a PDF document Dim detelePageindexes = New Integer() {1, 3, 5, 7, 9} ' Delete pages. All Rights Reserved
pdf rotate single page; how to rotate all pages in pdf in preview
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
doc2.InsertPages(pages, pageIndex) ' Output the new document how to use VB to insert an empty page to a specific location of current PDF file All Rights Reserved
pdf save rotated pages; saving rotated pdf pages
3
rd
Annual Southern California Visual FoxPro Conference
Sponsored by Microcomputer Engineering Services, LLC 
Copyright 1999, Tamar E. Granor 
13 
wdCell 
12 
One cell in a table. 
wdColumn 
One column of a table. 
wdRow 
10 
One row of a table. 
wdTable 
15 
The entire space of a table. 
Table 1 Word units 
The constants in the wdUnits group represent portions of a document. 
To create a range at the end of the document, you can: 
oRange  = oWord.ActiveDocument.Range() 
oRange.Move( wdStory, 1) 
To create the same document based on the Customer table as in the examples above, use 
this code: 
#DEFINE CR CHR(13) 
#DEFINE wdStory 6 
USE _samples + "\TasTrade\Data\Customer" 
LOCAL oDocument, oRange 
oDocument = oWord.Documents.Add()  && Use the Normal template 
oRange = oDocument.Range() 
oRange.Text = Customer_ID + ": " + Company_Name + CR 
oRange.Move(wdStory) 
oRange.Text = "Attn: " + TRIM(Contact_Name) + ; 
" - " + Contact_Title + CR 
oRange.Move(wdStory) 
oRange.Text = Address + CR 
oRange.Move(wdStory) 
oRange.Text = TRIM(City) + " " + TRIM(Region) + ; 
Postal_Code + CR 
oRange.Move(wdStory) 
oRange.Text = UPPER(Country) 
In terms of speed, this version comes out in between the concatenation and insert versions. 
The MoveStart and MoveEnd methods let you change one boundary without affecting the 
other. Collapse lets you reduce a range or selection to a single point. It takes one 
parameter, indicating the direction of the collapse. Passing the constant wdCollapseEnd, 
(with a value of 0) collapses the range or selection to its end point (the point closest to the 
end of the document). Passing wdCollapseStart (whose value is 1) reduces the range or 
selection to its starting point. 
The example can be rewritten yet again to use Collapse to control the range: 
#DEFINE CR CHR(13) 
#DEFINE wdCollapseEnd 0 
USE _samples + "\TasTrade\Data\Customer" 
LOCAL oDocument, oRange 
oDocument = oWord.Documents.Add()  && Use the Normal template 
oRange = oDocument.Range() 
oRange.Text = Customer_ID + ": " + Company_Name + CR 
C# PDF Page Insert Library: insert pages into PDF file in C#.net
as how to merge PDF document files by C# code, how to rotate PDF document page This C# demo explains how to insert empty pages to a specific All Rights Reserved
how to change page orientation in pdf document; reverse page order pdf online
C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
1. public void DeletePages(int[] pageIndexes). Description: Delete specified pages from the input PDF file. Parameters: All Rights Reserved.
how to reverse page order in pdf; rotate pdf page few degrees
3
rd
Annual Southern California Visual FoxPro Conference
Sponsored by Microcomputer Engineering Services, LLC 
Copyright 1999, Tamar E. Granor 
14 
oRange.Collapse(wdCollapseEnd) 
oRange.Text = "Attn: " + TRIM(Contact_Name) + ; 
" - " + Contact_Title + CR 
oRange.Collapse(wdCollapseEnd) 
oRange.Text = Address + CR 
oRange.Collapse(wdCollapseEnd) 
oRange.Text = TRIM(City) + " " + TRIM(Region) + ; 
Postal_Code + CR 
oRange.Collapse(wdCollapseEnd) 
oRange.Text = UPPER(Country) 
Timing-wise, this version comes out about the same as the Move version. 
A number of other methods allow fine-tuning of movement. They include MoveEnd, 
MoveStart, MoveLeft, MoveRight, EndOf and StartOf. Some methods apply only to the 
selection, not to ranges. 
Before leaving the example, it's worth commenting that, for this particular task, the fastest 
approach of all is to concatenate all the strings in VFP, then send one string to the 
document: 
#DEFINE CR CHR(13) 
cText = Customer_ID + ": " + Company_Name + CR  
cText = cText + "Attn: " + TRIM(Contact_Name) + ; 
" - " + Contact_Title + CR 
cText = cText + Address + CR 
cText = cText + TRIM(City) + " " + TRIM(Region) + ; 
Postal_Code + CR 
cText = cText + UPPER(Country) 
oRange.Text = "" 
oRange.InsertAfter(cText) 
Formatting 
If all we could do was send text to Word and read the text already there, Automation would 
be useful, but not worth too much trouble. However, there's much more to automating Word 
than just sending and receiving text. One of the big benefits of using Word rather than VFP 
is the ability to apply complex formatting to documents. 
Word allows documents to be formatted in a number of ways and the objects involved in 
formatting reflect that structure. For example, the Font object contains properties for the 
settings found in Word's Font dialog (Format-Font on the menu). The ParagraphFormat 
object controls the settings in the Paragraph dialog, such as indentation, spacing and 
alignment. Similarly, the settings from the Page Setup dialog are controlled by the 
PageSetup object. Style objects represent the individual styles available in the document. 
These four objects manage most of the frequently used settings. Other objects control other 
aspects of formatting. 
Setting Fonts 
Range and Selection (as well as some other objects) each have a Font property that points 
to a Font object. Changing the properties of the Font object modifies the font of the range or 
selection. For example, to change all the customer information in the example above to 12-
point Arial, use these lines: 
VB.NET PDF - WPF PDF Viewer for VB.NET Program
Users can rotate PDF pages, zoom in or zoom out PDF pages and go to any pages in easy ways box, note, underline, rectangle, polygon and so on are all can be
pdf reverse page order preview; pdf rotate page
C# WPF PDF Viewer SDK to view PDF document in C#.NET
PDF pages extract, copy, paste, C#.NET rotate PDF pages, C#.NET Compatible with all Windows systems and supports .NET NET WPF component able to rotate one PDF
pdf reverse page order; how to rotate pdf pages and save
3
rd
Annual Southern California Visual FoxPro Conference
Sponsored by Microcomputer Engineering Services, LLC 
Copyright 1999, Tamar E. Granor 
15 
oRange = oDocument.Range() 
oRange.Font.Name = "Arial" 
oRange.Font.Size = 12 
To simplify matters, just set the desired font first. Here's an updated version of the code that 
uses 12-point Arial from the start: 
#DEFINE CR CHR(13) 
USE _samples + "\TasTrade\Data\Customer" 
LOCAL oDocument, oRange 
oDocument = oWord.Documents.Add()  && Use the Normal template 
oRange = oDocument.Range() 
oRange.Font.Name = "Arial" 
oRange.Font.Size = 12 
oRange.InsertAfter(Customer_ID + ": " + Company_Name + CR) 
oRange.InsertAfter("Attn: " + TRIM(Contact_Name) + ; 
" - " + Contact_Title + CR) 
oRange.InsertAfter(Address + CR) 
oRange.InsertAfter(TRIM(City) + " " + TRIM(Region) + ; 
Postal_Code + CR) 
oRange.InsertAfter(UPPER(Country)) 
(My Word contacts point out that this isn't the best way to set the font for a whole document. 
It's better to use a template where the font of the Normal style has been set as needed. See 
Working with Styles.) 
You can allow the user to choose the font by calling VFP's GetFont() function first. Here's a 
function that lets the user specify a font, prompting with the font currently in use. Then, it 
changes to the specified font: 
* SetUserFont.PRG 
* Let the user specify a font, then set 
* a passed font object to use it. 
#DEFINE TRUE -1 
#DEFINE FALSE 0 
LPARAMETERS oFont 
* oFont = Reference to a font object 
LOCAL cName, nSize, cStyle 
LOCAL cFontString, aFontInfo[3] 
* Did we get a font object to work with? 
IF VarType(oFont) <> "O" 
RETURN .F. 
ENDIF 
* Get current settings of font object. 
WITH oFont 
cName = .Name 
nSize = .Size 
cStyle = "" 
IF .Bold = TRUE  && Can't use VFP .T. here 
cStyle = cStyle + "B" 
ENDIF 
IF .Italic = TRUE  && or here 
cStyle = cStyle + "I" 
ENDIF 
ENDWITH 
VB.NET PDF - View PDF with WPF PDF Viewer for VB.NET
PDF pages extract, copy, paste, C#.NET rotate PDF pages, C#.NET Compatible with all Windows systems and supports .NET Able to rotate one PDF page or whole PDF
how to rotate a single page in a pdf document; rotate pdf page and save
C# TIFF: How to Rotate TIFF Using C# Code in .NET Imaging
C#.NET PDF pages extract, copy, paste, C#.NET rotate PDF pages, C#.NET 0); page.Rotate(RotateOder.Clockwise90); doc.Save(@"C:\rotate.tif"); All Rights Reserved
pdf rotate single page reader; rotate pdf page
3
rd
Annual Southern California Visual FoxPro Conference
Sponsored by Microcomputer Engineering Services, LLC 
Copyright 1999, Tamar E. Granor 
16 
* Ask the user for a font 
cFontString = GetFont(cName, nSize, cStyle) 
IF EMPTY(cFontString) 
* User cancelled 
RETURN .F. 
ELSE 
* Parse the chosen into its components 
cFontString = CHRTRAN(cFontString, ",", CHR(13)) 
ALINES(aFontInfo,cFontString) 
* Apply them to the font object 
WITH oFont 
.Name = aFontInfo[1] 
.Size = VAL(aFontInfo[2]) 
IF "B"$aFontInfo[3] 
.Bold = .T.  && .T. works here 
ENDIF 
IF "I"$aFontInfo[3] 
.Italic = .T. 
ENDIF 
ENDWITH 
ENDIF 
RETURN .T. 
The example demonstrates another complication of working with VBA objects in VFP. 
Although logical properties (like Bold and Italic) can be set by assigning VFP's logical values 
.T. and .F., they can't be compared to logical values. Code like: 
IF oFont.Bold 
fails with the error "Operator/operand type mismatch". That's because Bold isn't just a 
logical setting with acceptable values of true and false; it accepts two other values, 
represented by the constants wdToggle (9999998) and wdUndefined (9999999). 
(wdUndefined indicates that the property is true for part of the range and false for the rest. 
wdToggle is used to reverse the current setting.) 
When you assign logical values, Word translates them somewhere along the way, but for 
comparison, you have to use the numeric values. The example defines constants TRUE 
and FALSE to avoid coding the actual values.  
To use this function, pass it a reference to a font object. For example: 
SetUserFont( oRange.Font ) 
This call prompts the user to change the font for the range with VFP's GetFont dialog. 
Formatting paragraphs 
The ParagraphFormat object determines things like alignment of text, indentation (both 
amount and type), spacing of lines and paragraphs, handling of widow and orphans, and 
much more. Both Range and Selection have a ParagraphFormat object, accessed through 
the same-named Property. The Paragraph object has a Format property that accesses a 
ParagraphFormat object. In all cases, it's accessed through the Format property. So, to set 
a range for full justification, you'd use: 
oRange.Format.Alignment = wdAlignParagraphJustify 
wdAlignParagraphJustify is one of a set of alignment constants. (Its value is 3.) 
3
rd
Annual Southern California Visual FoxPro Conference
Sponsored by Microcomputer Engineering Services, LLC 
Copyright 1999, Tamar E. Granor 
17 
You can generally omit the Format property in the command, so the following line has the 
same effect: 
oRange.Alignment = wdAlignParagraphJustify 
Working with Styles 
While it's appropriate to adjust the formatting of a word, sentence or paragraph here or 
there, the most effective way to use Word is to take advantage of styles. A style in Word is 
a named format that you can apply to a portion of a document. (When you're working in 
Word, you can see the current style in the first dropdown on the Formatting toolbar.)  
Word has two kinds of styles: paragraph styles and character styles. Character styles are 
used for fragments and control only a few settings, primarily font-related. Paragraph styles, 
as the name implies, apply to entire paragraphs and include a lot more options. Paragraph 
Styles can specify font and paragraph formatting, as well as tab settings and much more. 
Using styles is much like using classes in VFP. They make it easy to enforce uniformity 
throughout and across documents and let you change the characteristics of sections of text 
with a single change. Word's styles offer some other benefits, as well. For example, each 
paragraph style knows the style for the paragraph to follow. So, a style normally used for a 
heading can be set to be followed by the style used for body text following that heading. 
With a little more work, styles can used to provide an outline of a document. 
The Document object includes a Styles collection, containing Style objects for all the styles 
stored in the document. You can add your own styles using the Add method. The 
Paragraph object's Style property points to the Style object for that paragraph's style. 
What all this means is that, rather than writing a lot of code to change fonts and sizes, and 
to set alignment and leading and other things like that, you can simply define a few custom 
styles or modify built-in styles, then apply them to your paragraphs as needed. 
This example takes the simple customer address document from the previous examples 
and begins to create a document worthy of using Word. It creates several new styles to do 
the job. In practice, you could probably use the built-in Normal and Heading x (there are 
multiple heading levels) for this document. But the example shows how easy it is to create 
new styles. 
* Create a formatted document by sending data from one record. 
* Demonstrates Style objects, but it's more likely the needs here 
* could be met by existing styles. 
#INCLUDE "Word.H" 
#DEFINE CR CHR(13) 
USE _samples + "\TasTrade\Data\Customer" 
LOCAL oDocument, oRange 
LOCAL oBodyStyle, oMajorHeadingStyle, oMinorHeadingStyle 
oDocument = oWord.Documents.Add()  && Use the Normal template 
oRange = oDocument.Range() 
* Set up styles. Base body style on Normal. 
oBodyStyle = oDocument.Styles.Add( "Body", wdStyleTypeParagraph ) 
WITH oBodyStyle 
3
rd
Annual Southern California Visual FoxPro Conference
Sponsored by Microcomputer Engineering Services, LLC 
Copyright 1999, Tamar E. Granor 
18 
.BaseStyle = oDocument.Styles[ wdStyleNormal ] 
WITH .Font 
.Name = "Arial" 
.Size = 12 
ENDWITH 
WITH .ParagraphFormat    
* These are fairly normal defaults, so these lines 
* may not be necessary 
.Alignment = wdAlignParagraphLeft 
.SpaceAfter = 0 
ENDWITH 
ENDWITH 
* Major heading is big and centered. 
oMajorHeadingStyle = oDocument.Styles.Add( "MajorHeading", wdStyleTypeParagraph) 
WITH oMajorHeadingStyle 
.BaseStyle = oBodyStyle 
.Font.Size = 20 
WITH .ParagraphFormat 
.Alignment = wdAlignParagraphCenter 
.SpaceAfter = 6  && leave a line after 
.KeepWithNext = .T.  && include at least one line of next  
&& paragraph before new page 
.KeepTogether = .T.  && keep the whole paragraph together 
ENDWITH 
ENDWITH 
* Minor heading is just big. 
oMinorHeadingStyle = oDocument.Styles.Add("MinorHeading", wdStyleTypeParagraph ) 
WITH oMinorHeadingStyle 
.BaseStyle = oBodyStyle 
.Font.Size = 16 
ENDWITH 
* Now create customer report 
* First, our company info centered at the top 
oRange.Style = oMajorHeadingStyle 
oRange.InsertAfter("Automation Sample Company" + CR) 
oRange.InsertAfter("Factory Blvd." + CR) 
oRange.InsertAfter("Robotville, PA 19199" + CR) 
* Now leave some blank space, then put info about this customer 
oRange.Collapse( wdCollapseEnd ) 
oRange.End = oRange.End + 1 && to allow assignment to font 
oRange.Style = oBodyStyle 
oRange.InsertAfter(CR + CR) 
* Use minor heading for customer id and name 
* Put customer id in bold 
oRange.Collapse( wdCollapseEnd ) 
oRange.End = oRange.End + 1 && to allow assignment to font 
oRange.Style = oMinorHeadingStyle 
oRange.InsertAfter(Customer_ID + ": " + TRIM(Company_Name) + CR) 
oRange.Words[1].Font.Bold = .t. 
* Regular body style for address info 
oRange.Collapse( wdCollapseEnd )  
oRange.End = oRange.End + 1 && to allow assignment to font 
oRange.Style = oBodyStyle 
oRange.InsertAfter(TRIM(Contact_Title) + ":" + TRIM(Contact_Name) ; 
+ CR) 
oRange.InsertAfter(TRIM(Address) + CR) 
oRange.InsertAfter(TRIM(City) + " " + TRIM(Region) + ; 
Postal_Code + CR) 
3
rd
Annual Southern California Visual FoxPro Conference
Sponsored by Microcomputer Engineering Services, LLC 
Copyright 1999, Tamar E. Granor 
19 
oRange.InsertAfter(UPPER(TRIM(Country)) + CR ) 
* Extra line for spacing 
oRange.InsertAfter( CR ) 
* Back to minor heading for phone number 
oRange.Collapse( wdCollapseEnd ) 
oRange.End = oRange.End + 1 && to allow assignment to font 
oRange.Style = oMinorHeadingStyle 
oRange.InsertAfter( "Phone: " + TRIM(Phone) + CR) 
* Fax number in regular body style 
oRange.Collapse( wdCollapseEnd ) 
oRange.End = oRange.End + 1 && to allow assignment to font 
oRange.Style = oBodyStyle 
oRange.InsertAfter( "Fax:   " + TRIM(Fax) + CR ) 
Note the use of the Words collection to bold only the customer id rather than the whole line. 
Here's a look at the resulting document: 
Figure 4 Formatted document 
The Font and ParagraphFormat objects control lots of formatting options. 
Style objects let you use predefined combinations easily. 
Printing 
Producing attractive documents is a good start, but users usually want printed copies, too. 
The PrintOut method of the Document object automates printing. It accepts a huge array of 
parameters. (This is one situation where named parameters start to look pretty good.) 
Fortunately, all parameters are optional and you won't need most of those parameters for 
normal processing. Unfortunately, the ones you're most likely to need are in the middle of 
the list rather than up front.  
To print three copies of pages 4 to 10 of a document (referenced by oDocument), use: 
oDocument.PrintOut( , , wdPrintFromTo, , "4", "10", , "3") 
3
rd
Annual Southern California Visual FoxPro Conference
Sponsored by Microcomputer Engineering Services, LLC 
Copyright 1999, Tamar E. Granor 
20 
where wdPrintFromTo is, of course, a constant. Note that the numeric values for page 
numbers and number of copies are passed as strings. 
To print to a file, you have to specify both the file name and a flag that you're printing to file: 
oWord.ActiveDocument.PrintOut( , , , "fileoutput", , , , , , , .t.) 
The resulting file is ready to print, complete with printer codes. Keep in mind that the file is 
stored in Word's current directory by default, so it's a good idea to provide the full path.  
Be forewarned that printing to file sets the Print to File checkbox in the Print dialog and 
leaves it set. A subsequent print to the printer resets it. 
Word can also automatically create and print an envelope document. To do so, use the 
document's Envelope object. This example assumes that oRange is a range containing the 
customer name and address in a mailing format. It bookmarks the address and asks Word 
to create the envelope.  
oDocument.Bookmarks.Add("EnvelopeAddress", oRange) 
oDocument.Envelope.PrintOut(.T., , ,.F., oWord.UserAddress) 
A bookmark is a way of naming a range or location. To create one, call the Bookmarks 
collection's Add method. The call to PrintOut tells Word to use whatever is at the 
EnvelopeAddress bookmark for the address, and to include the user's stored address (from 
the Tools-Options dialog's User Information page) as the return address. Additional 
parameters let you set the type and size of the envelope as well as the printing orientation. 
Omitting those parameters uses the current settings.
Search and Replace 
The ability to find a text string and replace it with another throughout a document without 
retyping was one of the "killer" items that led to early acceptance of word processors. 
Word's version is extremely powerful 
it includes the ability to search for text alone, for text 
in a particular format, for formatting only, for certain styles, and so forth. 
Searching is handled by the Find object. It has an assortment of properties, such as Text, 
MatchCase and MatchWholeWord, that determine what it's searching for. Some properties, 
like Font and ParagraphFormat, are references to other objects. The Format property 
determines whether formatting is considered in the search. Set it to .F. to search for the 
string specified by Text, regardless of format.  
The Execute method actually performs the search. It accepts a number of parameters, most 
of which duplicate properties of the Find object. Omitting them uses the current settings of 
the Find object. 
Find is a member of Range and Selection, but not of Document. The search begins at the 
beginning of the range or selection, unless Forward is .F., in which case it starts at the end. 
The Wrap property determines what happens when it reaches the end (or beginning, when 
searching backward) of the range or selection.  
To search the whole document, create a range at the beginning of the document. When 
Execute finds a match, the range or selection moves to cover only the matching item. 
Documents you may be interested
Documents you may be interested