itextsharp pdf to image c# example : Best pdf form creator SDK control API wpf web page asp.net sharepoint 0782129781.excerpt7-part165

Converting Strings
71
Encrypting/Decrypting Text Using XOR Encryption
If you need a simple way to encrypt text in an application, the function provided in 
this section may do just what you need. The dhXORText function, in Listing 1.17, 
includes code that performs both the encryption and decryption of text strings. 
That’s right—it takes just one routine to perform both tasks.
rst.Save strFile, adPersistXML
rst.Close
Set rst = Nothing
End Sub
Then, to test this out, you can try code like this:
Public Sub TestProperXML()
' Test procedure for dhProperLookup
Dim rst As ADODB.Recordset
Dim strText As String
' You don't even need a database. You can use a 
' saved XML file.
Set rst = New ADODB.Recordset
rst.Open ActiveWorkbook.Path & "\Proper.xml", , _
adOpenKeyset, adLockReadOnly, Options:=adCmdFile
strText = _
"headline: cruella de ville and old macdonald " & _ 
"eat dog's food"
Debug.Print dhProperLookup(strText, True, rst, "Lookup")
rst.Close
Set rst = Nothing
End Sub
As you can see, this technique requires that you supply only a single text file (Proper.xml) in
order to open a recordset—no need to bring along a big database, just to use dhProper-
Lookup. You may find it interesting to open Proper.xml in a text editor—it’s simply a text
file, containing all your data.
Best pdf form creator - C# PDF Field Edit Library: insert, delete, update pdf form field in C#.net, ASP.NET, MVC, Ajax, WPF
Online C# Tutorial to Insert, Delete and Update Fields in PDF Document
pdf add signature field; pdf form save in reader
Best pdf form creator - VB.NET PDF Field Edit library: insert, delete, update pdf form field in vb.net, ASP.NET, MVC, Ajax, WPF
How to Insert, Delete and Update Fields in PDF Document with VB.NET Demo Code
add submit button to pdf form; add text field to pdf acrobat
Chapter 1  Manipulating Strings
72
To encrypt text, pass dhXORText the text to encrypt and a password that sup-
plies the encryption code. To decrypt the text, pass dhXORText the exact same 
parameters again. For example:
dhXORText(dhXORText("This is a test", "Password"), "Password")
returns “This is a test”, the same text encrypted and then decrypted.
Listing 1.17: Use the XOR Operator to Encrypt Text
Public Function dhXORText(strText As String, strPWD As String)  _
As String
' Encrypt or decrypt a string using the XOR operator.
Dim abytText() As Byte
Dim abytPWD() As Byte
Dim intPWDPos As Integer
Dim intPWDLen As Integer
Dim intChar As Integer
abytText = strText
abytPWD = strPWD
intPWDLen = LenB(strPWD)
For intChar = 0 To LenB(strText) - 1
' Get the next number between 0 and intPWDLen - 1
intPWDPos = (intChar Mod intPWDLen)
abytText(intChar) = abytText(intChar) Xor _
abytPWD(intPWDPos)
Next intChar
dhXORText = abytText
End Function
The dhXORText function counts on the XOR operator to do its work. This built-
in operator compares each bit in the two expressions and uses the following rules 
to calculate the result for each bit:
If Bit1 is
And Bit2 is
The result is
1
1
0
1
0
1
0
1
1
0
0
0
C# Create PDF Library SDK to convert PDF from other file formats
Free PDF creator SDK for Visual Studio .NET. Batch create adobe PDF from multiple forms. Best C#.NET component to create searchable PDF document from Microsoft
adding text to pdf form; convert word document to editable pdf form
VB.NET Create PDF Library SDK to convert PDF from other file
Best VB.NET component to convert Microsoft Office Word, Excel and PowerPoint to searchable PDF HTML webpage to interactive PDF file creator freeware.
can save pdf form data; pdf save form data
Converting Strings
73
Why XOR? Using this operator has a very important side effect: If you XOR two 
values and then XOR the result with either of the original values, you get back the 
other original value. That’s what makes it possible for dhXORText to do its work. 
To try this, imagine that the first byte of your text is 74 and the first byte of the 
password is 110.
74 XOR 110
returns 36, which becomes the encrypted byte. Now, to get back the original text,
36 XOR 110
returns 74 back. Repeat that for all the bytes in the text, and you’ve encrypted and 
decrypted your text.
To perform its work, dhXORText copies both the input string and the password 
text into byte arrays. Once there, it’s just a matter of looping through all the bytes 
in the input string’s array, repeating the password over and over until you run out 
of input text. For each byte, XOR the byte from the input string and the byte from 
the password to form the byte for the output string.
Figure 1.8 shows a tiny example, using “Hello Tom” as the input text and “ab” 
as the password. Each byte in the input string will be XOR’d with a byte from the 
password, with the password repeating until it has run out of characters from the 
input string.
FIGU RE 1.8
XOR each byte from the
input string and the pass-
word, repeated.
The code loops through each character of the input string—that’s easy!
For intChar = 0 To LenB(strText) - 1
' (Code removed)
Next intChar
VB.NET Word: Create Linear and 2D Barcodes to Word Page Within VB.
NET code to create QR code, Data Matrix and PDF 417 on easy work if you apply our Word Barcode Creator in VB. VB Word Barcode Generating SDK is your best choice
pdf form creation; adding form fields to pdf
VB Imaging - Postnet Barcode Creation Tutorial
creator control add-on will be your best choice. including PNG, BMP, GIF, JPEG, TIFF, PDF, Excel, PowerPoint RasterEdge VB.NET Barcode Creator Add-on can be
create a fillable pdf form; adding text fields to a pdf
Chapter 1  Manipulating Strings
74
The hard part is to find the correct byte from the password to XOR with the 
selected byte in the input string: The code uses the Mod operator to find the cor-
rect character. The Mod operator returns the remainder, when you divide the first 
operand by the second, which is guaranteed to be a number between 0 and one 
less than the second operand. In short, that corresponds to rotating through the 
bytes of the password, as shown in Table 1.13 (disregarding the null bytes). If the 
password were five bytes long, the “Position Mod 2” (“Position Mod 5”, in that 
case) column would contain the values 0 through 4, repeated as many times as 
necessary.
' Get the next number between 0 and intPWDLen - 1
intPWDPos = (intChar Mod intPWDLen)
abytText(intChar) = abytText(intChar) Xor abytPWD(intPWDPos)
As you can probably imagine, passwords used with dhXORText are case sensitive,
and you can’t change that fact. Warn users that passwords in your application will
need to be entered exactly, taking upper- and lowercase letters into account.
TA BLE 1.13:
Steps in the Encryption of the Sample Text
Char from 
Input
Position
Position Mod 2
Char from 
Password
XOR
H (72)
0
0
a (97)
41
e (101)
1
1
b (98)
7
l (108)
2
0
a (97)
13
l (108)
3
1
b (98)
14
o (111)
4
0
a (97)
14
(32)
5
1
b (98)
66
T (84)
6
0
a (97)
53
o (111)
7
1
b (98)
13
m (109)
8
0
a (97)
12
VB.NET Image: Generate GS1-128/EAN-128 Barcode on Image & Document
This GS1-128/EAN-128 barcode creator control is 128 barcode on multi-page TIFF/PDF/Word documents orientation, resizing document page to the best status, and
add text field to pdf acrobat; add fillable fields to pdf online
VB.NET PDF - Create PDF Online with VB.NET HTML5 PDF Viewer
Bookmark: Edit Bookmark. Metadata: Edit, Delete Metadata. Form Process. Best online HTML5 PDF Viewer PDF Viewer control as well as a powerful PDF creator.
best program to create pdf forms; adding signature to pdf form
Converting Strings
75
Although no XOR-based algorithm for encryption is totally safe, the longer your
password, the better chance you have that a decryption expert won’t be able to
crack the code. The previous example, using “ab” as the password, was only for
demonstration purposes. Make sure your passwords are at least four or five char-
acters long—the longer, the better.
Returning a String Left-Padded or Right-Padded to a 
Specified Width
If you’re creating a phone-book listing, you may need to left-pad a phone number 
with dots so it looks like this:
............(310) 123-4567
..................555-1212
Or you may want to left-pad a part number field with 0s (zeros), so “1234” 
becomes “001234”, and all part numbers take up exactly six digits. You may want 
to create a fixed-width data stream, with spaces padding the fields. In all of these 
cases, you need a function that can pad a string, to the left or to the right, with the 
character of your choosing. The two simple functions dhPadLeft and dhPadRight, 
in Listing 1.18, perform the work for you.
To call either function, pass a string containing the input text, an integer indicat-
ing the width for the output string, and, optionally, a pad character. (The func-
tions will use a space character if you don’t provide one.)
For example:
dhPadLeft("Name", 10, ".")
returns “......Name” (the word Name preceded by six periods).
dhPadRight("Hello", 10)
returns “Hello     ” (Hello followed by five spaces).
Neither dhPadLeft nor dhPadRight will truncate your input string. If the original
string is longer than you indicate you want the output string, the code will just
return the input string with no changes.
C# HTML5 PDF Viewer SDK to create PDF document from other file
Form Process. Data: Read, Extract Field Data. Data: Auto Fill-in Field Best online C#.NET HTML5 PDF Viewer control as well as a powerful PDF creator for ASP
allow users to save pdf form; pdf save form data
VB Imaging - EAN-8 Generating Tutorial
VB.NET Barcode Creator Add-on from RasterEdge DocImage SDK to create EAN-8 barcode image with best quality. creating are JPEG, PNG, BMP, GIF, TIFF, PDF and MS
create a fillable pdf form from a word document; convert pdf to editable form
Chapter 1  Manipulating Strings
76
Listing 1.18: Pad with Characters to the Left or to the Right
Public Function dhPadLeft(strText As String, intWidth As Integer, _
Optional strPad As String = " ") As String
If Len(strText) > intWidth Then
dhPadLeft = strText
Else
dhPadLeft = Right$(String(intWidth, strPad) & _
strText, intWidth)
End If
End Function
Public Function dhPadRight(strText As String, intWidth As Integer, _
Optional strPad As String = " ") As String
If Len(strText) > intWidth Then
dhPadRight = strText
Else
dhPadRight = Left$(strText & _
String(intWidth, strPad), intWidth)
End If
End Function
Both functions use the same technique to pad their input strings: They create a 
string consisting of as many of the pad characters as needed to fill the entire out-
put string, append or prepend that string to the original string, and then use the 
Left$ or Right$ function to truncate the output string to the correct width. For 
example, if you call dhPadLeft like this:
dhPadLeft("123.45", 10, "$")
the code creates a string of 10 dollar signs and prepends that to the input string. 
Then it uses the Right$ function to truncate:
Right$("$$$$$$$$$$123.45", 10)
' returns "$$$$123.45"
VB Imaging - VB Code 93 Generator Tutorial
a test now to write and draw the best Code 93 write Code 93 linear barcode pictures on PDF documents, multi a Windows application or ASP.NET web form and copy
adding form fields to pdf files; change font pdf fillable form
Converting Strings
77
Using Soundex to Compare Strings
Long before the advent of computers, people working with names knew it was 
very difficult to spell surnames correctly and that they needed some way to group 
names by their phonetic spelling rather than by grammatical spelling. The algo-
rithm demonstrated in this section is based on the Russell Soundex algorithm, a 
standard technique used in many database applications.
The Soundex algorithm was designed for, and works reliably with, surnames only.
You can use it with any type of string, but its effectiveness diminishes as the text
grows longer. It was intended to make it possible to match various spellings of last
names, and its discriminating power is greatest in short words with three or more
consonants.
The Soundex algorithm is based on these assumptions:
• Many English consonants sound alike.
• Vowels don’t affect the overall sound of the name as much as the consonants 
do.
• The first letter of the name is most significant.
• A four-character representation is optimal for comparing two names.
For example, all three of the following examples return “P252”, the Soundex 
representation of all of these names:
dhSoundex("Paszinslo")
dhSoundex("Pacinslo")
dhSoundex("Pejinslo")
All three provide very distinct spellings of the difficult name, yet all three return 
the same Soundex string. As long as the first letters match, you have a good 
chance of finding a match using the Soundex conversion.
The concept, then, is that when attempting to locate a name, you’d ask the user 
for the name, convert it to its Soundex representation, and compare it to the Soun-
dex representations of the names in your database. You’d present a list of the pos-
sible matches to the user, who could then choose the correct one.
The Soundex algorithm follows these steps:
1. Use the first letter of the string, as is.
Chapter 1  Manipulating Strings
78
2. Code the remaining characters, using the information in Table 1.14.
3. Skip repeated values (that is, characters that map to the same value) unless 
they’re separated by one or more separator characters (characters with a 
value of 0).
4. Once the Soundex string contains four characters, stop looking.
The full code for dhSoundex, in Listing 1.19, follows these steps in creating the 
Soundex representation of the input string.
Listing 1.19: Convert Strings to Their Soundex Equivalent
Const dhcLen = 4
Public Function dhSoundex(ByVal strIn As String) As String
Dim strOut As String
Dim intI As Integer
Dim intPrev As Integer
Dim strChar As String * 1
Dim intChar As Integer
TA BLE 1.14:
Values for Characters in a Soundex String
Letter
Value
Comment
W,H
Ignored 
A,E,I,O,U,Y
0
Although removed from the output string, these letters act as 
separators between significant consonants
B,P,F,V
1
C,G,J,K,Q,S,X,Z
2
D,T
3
L
4
M,N
5
R
6
Converting Strings
79
Dim blnPrevSeparator As Boolean
Dim intPos As Integer
strOut = String(dhcLen, "0")
strIn = UCase(strIn)
blnPrevSeparator = False
strChar = Left$(strIn, 1)
intPrev = CharCode(strChar)
Mid$(strOut, 1, 1) = strChar
intPos = 1
For intI = 2 To Len(strIn)
' If the output string is full, quit now.
If intPos >= dhcLen Then
Exit For
End If
' Get each character, in turn. If the
' character's a letter, handle it.
strChar = Mid$(strIn, intI, 1)
If dhIsCharAlpha(strChar) Then
' Convert the character to its code.
intChar = CharCode(strChar)
' If the character's not empty, and if it's not
' the same as the previous character, tack it
' onto the end of the string.
If (intChar > 0) Then
If blnPrevSeparator Or (intChar <> intPrev) Then
intPos = intPos + 1
Mid$(strOut, intPos, 1) = intChar
intPrev = intChar
End If
End If
blnPrevSeparator = (intChar = 0)
End If
Next intI
dhSoundex = strOut
End Function
Now that you’ve found the Soundex string corresponding to a given surname, 
what can you do with it? You may want to provide a graduated scale of matches. 
Chapter 1  Manipulating Strings
80
That is, perhaps you don’t require an exact match but would like to know how 
well one name matches another. A common method for calculating this level of 
matching is to use a function such as dhSoundsLike, shown in Listing 1.20. To use 
this function, you supply two strings, not yet converted to their Soundex equiva-
lents, and dhSoundsLike returns a number between 0 and 4 (4 being the best 
match) indicating how alike the two strings are. (If you’d rather, you can pass in 
two Soundex strings, and dhSoundsLike won’t perform the conversion to Soun-
dex strings for you. In that case, set the optional blnIsSoundex parameter to True.)
Listing 1.20: Use dhSoundsLike to Compare Two Soundex Strings
Public Function dhSoundsLike(ByVal strItem1 As String, _
ByVal strItem2 As String, _
Optional blnIsSoundex As Boolean = False) As Integer
Dim intI As Integer
If Not blnIsSoundex Then
strItem1 = dhSoundex(strItem1)
strItem2 = dhSoundex(strItem2)
End If
For intI = 1 To dhcLen
If Mid$(strItem1, intI, 1) <> Mid$(strItem2, intI, 1) Then
Exit For
End If
Next intI
dhSoundsLike = (intI - 1)
End Function
It’s hard to imagine a lower-tech technique for performing this task. dhSounds-
Like simply loops through all four characters in each Soundex string. As long as it 
finds a match, it keeps going. Like a tiny game of musical chairs, as soon as it finds 
two characters that don’t match, it jumps out of the loop and returns the number 
of characters it found that matched; the more characters that match, the better the 
rating.
To test out dhSoundsLike, you could try
Debug.Print dhSoundsLike("Smith", "Smitch")
Documents you may be interested
Documents you may be interested