©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 211 
Removing GUIDs from png Files Referenced in HTML Exports 
This approach is designed to address a use scenario where each time you export a report to 
HTML, image files are created (charts, logos, etc.) with different names. The references to these 
files use a GUID to make the file name unique, like this:  
<img src="Sales{EF6A442D-0DDA-436A-A178-2410853A7E05}.png" 
Where the Sales portion is based on the export file name. 
In most 
cases, the image files actually don’t need unique 
GUIDy names and we can DeGUID 
(remove the GUID portion) from the file reference and from the actual png file name.  
The DeGUID process detects if each png file is unique or a clone of another image within the 
same report (typical in cases of logos repeating on each page). If the png is not a clone (typical in 
reports with multiple charts), the GUID is replaced by an incrementing number (Sales_1.png, 
Sales_2
.png, etc.). This ensures the local and web folders don’t accumulate unique GUIDy 
names each time the scheduled process runs. It also saves space because while Crystal exports 
the same logo on different pages as multiple png files, the DeGUID process in Visual CUT 
automatically consolidates these clones as a single file. 
You can elect to either delete the GUIDy png files (typical in cases the images are static (logos). 
Or you can elect to rename the png files to match the renamed references in the HTML source. 
The command line argument structure is as follows (all in 1 line): 
"TXT_DeGUID_png:InFile||Options" 
The parameters (after the ":") are separated by a "||" and are as follows: 
1. InFile: the file path & name for the source HTML file.   
2. Options: 
DeleteLinkedFile to delete the referenced png files (Scenario 1 above) 
RenameLinkedFile to rename (DeGUID) the referenced png files (Scenario 2 above).  
Otherwise, None  
For example, the following directive: 
"TXT_DeGUID_png:c:\temp\Sales.htm||RenameLinkedFile" 
Would remove all GUIDs from png file references in the HTML export. It will also rename the 
referenced png files by removing the GUIDs from their file names. 
More complex scenarios (you wish to rename references to a logo image to a static name that 
doesn’t depend on the 
export file name) can be handled by the more complex command line 
argument described in the next section (TXT_Replace_Tokens).  
Dynamic Field Names 
You can use field or formula names within the command line argument (just like you drag & 
drop fields & formulas into the various options in the 3rd tab within Visual CUT.  The dynamic 
content of these fields/formulas would be substituted into the command line argument.  
Pdf searchable text - search text inside PDF file in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Learn how to search text in PDF document and obtain text content and location information
how to select all text in pdf file; make pdf text searchable
Pdf searchable text - VB.NET PDF Text Search Library: search text inside PDF file in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Learn How to Search Text in PDF Document and Obtain Text Content and Location Information in VB.NET application
text searchable pdf file; pdf searchable text converter
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 212 
Replacing Content in Text/HTML Files 
Token Approach 
This approach allows you to change the content of exported TEXT or HTML file. 
The command line argument structure is as follows (all in 1 line): 
"TXT_Replace_Tokens:InFile||OutFile||Start1^^End1^^replace1^^Location1^^Options1                                                             
::Start2^^End2^^replace2^^Location2^^Options2||Global_Options" 
The parameters (after the ":") are separated by a "||" and are as follows: 
1. InFile: the file path & name for the source text file.   
2. OutFile: the file path & name for the resulting text file.   
- If no OutFile is specified, the source file gets updated 
if the target folder doesn’t exist, Visual CUT creates it
- if no path is specified (just name) the path of the source file is used 
3. Find & Replace Directives: find and replace directives (separated from each other by "::").  
Each directive has 5 elements separated by a ‘
^^
’:
Start Token (in the example above, this would be 
<img src=" 
End Token (in the example above, this would be 
Replace with: text to replace the text found between start and end tokens  
LocationLAST for last found match, ALL for all, 1 for 1
st
found match, 2 for 2
nd 
OptionsRenameLinkedFile if you want to rename a matching file.  
DeleteLinkedFile to delete a matching file (if clean file name already exists).  
Otherwise, None  
4. Global Options: Leave blank 
C# PDF Convert to Text SDK: Convert PDF to txt files in C#.net
NET project. Powerful .NET control for batch converting PDF to editable & searchable text formats in C# class. Free evaluation library
how to make pdf text searchable; select text in pdf
Online Convert PDF to Text file. Best free online PDF txt
PDF document conversion SDK provides reliable and effective .NET solution for Visual C# developers to convert PDF document to editable & searchable text file.
convert a scanned pdf to searchable text; how to make a pdf file text searchable
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 213 
For example, the following directive: 
"TXT_Replace_Tokens:c:\temp\Sales.htm||||<img src="^^" border="0" width="52px"     
height="32px"></div>^^LionHead.png^^ALL^^RenameLinkedFile||" 
you can replace multiple image files, typically named as variations of:  
Output_File{1A49A55D-544F-472F-B40F-5B7062C3D47A}.png
with a single image file. 
"TXT_Replace_Tokens:c:\temp\Sales.htm||c:\temp\Sales.htm||
<img src="
^^ 
" border="0" width="52px" height="32px"></div>^^MyLogo.png^^ALL^^RenameLinkedFile||"
will change all references to an image with dimensions of 52x32 with a single static reference to 
MyLogo.png.  Due to the 
RenameLinkedFile
directive all the temporary matching files such as  
Output_File{1A49A55D-544F-472F-B40F-5B7062C3D47A}.png    
Will be renamed to MyLogo.png  
This has 2 effects:  
1. 
Less clutter in the export folder because multiple image files may be replaced by a 
single image file 
2. 
Less files need to be attached to an email message or uploaded to a web server 
3. 
The web server and the client browser can cache MyLogo.png, improving 
performance 
Dynamic Field Names 
You can use field or formula names within the command line argument (just like you drag & 
drop fields & formulas into the various options in the 3rd tab within Visual CUT.  The dynamic 
content of these fields/formulas would be substituted into the command line argument.  
VB.NET PDF Convert to Text SDK: Convert PDF to txt files in vb.net
keeping original layout. VB.NET control for batch converting PDF to editable & searchable text formats. Support .NET WinForms, ASP
converting pdf to searchable text format; how to select text in pdf reader
VB.NET Image: Robust OCR Recognition SDK for VB.NET, .NET Image
for VB.NET provides users fast and accurate image recognition function, which converts scanned images into searchable text formats, such as PDF, PDF/A, WORD
select text in pdf reader; can't select text in pdf file
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 214 
Inserting Base64-Encoded Files Inside Text/XML 
This option was developed for a customer who needed to export invoice data to an XML file 
containing an embedded image encoded with Base64 (a method that converts from binary to text  
representation). The XML file is then transmitted to a business partner using SFTP_Upload.  
The process takes the following steps: 
1. 
A TEXT export creates the XML file with a reference to a file that should be 
embedded at a particular location.  The reference has the following structure: 
[Insert_File_Base64:file_path_and_name]] 
for example, 
[Insert_File_Base64:C:\Temp\Invoice_32556_image.pdf]] 
2. 
Using a TXT_Replace_Base64 command line argument directs Visual CUT to 
search the XML file, locate such references, and replace them (including the 
surrounding tags) with the Base64 encoding of the specified file. 
The command line argument structure is as follows (all in 1 line): 
"TXT_Replace_Base64:InFile||OutFile||Options" 
The parameters (after the ":") are separated by a "||" and are as follows: 
1. InFile: the file path & name for the source text file.   
2. OutFile: the file path & name for the resulting text file.   
- If no OutFile is specified, the source file gets updated 
if the target folder doesn’t exist, Visual CUT creates it
- if no path is specified (just name) the path of the source file is used 
3. Options: Leave blank 
Notes: 
You can have any number of references embedded in the exported text file. Visual CUT 
will replace all of them. 
You can use field or formula names within the command line argument (just like you 
drag & drop fields & formulas into the various options in the 3rd tab within Visual CUT.  
The dynamic content of these fields/formulas would be substituted into the command line 
argument.  
C# PDF: C# Code to Draw Text and Graphics on PDF Document
Draw and write searchable text on PDF file by C# code in both Web and Windows applications. C#.NET PDF Document Drawing Application.
how to select text on pdf; select text in pdf file
C# Create PDF Library SDK to convert PDF from other file formats
The PDF document file created by RasterEdge C# PDF document creator library is searchable and can be fully populated with editable text and graphics
select text pdf file; find text in pdf image
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 215 
Changing Text File Encoding 
This option was developed for a customer who needed to change the encoding of a text export 
from ANSI to UFT-8.  
The command line argument structure is as follows: 
… 
"TXT_Encode:InFile||OutFile||fromEncoding>>toEncoding||Options" 
The parameters (after the ":") are separated by a "||" and are as follows: 
1. InFile: the file path & name for the source text file.   
2. OutFile: the file path & name for the resulting text file.   
- If no OutFile is specified, the source file gets updated 
if the target folder doesn’t exist, Visual CUT creates it
- if no path is specified (just name) the path of the source file is used 
3. The original and new encoding, separated by 
a ‘
>>
’.  
4. Options: Leave blank 
For example, to convert from ANSI to UTF-8: 
… 
"TXT_Encode:c:\temp\ {@invN}.xml||c:\temp\{invN}.xml||windows-1252>>utf-8||" 
or 
… 
"TXT_Encode:c:\temp\ {@invN}.xml||||windows-1252>>utf-8||" 
Notes: 
Valid encoding codes: 
us-ascii,unicode,unicodefffe,ebcdic,iso-8859-1,iso-8859-2,iso-8859-3,iso-8859-4, 
iso-8859-5,iso-8859-6,iso-8859-7,iso-8859-8,iso-8859-9,iso-8859-13,iso-8859-15,windows-874,windows-1250, 
windows-1251,windows-1252,windows-1253,windows-1254,windows-1255,windows-1256,windows-1257, 
windows-1258,utf-7,utf-8,utf-32,utf-32be,shift_jis,gb2312,ks_c_5601-1987,big5,iso-2022-jp,iso-2022-kr,euc-jp, 
euc-kr,macintosh,x-mac-japanese,x-mac-chinesetrad,x-mac-korean,x-mac-arabic,x-mac-hebrew,x-mac-greek, 
x-mac-cyrillic,x-mac-chinesesimp,x-mac-romanian,x-mac-ukrainian,x-mac-thai,x-mac-ce,x-mac-icelandic,x-mac-turkish,x-
mac-croatian,asmo-708,dos-720,dos-862, ibm01140,ibm01141,ibm01142,ibm01143,ibm01144,ibm01145,ibm01146, 
ibm01147,ibm01148,ibm01149,ibm037,ibm437,ibm500,ibm737,ibm775,ibm850,ibm852,ibm855,ibm857,ibm00858, 
ibm860,ibm861,ibm863,ibm864,ibm865,cp866,ibm869,ibm870,cp875,koi8-r,koi8-u
You can use field or formula names within the command line argument (just like you drag & 
drop fields & formulas into the various options in the 3rd tab within Visual CUT).  The 
dynamic content of these fields/formulas would be substituted into the command line 
argument.  
C# HTML5 Viewer: Load, View, Convert, Annotate and Edit Word
C# users can convert Convert Microsoft Office Word to searchable PDF online, create multi empowered to add annotations to Word, such as add text annotations to
pdf find and replace text; pdf text search
VB.NET Create PDF from Text to convert txt files to PDF in vb.net
Best VB.NET adobe text to PDF converter library for Visual Studio .NET project. Batch convert editable & searchable PDF document from TXT formats in VB.NET
searching pdf files for text; search pdf files for text
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 216 
ODBC Export Functionality 
Visual CUT (for Crystal 9 and above) provides ODBC Export options that are not available in 
Crystal alone. As shown below, the ODBC Export Options dialog allows you to select Abort 
(default Crystal action), Append, or Replace 
as the action when the target table already 
exists: 
Note: the Table Name is controlled by the 
Export File Name (that option is not on the 
dialog shown here but on the main 
email/export processing options tab of Visual 
CUT). Since that option accommodates 
dynamic content, you can control the table 
name using field
s/formulas in the report…
Append Functionality 
By selecting append, you can add data to an existing table.  One use for this is for recording 
snapshots of data over multiple periods of time. For example, your database may show current 
inventory levels or current account balances but it is very difficult to generate a report that shows 
inventory levels or account balances at the end of each month for the last few years. By 
scheduling Visual CUT to run at the end of each month and append information reflecting the 
inventory levels or the account balances at that time, you enable easy tracking of that information 
over time.  In Data Warehousing jargon, this is called a snapshot data warehouse. 
Another use scenario is to record the fact that certain records were processed by Visual CUT and 
to avoid duplicate emails.  For example, as orders arrived throughout the day, you can schedule 
Visual CUT to run every 5 minutes and email order confirmation messages to the customers. By 
appending to an ODBC table, you can record which orders have already been confirmed.  
Alternatively, you can use the Skip_Recent command line argument described in the section   
Avoiding Duplicate Processing on page: 52.   
Another use scenario is to Extract, Transform, and Load (ETL) data into a data warehouse 
or across data sources without needing expensive ETL tools or consultants.    
Replace Functionality 
A typical use for the Replace option is to generate temporary tables for use by other 
processes or crystal reports.  For example, Crystal Reports can't aggregate other aggregate 
values (e.g., average group totals) and can't sort groups based on formulas that use aggregate 
values. However, you can create a batch file that calls Visual CUT twice: first to export a report 
with aggregate values to a temporary table and then to process a 2
nd
report that uses the 
temporary table as input. 
C# Create PDF from Text to convert txt files to PDF in C#.net, ASP
Visual Studio .NET project. .NET control for batch converting text formats to editable & searchable PDF document. Free .NET library for
how to search text in pdf document; convert pdf to searchable text online
VB.NET Create PDF from Word Library to convert docx, doc to PDF in
Export all Word text and image content into high quality PDF without losing formatting. Easy to create searchable and scanned PDF files from Word.
find and replace text in pdf file; pdf text search tool
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 217 
Capturing & Processing Incoming Emails 
Visual CUT can automatically capture incoming emails from your email server to a database 
table. A Crystal report using the data in that table can then be processed in Visual CUT to trigger 
reactions to that email, such as:  
Export/Print/FTP/Email information or reports 
Update databases using After_Success_SQL 
Trigger other applications or Visual CUT processes using After_Burst_Batch  
Use Scenarios 
Here are a few examples of the types of workflow automation this enables: 
Requesting a Report via a Simple Web Form or via Email:  
o
A manager, employee, customer, or supplier can use a simple web form (no web 
application required) to request a report.  
o
The information gets emailed to your email server 
o
Visual CUT captures the email into the EMAIL_CAPTURE table.  
o
A Crystal report using that table inside Visual CUT uses After_Burst_Batch to 
trigger another Visual CUT process by specifying a report to run, parameters, 
email destination, etc. 
o
The triggered Visual CUT report runs and emails the output to the requesting 
employee/customer. 
Note: using the same exact process, you can let customers request information or 
reports by sending an email. For example, a customer may request information about 
the status of their order, the balance in their account, etc.  
Here is a sample email from ABP Reports’ 
Boomerang system, which uses this 
technique, allowing users to request reports via email by simply clicking on a 
hyperlink:  
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 218 
Updating a Database via a Simple Web Form: 
o
A manager, employee, customer, or supplier can provide information (for 
example, complete a registration for an event or provide order status information) 
using a simple web form (no web application required).  
o
A Submit button triggers an email with the form information to your email server. 
o
Visual CUT captures the email into the EMAIL_CAPTURE table 
o
A Crystal report using that table inside Visual CUT uses After_Burst_SQL to 
update another database table (for example, inserting the information into a 
REGISTRATION table.   
Collecting Customer Feedback & Updating a Database via Email Links: 
o
You can use Visual CUT to burst Customer Satisfaction survey emails when a 
purchase, course, visit, RFQ, event, or tech support case is closed.  
o
Inside the HTML email message you embed 5 mailto hyperlinks corresponding to 
ratings of: PoorFairGood, Very Good, and Excellent.   
o
This allows the customer to simply click on one of these links to trigger an email 
back to you with the appropriate ratings.  
o
Visual CUT captures the email into the EMAIL_CAPTURE table.  
o
A Crystal report using that table inside Visual CUT uses After_Burst_SQL to 
insert feedback records into a CUSTOMER_FEEDBACK table. 
Importing Data from Email Attachment into a Database Table:  
o
Email with excel file attachment is captured and Visual CUT extracts the 
attachment to a specified folder.  
o
1st Crystal report reads records from the Email_Capture table and bursts to a 
dummy VC_Skip_Export.  
o
After_Burst_Batch triggers a 2
nd
report that uses Excel as data source, but 
redirects it (using Database_Path command line argument) to retrieve data from 
the email attachment file. 
o
Visual CUT exports the data from the Excel file via ODBC and appends it to a 
specified table. 
Requesting & Capturing Management Decisions Via Email: 
o
Imagine you have a PO table with Purchase Order records that are first inserted 
with a status of ‘Requested’. 
o
You can use Visual CUT to burst and email to the manager in charge of each 
department Approval Requests for these POs.  
o
Attached to each emails you would provide a PDF file with detailed information 
about the requested Purchase Orders.  
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 219 
o
Inside the HTML email message body, you embed 2 mailto hyperlinks allowing 
the manager to trigger a 
Reject
or 
Approve
email back to you.  
Note: APB Reports (a BI Consulting firm with impressive record of leveraging 
Visual CUT for a variety of use scenarios) implemented such a process for one of 
their clients. Here is what the email message looks like: 
o
Here is the email message resulting from clicking on the Approve hyperlink: 
o
Note that the email message contains an encrypted text. This ensures the integrity 
of the emailed information can’t be compromised on its way back to us.  
o
The encrypted text contains all the necessary data to identify the PO and indicate 
rejection or approval (each hyperlink has a different decision code embedded in 
the encrypted text). 
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 220 
o
The encrypted text for each emailto hyperlink is generated via a Crystal formula 
using the BlowFishEncrypt() function provided by the CUT Light UFL. 
o
The email triggered by clicking on the Reject or Approve hyperlink gets sent to 
your email server 
o
Visual CUT captures the email into the EMAIL_CAPTURE table.  
o
A Crystal report using that table inside Visual CUT decrypts the text in the email 
message body (or subject line) using the BlowFishDecrypt() function provided 
by the CUT Light UFL.  
o
Using After_Burst_SQL, Visual CUT then updates the status of the Purchase 
Order to ‘Approved’ or ‘Rejected’. The SQL statement may look something like 
this: 
Triggering Email Capture 
An Email Capture process gets triggered by running a report in Visual CUT using a command 
line with an "Email_Get:Directives_Key"argument.  For example (all in 1 line): 
The Directive key is used to look up in the DataLink_Viewer.ini a matching key under the 
[Email_Get] section.  
[Email_Get] ini Section 
Each Directives Key can specify multiple directives separated by a ‘
||
’ delimiter:
Notes: 
1. The Email_Get process gets triggered BEFORE the report actually retrieves data from the 
database.   
2. The ODBC DSN used by the report is automatically used as the ODBC DSN target for loading 
captured emails into the target table. Visual CUT reuses the saved login information for the 
report in order to update the target email capture table.   
3. The target table is specified in the directive ini section (see next page).  
4. The tables used by the report are not restricted to the email capture target table.  
5. By default, processing of the report is aborted if zero new emails where captured and inserted 
into the database. To change that behavior, set Abort_Report_Process_If_No_New_Emails in the 
directive ini section to False. 
"C:\Program Files\Visual CUT 11\Visual CUT.exe" -e "C:\Test\Email_Capture.rpt" "Email_Get:P2" 
"Email_Get:P2" 
" 
[Email_Get] 
P1
=Get_PO_Decisions 
P2
=Get_Evaluation_Requests||Get_Camp_Feedback||Get_Booking_Requests 
ests 
'UPDATE PO SET PO_Status = '& {@NEWSTATUS} & ','& (IF {@NEWSTATUS} 
= '8' THEN (' PO_COMMENT = '& "'PO approved by "& {@EMAIL} & "'")ELSE(' 
ELSE(' 
PO _COMMENT = '& "'PO rejected by "& {@EMAIL} & "'"))&' WHERE PO_ID = ' 
ID = ' 
& {@PO_ID} & ' AND  PO_STATUS = 6' 
Documents you may be interested
Documents you may be interested