how to open password protected pdf file in c# : Copy pdf text with formatting Library control component .net azure wpf mvc HotDocs_Developer_Help_File68-part972

Using HotDocs Scripting 
637 
ELSE
INCREMENT Index
END IF
END WHILE
Notice how this script relies heavily on the “Index” number variable. It is used to keep 
track of our position as we look through each character in the account number. This is a 
good example of a variable that should be defined “locally” instead of being defined in the 
Component Manager (as you would have done in earlier versions of HotDocs). As a local 
variable, Index is meaningful (and has an answer) only in the context of this script. If you 
needed to, you could create a local variable called “Index” in another computation as well, 
but the two would be isolated – setting one computation’s local Index to a certain value 
would have no effect on the other computation’s local Index. In fact, local variables do not 
store their answers in the answer file like regular HotDocs variables – they are stored in a 
special temporary location where they are discarded as soon as the computation or script 
finishes running. 
Here is a table that summarizes the differences between traditional HotDocs variables and 
local variables: 
Regular Variables 
Local Variables 
Defined in 
Component Manager 
The Locals tab of a 
Computation Editor or Dialog 
Editor window 
Usability / Scope 
Anywhere: in the template itself, in 
any script, or in other variables’ 
prompts or resources 
Only in the script where it is 
defined 
Naming rules 
Name must be unique across all the 
components in the component file 
Name must only be unique 
within the script where it’s 
defined 
Available types 
Text, Number, Date, True/False, 
Multiple Choice 
Text, Number, Date, 
True/False 
Shows up in 
general 
component lists? 
Yes 
No 
Can be asked on a 
dialog? 
Yes 
No 
Can be save in an 
answer file? 
Yes 
No 
Initial or default 
value 
UNANSWERED 
UNANSWERED 
You may notice that it’s possible to use regular HotDocs variables (perhaps with “Ask 
automatically”, “Warn when unanswered” and “Save in answer file” all turned off) in every 
instance where you could use a local variable. This is true. However, there are 
advantages to using local variables when occasion permits, and these advantages 
Copy pdf text with formatting - extract text content from PDF file in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Feel Free to Extract Text from PDF Page, Page Region or the Whole PDF File
copy paste pdf text; copy and paste text from pdf to word
Copy pdf text with formatting - VB.NET PDF Text Extract Library: extract text content from PDF file in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
How to Extract Text from PDF with VB.NET Sample Codes in .NET Application
find and replace text in pdf; copying text from pdf to excel
HotDocs Developer Help File 
638 
become more significant the larger and more complex your template automation projects 
grow: 
Large or complex component files are easier to maintain when component lists are 
not unnecessarily cluttered with temporary variables. 
Naming local variables is easier, and scripts using local variables can be easier to 
read, because the name only has to make sense in the context of the script where 
it’s defined – not in a global component list.  In the above example, it’s realistic to 
call our local variable “Index” instead of needing to call it “Account Number Index 
Temp”, for example. 
Reusing components (by copying them from one component file to another) 
becomes less complicated because such copy operations no longer need to bring 
along additional temporary variables. 
To Create a Local Variable 
1.  Follow the instructions for inserting a variable, selecting Computation as the 
variable type. (See Insert a Variable Field in a Text Template.) 
2.  At the Variable Field dialog box, click the 
Edit Component button to open 
the Computation Editor. 
3.  Click on the Locals tab and create a Local Variable by clicking on the left hand 
column of the Parameter table and entering a name, then the right hand column to 
select the type of variable this will represent. 
4.  Click on the Properties tab and enter the computation that you would like to use 
your local variable in. Drag and drop from the Parameters and Local 
Variables list at the bottom left. 
You can tell at a glance whether local variables or parameters have been defined 
for the current computation or dialog script by looking at the Locals tab.  If the 
word Locals appears with an asterisk following it, at least one local variable or 
parameter has been defined. 
You can view the defined local variables (and drag them into your script as necessary) by 
choosing “Parameters and Local Variables” from the Components drop-down in the 
bottom left region of the script editor. 
It is possible to define a local variable that has the same name as a regular 
variable elsewhere in the component file.  In such a situation, HotDocs will 
recognize the local name before looking for the other component.  So for example, 
suppose you have a computation variable that defines a local variable called 
“Temp Number”, and there is also a number variable called “Temp Number” 
defined in Component Manager.  If you refer to “Temp Number” within the 
computation where the local is defined, you will get the local answer associated 
with it.  However, referring to “Temp Number” in the template, or in another script, 
will retrieve the regular answer from the answer file. 
Parameters 
C# PDF Convert to Text SDK: Convert PDF to txt files in C#.net
other C# .NET PDF to text conversion controls, RasterEdge C# PDF to text converter control toolkit can convert PDF document to text file with good formatting.
copy formatted text from pdf; cut and paste text from pdf document
VB.NET Create PDF from Excel Library to convert xlsx, xls to PDF
pages edit, C#.NET PDF pages extract, copy, paste, C# NET rotate PDF pages, C#.NET search text in PDF all Excel spreadsheet into high quality PDF without losing
acrobat remove text from pdf; copy paste pdf text
Using HotDocs Scripting 
639 
When building complex templates or template systems, you may frequently find yourself 
duplicating portions of script or logic multiple times – sometimes exact duplication, or 
other times with minor changes from instance to instance. Such duplications and near-
duplications can make your templates much more difficult to maintain, because each 
instance of duplication heightens the risk that, as time goes by and the logic needs 
refinement, inadvertent errors will be introduced if you fail to update each instance of the 
logic consistently. You can make your HotDocs scripting more maintainable (and quite 
often easier to read) by encapsulating such logic in computation variables that use 
parameters. 
parameter is like a local variable for a computation, but instead of you needing to 
initialize the parameter in your script (as you might initialize a local variable using the SET 
instruction), the initial value of the parameter is copied into your computation from 
wherever the computation was invoked. 
For example, consider a very simple traditional computation (no parameters) to determine 
whether a particular child is under 18 years of age: 
Computation name: Decedent Child Under Eighteen
Script:
AGE( Decedent Child Birthdate ) < 18
However, the logic to determine whether a child is a minor (as simple as it is) may need to 
be duplicated in numerous places.  You could end up defining substantially similar 
computation variables that only differ in the date variable to which they are referring. 
Parameters allow us to write the logic only once: 
Computation name: “Under Eighteen”
Parameter: “person” (Date)
Script:
AGE( person ) < 18
Instead of referring to another date variable (“Decedent Child Birthdate” in the former 
example), the computation simply refers to a local parameter. So whenever this latter 
computation is referred to, instead of simply referring to it by name, we must also provide 
a date as “input” to the computation: 
Under Eighteen ( Decedent Child Birthdate )
The very same computation can be referred to (“called”) from elsewhere using different 
date variables or date expressions: 
Under Eighteen ( Beneficiary Birthdate )
Under Eighteen ( Beneficiary Birthdate + 5 YEARS ) 
In this way, parameters essentially allow you to write computations that work much like 
HotDocs’ built-in expression models. They allow you to re-use script logic rather than 
duplicating entire computation variables to perform the same action on different values. 
This is very much like defining functions within other programming environments. 
As a more complex example, let’s consider a longer computation that calculates the date 
of the nearest Monday on or after a given date.  It uses a parameter and a local variable. 
Computation Name: “Next Monday”
C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net
file. Besides, the converted HTML webpage will have original formatting and interrelation of text and graphical elements of the PDF.
can't copy and paste text from pdf; copy highlighted text from pdf
VB.NET PDF Convert to Word SDK: Convert PDF to Word library in vb.
application. In addition, texts, pictures and font formatting of source PDF file are accurately retained in converted Word document file.
extract text from pdf image; copy text from pdf without formatting
HotDocs Developer Help File 
640 
Parameter: “origin date” (Date)
Local Variable: “days away” (Number)
Script:
// Find the number of days between origin date and Monday (which is 
day of week no. 2)
SET days away TO (2 - DAY OF WEEK( origin date ))
// If origin date is later in the week than Monday, add 7 days to 
get to next week
IF days away < 0
SET days away TO days away + 7
END IF
// calculate the date
origin date + days away DAYS
A computation with parameters can be referred to (called) from any other computation or 
script. It can also be used in merge fields, either directly in a template or in literal text: 
«Next Monday(TODAY):04 July 2012»
will use the above computation variable (Next 
Monday) to calculate the next Monday after the current date (TODAY), format it according 
to the given format example (04 July 2012), and merge the result wherever the field 
appears (whether in a template, prompt, resource, etc.). 
When you add, remove, or change the parameters of a computation, you are changing the 
way that computation is referred to by its callers. In this way, changing the types or order 
of a computation’s parameters is akin to changing the computation’s name: care should 
be taken to not break things. 
For users with a prior knowledge of programming it may be useful to think of 
HotDocs Parameters as Value Parameters. Therefore any change made in the 
script does not change any variable that has been passed in when calling the 
computation. 
Computations used as filters on REPEAT instructions (see Filter a List Using a 
Computation Variable) are not permitted to have parameters. 
To create a computation variable that accepts a parameter: 
1.  Follow the instructions for inserting a variable, selecting Computation as the 
variable type. (See Insert a Variable Field in a Text Template or Create and Insert 
a Variable Using Component Manager.) 
2.  At the Variable Field dialog box, click the 
Edit Component button to open 
the Computation Editor. 
3.  Click on the Locals tab and create a parameter by clicking on the left hand column 
of the Parameter table and entering a name, then the right hand column to select 
the type of variable this will represent. 
4.  Click on the Properties tab and enter the computation that you would like your 
new parameter to complete. In the computation use the parameter (drag and drop 
from the Parameters and Local Variables list at the bottom left) as the 
placeholder for the variables you would like to use later. 
5.  Click OK on the open dialogs to return to the template. 
To use this computation variable from another computation or script, 
C# Create PDF from Word Library to convert docx, doc to PDF in C#.
A convenient C#.NET control able to turn all Word text and image content into high quality PDF without losing formatting. Convert
extract pdf text to excel; copy text from pdf
C# Create PDF from PowerPoint Library to convert pptx, ppt to PDF
Excellent .NET control for turning all PowerPoint presentation into high quality PDF without losing formatting in C#.NET Class. Convert
how to copy and paste pdf text; extract highlighted text from pdf
Using HotDocs Scripting 
641 
1.  Open the Computation Editor for the computation from which you wish to use 
your computation with parameters. 
2.  From the list of Available Components in the lower left corner, drag and drop 
your computation with parameters into the script.  HotDocs will automatically 
generate placeholders for each of the parameters required by the computation. 
3.  Drag and drop variables or values to replace the placeholders as you would do 
when replacing placeholders for the built-in expression models. 
To use a this computation variable from a field in a template 
1.  Click on the Variable Field button on the HotDocs ribbon and select Computation 
from the Type list. 
2.  At the Variable field use the drop-down menu to find and click on the 
parameterized computation. You will now see a table with available parameters, 
and an empty Expression column. 
3.  Click the 
button to the right of the table and drag the variable you would like to 
use from the Variables list up into the Expression field. (You can also manually 
enter or edit expressions here.) 
To test a computation that includes parameters 
1.  Create a computation that includes parameters 
2.  Click the Test button 
3.  To facilitate testing, HotDocs presents an automatically-generated dialog to gather 
values for the computation’s parameters. Enter a value for each parameter.  (Note 
that this dialog is only part of a test assembly for the computation.  In actual usage, 
the call to the computation would specify the parameter values.) 
4.  If your computation causes subsequent dialogs to be asked, enter values for those 
additional variables as well. 
5.  Switch to the Result tab as necessary to view the result of your computation given 
the values you entered. 
6.  Switch back to the Interview  tab to test results given other input. 
Just as with regular computations, you can also use the DEBUG instruction to step 
through a computation line by line and observe how the values of parameters and other 
variables are affected by your script. 
Using Instruction Models 
Full List of Instruction Models 
Instruction  
Description  
ADD TEXT TO 
These instructions allow you to modify options of a Multiple 
C# Create PDF from Excel Library to convert xlsx, xls to PDF in C#
Turn all Excel spreadsheet into high quality PDF without losing formatting. Evaluation library and components for PDF creation from Excel in C#.NET framework.
erase text from pdf; get text from pdf image
VB.NET Create PDF from Word Library to convert docx, doc to PDF in
Image to PDF. Image: Remove Image from PDF Page. Image: Copy, Paste, Cut Export all Word text and image content into high quality PDF without losing
get text from pdf online; copy text pdf
HotDocs Developer Help File 
642 
MULT_CHOICE_VAR; 
CLEAR 
MULT_CHOICE_VAR  
Choice variable. The CLEAR instruction removes all the current 
options, and the ADD instruction adds options to the variable.  
ASCEND VAR; 
DESCEND VAR  
The ASCEND instruction sorts lists of answers (gathered using a 
REPEAT instruction) in alphanumeric order, from 1 to 9, and 
from A to Z. The DESCEND instruction sorts lists of answers 
from 9 to 1, and from Z to A.  
.  
ASK DIALOG  
The ASK DIALOG instruction allows you to control the order in 
which dialogs appear in an interview. (See Control When Your 
Dialogs Appear.)  
ASK VAR  
Sometimes a variable needs to be asked by itself. You can use 
the ASK VAR instruction so that during the interview, HotDocs 
displays the variable in its own default dialog.  
ASSEMBLE 
"FILENAME"  
You can use the ASSEMBLE instruction to add templates to the 
assembly queue. Unlike the INSERT instruction, an ASSEMBLE 
instruction waits until the current document is assembled before 
starting the next assembly session. 
CONCEAL VAR  
This instruction, which you use in a dialog script, keeps variables 
from appearing in the Select From Answer Source dialog box 
of an answer source.  
DEBUG  
This instruction steps through the template or script field by field 
or line by line. It helps you determine why the template you are 
automating (or the script you are writing) is producing results you 
don't expect.  
DEFAULT VAR TO 
VALUE  
This instruction suggests a value for a variable if the variable is 
unanswered.  
ERASE VAR; ERASE 
DIALOG  
The ERASE instructions let you clear answers in a dialog. 
Specifically, ERASE VAR clears answers for a specified variable 
in a dialog, while ERASE DIALOG clears all answers in the 
dialog. This may be useful when you are using a temporary 
dialog to store lists of answers from two or more dialogs.  
FILTER 
COMPUTATION_VAR  
The FILTER instruction filters out certain entries from a repeated 
list, based on conditions you specify.  
FORMAT 
"LIST_FORMAT"  
The FORMAT "LIST_FORMAT" instruction allows you to create 
a sentence-style list within a computation. (If you create the 
REPEAT instruction using a REPEAT field, you can specify the 
list format by choosing a style from the Format drop-down list. 
See Punctuate a Sentence-Style List.)  
.)  
GRAY ALL; GRAY 
VAR; UNGRAY ALL; 
UNGRAY VAR  
These instructions, which are used in a dialog script, control 
whether components in a dialog appear grayed or ungrayed, 
depending on answers a user enters. GRAY ALL dims all 
components in the dialog, while UNGRAY ALL makes all of the 
components active again. Likewise, GRAY VAR dims a single 
component, and UNGRAY VAR enables the component again.  
HIDE ALL; HIDE 
VAR; SHOW ALL; 
SHOW VAR  
These instructions, which are used in a dialog script, control 
whether the user is able to see variables in a dialog. The HIDE 
ALL instruction hides all variables in the dialog, while SHOW ALL 
VB.NET Create PDF from PowerPoint Library to convert pptx, ppt to
Remove Image from PDF Page. Image: Copy, Paste, Cut PDF, VB.NET convert PDF to text, VB.NET all PowerPoint presentation into high quality PDF without losing
copying text from pdf into word; cut text pdf
VB.NET Word: Extract Text from Microsoft Word Document in VB.NET
time and effort compared with traditional copy and paste VB.NET. Apart from extracting text from Word powerful & profession imaging controls, PDF document, tiff
pdf text replace tool; copy pdf text to word with formatting
Using HotDocs Scripting 
643 
reveals the variables again. Likewise, HIDE VAR hides a single 
variable, and SHOW VAR reveals the variable.  
IF EXPRESSION; 
ELSE IF; ELSE; END 
IF  
You can make sections of templates or scripts conditional by 
using IF instructions. A conditional section will be included only if 
a condition you specify is true. The ELSE IF instruction allows 
two or more conditions to be included in an IF instruction. The 
ELSE instruction establishes a final condition for an IF 
instruction, specifying that if all preceding conditions are false, 
the following information should be included. It must be the last 
item of the IF instruction.  
INCREMENT 
NUM_VAR; 
DECREMENT 
NUM_VAR  
The INCREMENT and DECREMENT instructions cause 
HotDocs to increase or decrease a number variable, usually a 
counter, by the value of 1.  
INSERT "FILENAME"  
This instruction inserts a clause, a clause library, or a template 
into the document currently being assembled. When HotDocs 
encounters an INSERT instruction, it immediately processes the 
instruction and inserts the template, clause, or clause library into 
the current document. If there are variables to be answered, 
HotDocs presents them before finishing the interview of the main 
document.  
LANGUAGE CODE  
This instruction tells HotDocs to format numbers and dates in a 
particular language.  
LIMIT NUM  
The LIMIT instruction limits the number of times a dialog can be 
repeated. It is placed in the script of the dialog that must be 
limited to a specific number of repetitions.  
OMIT VAR  
The OMIT VAR instruction, which you use in a dialog script, 
keeps variables from appearing in the Edit Answer Source 
dialog box of an answer source.  
PLAY "MACRO"  
The PLAY "MACRO" instruction plays a word processor macro 
after the document is assembled and either sent to the word 
processor, printed, or saved.  
QUIT  
The QUIT instruction allows you to close the variable without 
losing the work you have done. Normally, HotDocs will not save 
an invalid computation. The only way to exit an invalid 
computation is to click Cancel, which erases the script. The 
instruction is usually placed at the beginning of an unfinished or 
invalid computation.  
REPEAT DIALOG; 
END REPEAT  
A REPEAT instruction gathers lists of answers and merges them 
into a document.  
REQUIRE ALL; 
REQUIRE VAR  
The REQUIRE instruction requires users to answer questions in 
a dialog before they can advance to the next dialog in the 
interview.  
SET VAR TO VALUE  
This instruction lets you specify a given value for a variable’s 
answer automatically, rather than allow the user to specify an 
answer. With the SET instruction, you can transfer names and 
other values from one variable to another.  
HotDocs Developer Help File 
644 
WHILE 
EXPRESSION; END 
WHILE  
The WHILE EXPRESSION instruction allows you to repeatedly 
process (or loop through) an answer or set of answers until a 
certain condition is met, such as a certain answer is found or a 
limit is reached.  
ADD TEXT TO MULT_CHOICE_VAR; CLEAR MULT_CHOICE_VAR 
Placeholder 
Replace With 
TEXT  
A text value, such as a Text variable or an actual word or name  
MULT_CHOICE  Any Multiple Choice variable in the template  
These instructions allow you to modify options of a Multiple Choice variable. The CLEAR 
instruction removes all the current options, and the ADD instruction adds options to the 
variable. 
Using these two models, you can create an entire Multiple Choice variable using answers 
the user provides. 
For example, a template requires the user to first enter a list of all the committee member 
names. Later, the user can identify which committee member is the chairperson. You can 
allow the user to identify the chairperson by presenting a Multiple Choice variable that has 
the names of all committee members as options. The following script would create that 
Multiple Choice variable: 
CLEAR Committee Chairperson 
REPEAT Committee Members List 
ADD Member Name TO Committee Chairperson 
END REPEAT
In this example, the CLEAR instruction first removes any existing options from the Multiple 
Choice variable Committee Chairperson. Then, the script repeats the Committee 
Members List dialog, gathering the names of each committee member. The ADD 
instruction then adds each member’s name to the Multiple Choice variable. After the 
committee members have all been entered, you can present the Committee Chairperson 
variable for the user to identify the chairperson. 
Additionally, if the Multiple Choice variable you are clearing uses any option prompts, 
these prompts will also be cleared. When adding new options to the Multiple Choice 
variable, you can also add new prompts. To do this, use a vertical bar to separate the 
option from the prompt in the ADD instruction. For example: 
CLEAR Marital Status 
ADD "Single|Client is single" TO Marital Status 
ADD "Married|Client is married" TO Marital Status 
ADD "Divorced|Client is divorced" TO Marital Status
Using HotDocs Scripting 
645 
In this example, the Multiple Choice variable Marital Status is cleared. The script then 
adds a literal text value (denoted by quotation marks) for the new option. The option is 
immediately followed by a vertical bar, which tells HotDocs to use the text following the 
bar as a prompt for the option. 
Both the CLEAR and ADD instructions must be used in a computation script, which must 
be processed before the Multiple Choice variable is asked. To add options to a Multiple 
Choice variable, you should create the variable beforehand and assign a temporary 
option. Then, as the user provides the answers you want to include as options, the 
CLEAR instruction removes the temporary option, and the ADD instruction places the 
user’s answers as options in the variable. 
Unlike options and prompts, the merge text for a Multiple Choice variable comes 
from another component—a Merge Text component. This means you cannot 
create and add merge text to a Multiple Choice variable "on the fly."  
ASCEND VAR; DESCEND VAR 
Placeholder 
Replace With 
VAR  
A repeated variable  
The ASCEND instruction sorts lists of answers (gathered using a REPEAT instruction) in 
alphanumeric order, from 1 to 9, and from A to Z. The DESCEND instruction sorts lists of 
answers from 9 to 1, and from Z to A
For example, the following script would insert a list of clients in alphabetical order, from 
to Z. Even though it lists Client First Name first, it sorts by Client Last Name
"" REPEAT Client Information 
ASCEND Client Last Name 
RESULT + Client First Name + " " + Client Last Name + " 
END REPEAT
The first empty set of quotation marks sets the computation value to nothing. Then, the 
repeated dialog, Client Information, asks for each client’s first and last name. Next, the 
ASCEND instruction sorts the list of names by last name. Finally, the RESULT expression 
tells HotDocs to merge the names in the document.  
The ASCEND and DESCEND instructions can only sort on a single variable; 
however, you can sort multiple variables by including multiple ASCEND or 
DESCEND instructions.  
HotDocs Developer Help File 
646 
ASK DATABASE 
Placeholder  
Replace With  
DATABASE 
A database component 
The ASK DATABASE instruction allows you to control when the record selection screen of 
a database component is shown in an interview. (See Control When Your Record 
Selection Screens Appear.) 
In general, the ASK instruction tells HotDocs to display a record selection screen or a 
dialog as soon as the instruction is processed. You can insert an ASK instruction directly 
in the template, or use a Computation variable. In fact, you can control the entire interview 
by using a series of ASK and other instructions in a single computation. (See ASK 
DIALOG and Define a Custom Interview for details.)  
ASK DIALOG 
Placeholder  
Replace With  
DIALOG  
Any dialog in the template  
The ASK DIALOG instruction allows you to control the order in which dialogs appear in an 
interview. (See Control When Your Dialogs Appear.) 
ASK instructions are also useful when some interview questions should only be asked in 
certain situations. In the following example, HotDocs only asks the Buyer Information 
dialog if the user is a first-time buyer: 
«IF First Time Buyer» 
«ASK Buyer Information» 
«END IF»
In general, the ASK instruction tells HotDocs to display a dialog as soon as the instruction 
is processed. You can insert an ASK instruction directly in the template, or use a 
Computation variable to ask several dialogs at once. In fact, you can control the entire 
interview by using a series of ASK and other instructions in a single computation. (See 
Define a Custom Interview for details.)  
ASK VAR 
Placeholder  
Replace With  
Documents you may be interested
Documents you may be interested