pdf viewer in asp net c# : Adding images to pdf files application Library tool html asp.net wpf online PowerGREP6-part3062

56 
26. Fix Invalid Characters in XML 
Sometimes, XML files generated by poorly written software or by careless programmers will contain lone 
characters like < and &. These will cause the XML file to be rejected by XML parsers. They must be replaced 
with the entities &lt; and &amp;. Using PowerGREP, we can easily fix this with a search-and-replace using 
two regular expressions. 
1.
Select the files you want to search through in the File Selector.  
2.
Start with a fresh action.  
3.
Set the action type to ´search-and-replaceµ. Set the search type to ´list of regular expressionsµ.  
4.
In the Search box, enter the regular expression «
<(?![_:a-z][-._:a-z0-9]*\b[^<>]*>)
» and 
make sure to leave ´case sensitive searchµ off. This regex matches any < symbol that is not followed 
by what looks like a valid XML tag. I’m using «
[_:a-z][-._:a-z0-9]*\b
» to check for an XML 
tag name, and «
[^<>]*
» to skip over any attributes. This regex isn’t 100% exact, but it’s easy to deal 
with. The example in the PowerGREP Library does include an exact regex. 
5.
In the Replacement box, type ´
&lt;
µ.  
6.
Click the button with the green plus symbol to the left of the Search box to prepare for another 
search-and-replace pair.  
7.
In the Search box, enter the regular expression «
&(?!(?:[a-z]+|#[0-9]+|#x[0-9a-f]+);)
». 
This regex matches any ampersand that is not followed by an entity name or character code.  
8.
In the Replacement box, type ´
&amp;
µ.  
9.
Set the target and backup file options as you like them.  
10.
Click the Preview button to run a test.  
11.
If all looks well, click the Replace button to actually replace the tags.  
This action will replace all invalid < and & characters with their respective entities. This action is a solution 
for XML files generated by a computer program that inserted arbitrary text into an XML structure without 
replacing the < and & characters in that text first. 
If the computer program inserts the invalid XML only between certain XML elements, you can leverage 
PowerGREP’s ´file sectioningµ feature to use simpler regular expressions. The example below assumes a 
computer-generated XML file that is valid, except that the program inserted some SQL code between 
<sql>...</sql> tags without replacing the ´greater thanµ, ´less thanµ, and ´andµ symbols in the SQL with 
XML entities. 
1.
Select the files you want to search through in the File Selector.  
2.
Start with a fresh action.  
3.
Set the action type to ´search-and-replaceµ.  
4.
Set ´file sectioningµ to ´search and collect sectionsµ. Leave the section search type as ´regular 
expressionµ.  
5.
In the ´section searchµ box, enter the regular expression «
<sql>(.*?)</sql>
» to match the <sql> 
element and its contents.  
6.
Turn on ´dot matches newlinesµ to allow the section to span across lines.  
7.
Enter ´
\1
µ into the ´section collectµ box. This restricts the section to the contents of the <sql> 
element without the element’s enclosing tags. This is important because we only want to replace the 
reserved characters in the element’s contents.  
8.
Set the search type of the main part of the action to ´delimited literal textµ.  
9.
Leave the ´search term delimiterµ field set to ´Line breakµ. Type a single equals sign in the ´search 
pair delimiterµ field.  
10.
Paste these three lines into the search box:  
Adding images to pdf files - insert images into PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Sample C# code to add image, picture, logo or digital photo into PDF document page using PDF page editor control
how to add a photo to a pdf document; add image to pdf preview
Adding images to pdf files - VB.NET PDF insert image library: insert images into PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Guide VB.NET Programmers How to Add Images in PDF Document
add image to pdf form; add a jpg to a pdf
57 
11.
<=&lt; 
12.
>=&gt; 
&=&amp; 
13.
Set the target and backup file options as you like them.  
14.
Click the Preview button to run a test.  
15.
If all looks well, click the Replace button to actually replace the tags.  
You can find this action in the PowerGREP.pgl standard library as ´Replace reserved characters in XML 
filesµ. 
VB.NET PDF Library SDK to view, edit, convert, process PDF file
Capable of adding PDF file navigation features to your VB to or from multiple supported images and documents. merge, append, and split PDF files; insert, delete
add picture to pdf in preview; add jpg to pdf preview
C# PDF Page Insert Library: insert pages into PDF file in C#.net
such as how to merge PDF document files by C# code PDF document pages and how to split PDF document in APIs, C# programmers are capable of adding and inserting
add photo pdf; add signature image to pdf
58 
27. Search Through or Skip Source Code Comments and 
Strings 
When searching through or modifying source code files, you’ll often want to restrict the search to comments 
and/or strings, or search through comments and/or strings exclusively. E.g. if you discover you’ve been 
misspelling  ´referrerµ  as ´refererµ throughout your  project, you’d probably want to fix the  mistake in 
comments and strings, but leave the actual source code untouched. Modifying the source code might break 
ties to other modules, a hassle not worth correcting a spelling mistake. (As a bit of trivia: the Apache web 
server stores the referring URL in a variable HTTP_REFERER for exactly this reason.) 
PowerGREP makes this easy with the "file sectioning" part of the action definition. The examples below only 
describe the file sectioning settings. Enter the actual search terms in the as usual. 
Search Through Comments and Strings Only 
1.
Select files and set the main part of the action as usual.  
2.
Select "search for sections´ from the µfile sectioning" list.  
3.
Set the section search type to ´list of regular expressionsµ. Make sure ´non-overlapping searchµ is 
on.  
4.
Add one regular expression to the list for each kind of string and comment the programming 
language you’re working with supports. E.g. for C or Java, use «
//.*
» for single-line comments, 
«
(?s)/\*.*?\*/
» for multi-line comments, and «
"[^"\\\r\n]*(?:\\.[^"\\\r\n]*)*"
» for 
strings. The «
(?s)
» in the second regex turns on ´dot matches newlinesµ for that regular expression 
only. Make sure the checkbox is not checked.  
Don’t Search Through Either Comments or Strings 
Searching through source code only, skipping comments and strings, is just as easy. Instead of selecting 
´search for sectionsµ in step 2 above, select "split along delimiters" instead. 
´Split along delimitersµ means that PowerGREP will treat comments and strings as delimiters. PowerGREP 
will make the main action search through everything between comments and strings, skipping the comments 
and strings themselves. 
Search Through Comments Only, or Strings Only 
You might be tempted to clear the checkboxes in front of the regular expressions in the file sectioning that 
match the parts of the file you don’t want to search through. But that won’t have the effect you intended. 
Unticking a checkbox disables that regular expression completely. This is be useful when you’re testing the 
effect of different regular expressions while designing a PowerGREP action. That is not what you want in 
this situation. E.g. if you disable the regexes for matching comments, the string regex will match strings in 
commented-out code. 
VB.NET PDF File & Page Process Library SDK for vb.net, ASP.NET
On this VB.NET PDF document page modifying page, you will find detailed guidance on creating, loading, merge and splitting PDF pages and Files, adding a page
add picture to pdf document; adding images to a pdf document
C# PDF File & Page Process Library SDK for C#.net, ASP.NET, MVC
Redact Text Content. Redact Images. Redact Pages. Annotation & PDF to two and four new PDF files are offered Provides you with examples for adding an (empty) page
adding an image to a pdf form; how to add picture to pdf
59 
To skip certain sections, select "search and collect sections´ from the µfile sectioning" list. A new Section 
Collect box will appear. In this box, enter ´
\0
µ for each sectioning step that the main action should search 
through. Leave it blank for sections that should be skipped. 
\0
is a backreference to the entire regular expression match. When using your own regular expressions to 
section  files,  you  can  also  use  backreferences  to  capturing  groups  in  the  regular  expression.  Then 
PowerGREP will restrict the main part of the action to the part of the file matched by that capturing group. 
C# Create PDF Library SDK to convert PDF from other file formats
What's more, you can also protect created PDF file by adding digital signature (watermark Create PDF from Jpeg, png, images. Create PDF from Open Office files.
adding an image to a pdf file; add photo to pdf form
C# PDF insert text Library: insert text into PDF content in C#.net
text character and text string to PDF files using online text to PDF page using .NET XDoc.PDF component in Supports adding text to PDF in preview without adobe
add picture to pdf form; how to add image to pdf form
60 
28. Convert Windows to UNIX Paths 
PowerGREP’s ´extra processingµ feature makes it very easy to search through text files and replace file 
references in those files from Windows paths into UNIX paths. The example replaces all references to files 
under c:\My Documents\ into /home/me/, converting backslashes into forward slashes and spaces into 
underscores. 
1.
Select the files you want to search through in the File Selector.  
2.
Start with a fresh action.  
3.
Set the action type to ´search-and-replaceµ. Leave the search type as ´regular expressionµ.  
4.
In 
the 
Search 
box, 
enter 
the 
regular 
expression 
«
c:\\My 
Documents([^\t\r\n<>|/:"]*[^\s<>|/:"])
» and make sure to leave ´case sensitive searchµ 
off. The regex matches a Windows path under c:\My Documents. The second character class makes 
sure that a space after the path is not matched as part of the path.  
5.
In the Replace box, enter ´
/home/me\1
µ  
6.
Tick the extra processing checkbox. An additional set of controls for entering search terms appears.  
7.
Set the extra processing search type to ´delimited literal textµ.  
8.
Enter a single semicolon in the ´extra item delimiterµ field, and a single equals sign in the ´extra pair 
delimiterµ field.  
9.
In the ´extra processing searchµ box, enter ´
\=/; =_
µ to substitute backslashes with forward 
slashes, and spaces with underscores.  
10.
Click the Preview button to run a test.  
11.
If all looks well, click the Replace button to actually replace the paths.  
Technically, this action consists of two search-and-replace operations. The one you define first is the main 
action. It searches through the files you marked in the File Selector. The ´extra processingµ search-and-
replace is applied each time the main action finds a match. Extra processing does not search through any files, 
but makes replacements in the replacement text of the main action, just before the main action substitutes the 
search match in the file. 
An example will make this clear. If you apply the above action to a single file containing the text ´
The path 
c:\My  Documents\Test  Files\Path  Test.txt  will  be  converted
µ,  PowerGREP  does  the 
following: 
1.
The  regular  expression  of  the  main  action  matches  „
c:\My  Documents\Test  Files\Path 
Test.txt
µ  
2.
The backreference in the replacement text of the main action is expanded. The replacement becomes 
´
/home/me\Test Files\Path Test.txt
µ  
3.
The extra processing part of the action is invoked on the replacement. It makes 4 substitutions, 
replacing  two  spaces  with  underscores,  and  two  backslashes  with  forward  slashes.  The  new 
replacement text for the main action becomes ´
/home/me/Test_Files/Path_Test.txt
µ  
4.
The main action deletes the search match from the file, and substitutes it with the new replacement 
text.  
5.
The whole process is repeated from step 1 for all remaining search matches in the file. There are 
none in this example.  
The end result is ´
The path /home/me/Test_Files/Path_Test.txt will be converted
µ 
You can find this action in the PowerGREP.pgl standard library as ´Convert Windows paths into UNIX 
pathsµ. 
C# PDF Digital Signature Library: add, remove, update PDF digital
Redact Text Content. Redact Images. Redact Pages. Annotation & Drawing. Add Sticky Help to Improve the Security of Your PDF File by Adding Digital Signatures.
add an image to a pdf in preview; add image to pdf online
C# PDF Library SDK to view, edit, convert, process PDF file for C#
Capable of adding PDF file navigation features to your C# to or from multiple supported images and documents. merge, append, and split PDF files; insert, delete
adding image to pdf in preview; how to add a jpg to a pdf
61 
29. Extract Data into a CSV File or Spreadsheet 
With PowerGREP, you can easily extract any sort of information from large numbers of documents, archives 
or spreadsheets, and save the collected information into a comma-delimited text files or CSV files. Here are 
the basic steps: 
1.
Select the files you want to extract information from in the File Selector.  
2.
Start with a fresh action.  
3.
Set the action type to ´collect dataµ. Leave the search type as ´regular expressionµ.  
4.
Enter the regular expression that matches a data record. Use capturing groups to extract specific 
parts of each record.  
5.
As the text to be collected, enter a comma-delimited list of backreferences to those capturing groups.  
6.
Set the target type to ´save results into a single fileµ if you want to create one CSV file that holds all 
the records. Specify the name of the file as the target location. Or, set the target type to ´save one file 
for each searched fileµ to create one CSV file for each original file. In that case, you may want to set 
the target destination type to ´path placeholdersµ. Enter 
c:\Output\%FILENAMENOEXT%.csv
or 
c:\Output\%FOLDER\FILENAMENOEXT%.csv
as the target location. The former placeholder will 
create one CSV file in the folder c:\Output for each source file with the same name as the source, 
but a .csv extension. The latter will also recreate the folder structure under c:\Output.  
7.
Leave ´between collected textµ set to ´Line breakµ. PowerGREP will insert a line break between 
each collected match. PowerGREP will not insert it before the first match or after the last match.  
8.
Click the Collect button to create the CSV files.  
Extracting a List of Delivery Addresses 
Suppose you have a large number of orders stored in text documents, and you want to make a list of the 
delivery addresses. In each file, the delivery address has the following layout: 
Deliver to: 
Joe N. Doe 
Street address (one or two lines) 
City, ST, 12345-6789 
In the CSV file, you want to have the following fields: 
name,address 1,address 2,city,state,zip
You can easily achieve this following the steps above. First, we need to create a regular expression that 
matches a delivery address, which is quite straightforward. We match "Deliver to:" first. Then we capture one 
line of text with «
(.*)\r\n
» which is the name. Then one or two lines with «
(.*)\r\n(?:(.*)\r\n)?
» 
which are the address. Finally, we match one line that ends with a state code «
[A-Z]{2}
» and ZIP code «
[0-
9]{5}(?:-[0-9]{4})
». Using «
[, ]+
» we allow commas and/or spaces as delimiters in the last line. The 
complete 
regular 
expression 
becomes: 
«
Deliver 
to:\r\n(.*)\r\n(.*)\r\n(?:(.*)\r\n)?(.*?)[, 
]+([A-Z]{2})[, 
]+([0-9]{5}(?:-[0-
9]{4}))
». 
The (?:group) parts in the regular expression are non-capturing groups. Those simply group items to repeat 
them together. The (group) parts are capturing groups. They’re essential in allowing us to insert part of the 
regular expression match into the text to be collected. In this case, we simply reference each group once. As 
the text to be collected, enter: ´
\1,\2,\3,\4,\5,\6
µ. If a capturing group did not participate in the match, 
VB.NET PDF insert text library: insert text into PDF content in vb
Multifunctional Visual Studio .NET PDF SDK library supports adding text content to adobe PDF to add a single text character and text string to PDF files in VB
add picture to pdf online; add a picture to a pdf
62 
it is substituted with nothing. E.g. in a delivery address with only one line for the street address, 
\4
will 
remain blank. 
Set the target type to save results into a single file to get one CSV file with all delivery addresses. You can 
then open the CSV file in a spreadsheet program or other application. 
You can find this action in the PowerGREP.pgl standard library as "CSV: Extract data into a CSV file or 
spreadsheet". 
63 
30. Padding and Unpadding CSV Files 
When viewing comma-delimited text files or CSV files in a text editor, the columns won’t align unless the 
fields were padded with spaces to make their widths equal. Other applications may treat any whitespace as 
significant, requiring an unpadded CSV file. With PowerGREP, you can easily pad and unpad CSV files. 
Padding CSV Files 
To pad CSV files, we’ll search using a regular expression that matches one CSV field. As the replacement, 
we’ll re-insert the regex match padded with spaces to a specific length. Padding is easy in PowerGREP with 
match placeholders. 
1.
Select the files you want to pad in the File Selector.  
2.
Start with a fresh action.  
3.
Set the action type to ´search-and-replaceµ. Leave the search type as ´regular expressionµ.  
4.
Enter  the regular expression «
 \t]*+("[^"\r\n]*+"[ \t]*+|[^,\r\n]*+)
». This regular 
expression matches a single field in a CSV file. The field can be enclosed in double quotes, and extra 
whitespace is allowed before and after the quotes.  
5.
Enter ´
%GROUP1:40L%
µ as the replacement text. This match placeholder inserts the text matched by 
the first (and only) capturing group in the regular expression, with as many spaces added at the left 
side to make it at least 40 character long. Fields that are longer to begin with will not be truncated. 
We’re using the capturing group in the regular expression to discard any padding that may already be 
present in the file, so everything gets padded to 40 characters.  
6.
Set the target and backup file options as you like them.  
7.
Click the Preview button to run a test.  
8.
If all looks well, click the Replace button to actually pad the CSV files.  
You can find this action in the PowerGREP.pgl standard library as "CSV: Pad fields". 
Unpadding CSV Files 
To remove the padding from the CSV file, you can use the exact same action. Only the replacement text will 
be different. The regular expression uses a capturing group to store the actual text of the CSV field, separate 
from the whitespace at the start of the field that the overall regular expression also matches. So to remove the 
padding, all we need to do is to replace the overall regex match with the text matched by the capturing group. 
You can do this with the placeholder ´
%GROUP1%
µ or simply the backreference ´
$1
µ. 
You can find this action in the PowerGREP.pgl standard library as "CSV: Unpad fields". 
64 
31. Collect a Numbered List 
Using a ´collect dataµ action with match placeholders makes it easy to create all kinds of numbered lists. You 
could create a simple numbered list of all search matches as follows: 
1.
Select the files you want to list matches from in the File Selector.  
2.
Start with a fresh action.  
3.
Set the action type to ´collect dataµ. Leave the search type as ´regular expressionµ.  
4.
Enter the regular expression that matches the items you want to collect. Use capturing groups to 
extract specific parts of each record.  
5.
As the text to be collected, enter ´
%MATCHN%. \0
µ. %MATCHN% is a placeholder for the number 
of the match. \0 is a backreference to the entire regex match.  
6.
Set the target type to ´save results into a single fileµ to output all search matches as one long list in a 
single  file.  If  you  choose  to  save  one  file  for  each  searched  file,  you’ll  probably  want  to 
use %MATCHFILEN% instead of %MATCHN% in the text to be collected, so the numbering 
starts from 1 in each file.  
7.
Leave ´between collected textµ set to ´Line breakµ. PowerGREP will insert a line break between 
each collected match. PowerGREP will not insert it before the first match or after the last match.  
8.
Click the Collect button to create the numbered list.  
You can find this action in the PowerGREP.pgl standard library as ´Collect a numbered listµ. 
65 
32. Collect a List of Header and Item Pairs 
This example illustrates how you can use file sectioning to extract items from sections. It also shows how 
named capturing groups carry over regex matches from the file sectioning to the main part of the action. This 
makes it easy to collect both part of the section (e.g. its header), and part of the item, for each item found in 
each section. 
Windows applications often store their settings in .ini files. Such files consist of one or more headers, with 
one or more name and value pairs. 
[Header1] 
Name1=Value1 
Name2=Value2 
[Header2] 
Name3=Value3 
Name4=Value4 
Name5=Value5 
; etc... 
With PowerGREP, you can easily extract a list of header and item pairs from such a list. E.g. let’s produce the 
following list from the above: 
Header1/Name1 
Header1/Name2 
Header2/Name3 
Header2/Name4 
Header2/Name5 
To do this, we need two regular expressions. One to get the headers, and another to get the items for each 
header. This impossible with most grep tools, since they only allow you to use one regular expression. 
PowerGREP’s file sectioning feature makes this task very straightforward. 
You can find this action in the PowerGREP.pgl library as "Collect header/item pairs from .ini files". 
1.
Select the files you want to search through in the File Selector.  
2.
Start with a fresh action.  
3.
Set the action type to ´collect dataµ.  
4.
Select ´search for sectionsµ from the ´file sectioningµ list. Leave the section search type as ´regular 
expressionµ.  
5.
In 
the 
Section 
Search 
box, 
enter 
the 
regular 
expression 
«
^\s*\[(?'header'[^]\r\n]+)](?:\r\n\s*+[^[].*+)+
»  and  make  sure  to  leave  ´dot 
matches newlinesµ off. This regex matches a header with «
^\s*\[(?'header'[^]\r\n]+)]
» and 
everything that follows it up to the next header with «
(?:\r\n\s*+[^[].*+)+
». It contains one 
named capturing group ’header’.  
6.
In  the  Search  box  in  the  main  part  of  the  action,  enter  the  regular  expression 
«
^([^=;\r\n]+)=.*$
» and make sure to leave ´dot matches newlinesµ off. This regex matches a 
single name=value pair, and captures the name into the first backreference.  
7.
In the Collect box, enter ´
${header}/\1
µ to collect the name of the header (named capturing 
group carried over from the file sectioning) and the name of the value (first backreference), delimited 
by a forward slash.  
8.
Click the Preview button to see the results.  
Documents you may be interested
Documents you may be interested