©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 101 
Uploading to an FTP Server (new approach) 
You can instruct Visual CUT to FTP files to a web server. This can be particularly useful when 
you wish to export reports but email only a link to the exported file (avoiding the need to attach 
the export file).  
The FTP Upload process occurs before emailing but after exporting and post-export 
processing.  This allows you, for example, to merge pdf files, add bookmarks, table of content, 
and page numbers, and then upload the final pdf file so users can access it via the web.  
The command line argument structure is as follows: 
…"FTP_Upload:Mode>>Server>>User>>Password>>file(s)>>directory"
The parameters (after the ":") are separated by a ">>" and are as follows: 
1. FTP Connection Mode.  Possible Values are: 
a. Passive_1  
b. Active_1 
c. AUTH_SSL/TLS_1 
Visual CUT will detect server options and automatically selects SSL 3.0 or TLS 1.0 
known as "AUTH SSL" or "AUTH TLS"   
d. FTPS_1  (known as "Implicit SSL") 
2.  FTP Server: the Name or IP address of the FTP host  
3.  User _ID for authenticating to the ftp server 
4.  Password for authenticating to the ftp server (can reference Encrypted Password Name) 
5. File_List: comma separated list of the files (path & name) you wish to upload. You can 
specify file names using wild cards, and Visual CUT will upload all matching files.   
6. Target directory:  The destination folder for the uploaded file(s).   
For example :  Sales
/
{@Year}
/
{@Product}  
If some target folder levels don't exist they are created by Visual CUT.  
7. Maximum_Age_In_Minutes (optional). If specified, older files are skipped. Useful when 
specifying files via wild card expressions and targeting newly created files. 
As always, you can use report field/formula names within the command line argument.  
The dynamic content of these fields/formulas would be substituted into the argument.  
For example: 
…"FTP_Upload:Passive_1>>74.220.207.67>>user>>pass>>{@Export_File}>>/public_html/Download"
or
…"FTP_Upload:Passive_1>>74.220.207.67>>user>>pass>>{@Export_File}>>/public_html/Download>>10"
Pdf metadata editor online - add, remove, update PDF metadata in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Allow C# Developers to Read, Add, Edit, Update and Delete PDF Metadata
pdf xmp metadata viewer; pdf remove metadata
Pdf metadata editor online - VB.NET PDF metadata library: add, remove, update PDF metadata in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Enable VB.NET Users to Read, Write, Edit, Delete and Update PDF Document Metadata
pdf metadata viewer online; adding metadata to pdf files
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 102 
Uploading to an SFTP Server  
You can instruct Visual CUT to upload files via the SFTP protocol using SFTP_Upload 
command line argument. SFTP and FTP are two completely different protocols.   
Don’t confuse FTP_Upload (described in the prior page) with SFTP_Upload. 
The SFTP_Upload process occurs before emailing but after exporting and post-export 
processing.  This allows you, for example, to merge pdf files, add bookmarks, table of content, 
and page numbers, and then upload the final pdf file so users can access it via the web.  
The command line argument structure is as follows: 
…"SFTP_Upload:Arguments"
The arguments (after the ":") are separated by a ">>" and are as follows: 
1. FTP Port.  Typically 22 
2.  FTP Server: the Name or IP address of the SFTP host  
3. Authentication Mode: PW
(Password),
PK 
(Private Key), 
PWPK
(Both)
4.  User _ID for authenticating to the server 
5.  Password for authenticating to server (leave blank if Authentication Mode is PK
6.  Private Key File e.g., MyPrivateKey.pem (leave blank if Authentication Mode is PW) 
7.  Private Key File Password needed only for encrypted Private Key Files. Blank otherwise  
8. File_List: comma separated list of the files (path & name) you wish to upload. You can 
specify file names using wild cards, and Visual CUT will upload all matching files.   
9. Target directory (can be blankThe destination folder for the uploaded file(s).  
Speci
fied as absolute path or as relative to the user’s account home directory. 
If this argument is left blank, the file would be placed in the 
user’s account home directory
If some target folder levels don’t exist they are created by Visual CUT.
10. Maximum_Age_In_Minutes (can be blank). If specified, older files are skipped. Useful 
when specifying files via wild card expressions and targeting newly created files. 
As always, you can use report field/formula names within the command line argument.  
The dynamic content of these fields/formulas would be substituted into the argument.  
For example: 
…"SFTP_Upload:
22>>ms.com
>>
PW
>>
user1
>>pass1>>>>>>{@Export_File}>>public_html/Download
>>
"
or 
"SFTP_Upload:
22>>ms.com
>>
PK
>>
user1
>>>>c:\keys\ido_dsa>>>>{@Export_File}>>public_html/Download>>10"
 
C# HTML5 PDF Viewer SDK to view, annotate, create and convert PDF
RasterEdge C#.NET HTML5 PDF Viewer and HTML5 PDF Editor are professional online PDF manipulation tools, which are compatible with both 32-bit and 64-bit
pdf metadata online; batch pdf metadata editor
VB.NET PDF- HTML5 PDF Viewer for VB.NET Project
ASP.NET PDF Viewer; VB.NET: ASP.NET PDF Editor; VB.NET to PDF. Image: Remove Image from PDF Page. Image Link: Edit URL. Bookmark: Edit Bookmark. Metadata: Edit, Delete
pdf metadata; metadata in pdf documents
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 103 
Downloading from an FTP Server 
The FTP Download process occurs before emailing but immediately after exporting.  
The command line argument structure is as follows: 
…"FTP_Download:Mode>>Server>>User>>Password>>file(s)>>directory"
The parameters (after the ":") are separated by a ">>" and are as follows: 
1. FTP Connection Mode.  Possible Values are: 
a. Passive_1  
b. Active_1 
c. AUTH_SSL/TLS_1 
Visual CUT will detect server options and automatically selects SSL 3.0 or TLS 1.0 
known as "AUTH SSL" or "AUTH TLS"   
d. FTPS_1  (known as "Implicit SSL") 
2.  FTP Server: the Name or IP address of the FTP host  
3.  User _ID for authenticating to the ftp server 
4.  Password for authenticating to the ftp server (can reference Encrypted Password Name) 
5. File_List: semi-colon (;) separated list of the files (path & name) you wish to upload. You 
can specify file names using wild cards (*), and Visual CUT will download all matching 
files.   
6. Target directory:  The local destination folder for the downloaded file(s).   
For example :  c:\temp\  
If some target folder levels don't exist they are created by Visual CUT.  
As always, you can use report field/formula names within the command line argument.  
The dynamic content of these fields/formulas would be substituted into the argument.  
For example: 
This downloads 2 specific files (if source folder remains the same, can specify it only once): 
"FTP_Download:Passive_1>>www.MilletSoftware.com>>milletso>>Encrypted_Password_SFTP>>/public_html/Do
wnload/Sales/{@Year_Parameter}/Sales for Hybrid in 2004.pdf;Sales for Locks in 
2004.pdf>>c:\temp\FTP_Download" 
This uses wild card (*) expression to download multiple files: 
"FTP_Download:Passive_1>>www.MilletSoftware.com>>milletso>>Encrypted_Password_SFTP>>/public_html/Down
load/Sales/{@Year_Parameter}/*.pdf>>c:\temp\FTP_Download"
C# TIFF: TIFF Metadata Editor, How to Write & Read TIFF Metadata
C# TIFF - Edit TIFF Metadata in C#.NET. Allow Users to Read and Edit Metadata Stored in Tiff Image in C#.NET Application. How to Get TIFF XMP Metadata in C#.NET.
read pdf metadata java; pdf metadata editor online
C# HTML5 PDF Viewer SDK to create PDF document from other file
WPF Viewer & Editor. WPF: View PDF. WPF: Annotate PDF. WPF NET edit PDF bookmark, C#.NET edit PDF metadata, C#.NET NET read barcodes from PDF, C#.NET OCR scan PDF
add metadata to pdf programmatically; pdf xmp metadata
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 104 
Extract Files Stored in Database 
Databases can store images, documents, and media in binary column data types. You may need 
to extract such files to the file system for further processing (merging, emailing, etc.). Visual 
CUT can automate this using the SQL_Extract_Files command line argument: 
… 
"SQL_Extract_Files:DSN>>User ID>>Password>>Column>>Folder>> 
File Name>>Extention>>SQL Statement>>Unzip?" 
The parameters (after the ":") are separated by a ">>" and are as follows: 
1. DSN: The ODBC DSN pointing to the database. D
oesn’t have to 
match DSN used in report. 
2. User ID: Leave blank if no user id is needed to connect. 
3. Password: Leave blank if no password is needed. May refer to named encrypted password. 
4. Column: column name (in the SQL result set) storing the file content. 
5. Folder: Path to folder where file is extracted (VC creates missing folders on the fly). 
Note: can refer to a column name. 
6. File Name: Name for extracted file. If this includes the path, leave the previous option blank. 
Note: can refer to a column name.  
7.  File Extension: leave blank if File Name above already contains extension.  
Note: can refer to a column name. 
8. SQL Statement: the SQL statement to execute. Typically references Crystal fields/formulas. 
If statement returns multiple rows, one file is extracted for each row.  
9. Unzip?: If 'True' the binary content is assumed to be zipped, so it gets unzipped.  
Note: can refer to a column name.  
For example, the following command line argument 
---------------------------------------------------------------- 
… SQL_Extract_Files:DSN1>>>>>>
St_Picture
>>
c:\temp\
>>
St_Name
>>
.png
>> 
Select * From Students Where Major=
'{@Major}'
>>False" 
---------------------------------------------------------------- 
Would trigger a SQL statement through the DSN1 ODBC DSN, without user id and password, 
and materialize all Student images stored in the St_Picture column into the c:\temp\ folder as 
.png files named according to the St_Name column.  
The Folder, File Name, File Extension, and Unzip? Parameters may refer to database column 
names in the result set. This allows a result set with multiple rows to extract each file to a 
different name (or even to a different folder) and to unzip the content only when needed. 
Alternatively, they may be static text or references to Crystal fields/formulas
As always, you can use report field/formula names within the command line argument.  
The dynamic content of these fields/formulas would be substituted into the argument.  
For example, the command line above is referring to the {@Major} formula. 
C# PDF Library SDK to view, edit, convert, process PDF file for C#
HTML5 PDF Editor enable users to edit PDF text, image, page, password and so on. C#.NET: WPF PDF Viewer & Editor. C#.NET: Edit PDF Metadata.
remove pdf metadata online; embed metadata in pdf
C# TIFF: TIFF Editor SDK to Read & Manipulate TIFF File Using C#.
Tiff File Processing in C#. Refer to this online tutorial page, you will see: 2. Render text to text, PDF, or Word file. Tiff Metadata Editing in C#.
adding metadata to pdf; pdf keywords metadata
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 105 
File Location Functionality 
Visual CUT uses several files to store user preferences, report processing options & information: 
1. Visual CUT.mdb stores report processing options  
2. DataLink_Viewer.ini stores general options and user preferences 
3. ReportList.txt stores information about previously opened reports for use in the 1
st
tab grid 
4. ReportList.grd stores grid style information (grouping, column visibility, font size, etc.) 
5. Failure.log records processing failure information 
6. Visual_Cut.log records email communications with the SMTP server 
By default, these files are in the common application data folder.  However, for security or other 
reasons you may direct Visual CUT to use a different folder location for these main files. To 
direct Visual CUT to use and maintain these files at a different folder, open DataLink_Viewer.ini 
in the application folder and add a line such as follows under the File_Locations section. 
[File_Locations] 
Main_Files_Folder=c:\Visual CUT\
The specified folder must exist and the user should have full permissions on it. 
When Visual CUT starts, if it doesn’t find Visual CUT.mdb, DataLink_Viewer.ini,  
ReportList.txt, and ReportList.grd in the specified folder, it will attempt to copy these files from 
the application folder to the specified folder. 
To direct command line processing to use a different Main_Files_Folder, you can use a 
command line argument 
like this: … 
"Main_Files_Folder:some path to a folder" 
This is useful in scenarios where a centralized scheduler triggers processing on behalf of multiple 
users who maintain settings in their own folders.  
Automatic Handling of Write-Protected Application Folders 
When a user doesn’t have write permissions to the application folder (typical of Vista an
Windows 7 machines), Visual CUT handles that scenario as follows: 
On load, if the user can't write to the DataLink_Viewer.ini, and the ini file doesn't already have a 
"Main_Files_Folder" entry in the [File_Locations] section then use DataLink_Viewer.ini if 
found in one of the following locations: 
-  common appdata (ProgramData) folder (common to all users), under "MilletSoftware\VC_11\"  
-  local appdata folder (local to the user), under "MilletSoftware\VC_11\"  
-  roaming appdata folder (follows the user to other machines), under "MilletSoftware\VC_11\"  
Otherwise, this is probably the first time VC was started on that machine so we:: 
a) create a common appdata folder (e.g., c:\ProgramData\MilletSoftware\VC_11\ 
b) copy the DataLink_Viewer.ini to that folder  
c) set its Main_Files_Folder option to that path  
d) copy all the main files to that folder 
e) provide a message to the user indicating the main files have been redirected  
Note: The version information dialog shows the paths to the main files.  
VB.NET PDF- View PDF Online with VB.NET HTML5 PDF Viewer
NET PDF Viewer; VB.NET: ASP.NET PDF Editor; VB.NET Online. |. Home ›› XDoc.PDF ›› VB.NET PDF: View PDF Online. PDF bookmark, C#.NET edit PDF metadata, C#.NET
pdf metadata editor; pdf metadata extract
C# PDF Convert to Tiff SDK: Convert PDF to tiff images in C#.net
C#.NET PDF SDK - Convert PDF to TIFF in C#.NET. Online C# Tutorial for How to Convert PDF File to Tiff Image File with .NET XDoc.PDF Control in C#.NET Class.
batch edit pdf metadata; rename pdf files from metadata
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 106 
Directing the Visual CUT database to Another DBMS 
By default, Visual CUT uses Visual CUT.mdb (or Visual CUT.accdb) as its repository for report 
processing settings. However, if you would like to use a more robust DBMS, particularly if 
you want multiple users to concurrently update report processing options in the same 
centralized database, you may redirect Visual CUT to use any OLE DB compliant 
database.  
First, you need to create or import 4 required tables into your database (Report_Opt, Login_Opt, 
Export_Opt, and Report_Export_Options). Contact MilletSoftware for help with this process. A 
backup of a SQL Server database is available for easy restore into your SQL Server instance. 
Specifying a Connection String 
Use the [Options] section in the DataLink_Viewer.ini to specify the connection string 
Example 1 - connecting to SQL Server Express using NT Authentication: 
Connection_String
=
"Provider=SQLNCLI11;Server=Srv1\SQL2;Database=Visual CUT;Trusted_Connection=yes;"
Example 2 - using SQL Server Authentication: 
Connection_String
="Provider=SQLNCLI11;Server=Srv1\SQL2;Database=Visual CUT;Uid=ido;Pwd=shhh;"
Example 3 - protecting password by referring to VC_Password_Encrypted 
Connection_String
=
"Provider=SQLNCLI11;Server=Srv1\SQL2;Database=VC;Uid=ido;Pwd=@VC_Password_Encrypted@;" 
The ini file should have either a manually created entry named VC_Password_Encrypted, such as this: 
VC_Password_Encrypted= F13210C40859455851BD7BE84880241A18BAFEE0E349C8ED 
- or - 
an entry called Encrypted_Password_VC generated via 
Options dialog, Process tab,  
Encrypt & Save Password button with a name of VC
Encrypted_Password_VC=F13210C40859455851BD7BE84880241A18BAFEE0E349C8ED
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 107 
Updating DataLink_Viewer.ini  via a Delta File  
You may want to automate the process of updating some of the DataLink_Viewer.ini settings. 
You can do that by placing a DataLink_Viewer_Delta.ini file in the application folder.  Any 
entries found in that file will update DataLink_Viewer.ini when the application is launched.   
Here is an example of a DataLink_Viewer_Delta.ini file: 
[Delta_Options] 
Delete_After=NEVER 
//USE or NEVER or Some Date specified as yyyyMMdd   
// if entry above not found, then default is USE 
Update_Master_INI=False  
// if entry above not found, then default  is False 
Update_Slave_INI=True 
// if entry above not found, then default is True 
[Options] 
Attempt_Logon_Without_Password=False 
Strip_Table_Qualifiers=True 
Saved_Data_Action=Display 
Parameter_Values_Remember_Max_Chars=900 
Saved_Parameter_Set_Minimum_N=5 
[Integrated_Authentication] 
Enable_Integrated_Authentication=True 
The [Delta_Options] section is used only to control the following aspects of the process: 
The Delete_After option controls when the Delta ini file is deleted: 
o
NEVER   
- the file will not be deleted 
o
USE   
- the file is deleted after being used once 
o
yyyyMMdd  - the file is deleted after the specified date 
Update_Master_INI  controls whether the Master ini file is updated.  
Update_Slave_INI  controls whether the User ini file is updated.  
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 108 
Restricting User Actions 
In some scenarios you may wish to restrict what the user is allowed to do with Visual CUT. For 
example, as an Administrator, you may want to set things up so users can run only some reports 
and process them only with saved settings.  
You can elect to specify some or all of the following restricting options in the [Options] section 
of a Master_DataLink_Viewer.ini file in the application folder
[Options] 
// Disable Preview Buttons 
Disable_Print_Button=TRUE 
Disable_Export_Button=TRUE 
Disable_Select_Button=TRUE 
Disable_Search_Button=TRUE 
Disable_Refresh_Button=TRUE 
// Disable Visual CUT Buttons 
Disable_Options_Dialog=TRUE 
Disable_Browse_Dialog=TRUE 
Disable_Version_Info=TRUE 
Disable_Check_for_Updates=TRUE 
// Make Processing Options Read Only 
Processing_Options=Read_Only  
// Disable the 'Log Email Activity' checkbox and hide the Notepad button to open the log 
Disable_Email_Log_Activity_GUI=True 
// Hide Email Queue (smtpQ) panels in the status bar 
Disable_Email_Statusbar_GUI=True 
// Disable certain Search & Replace categories 
Disable_Find_and_Replace_Categories= Email_Addresses||Email_Information 
// Disable/Hide the Scheduler GUI 
Disable_Scheduler_GUI=True 
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 109 
Integrated Interactive Authentication 
While command line processing relies on encrypted login information stored in  
Visual CUT.mdb, some users may also wish to avoid repeated logins during interactive use. 
Integrated Authentication ("Remember Me")    
To support interactive integrated authentication, the database login information is stored, highly 
encrypted, inside DataLink_Viewer.ini as shown below: 
To ensure full security, this encrypted format includes an internal identification of which 
Windows User & PC this login information belongs to.  Visual CUT uses this encrypted 
database login information only after checking that the same Windows user is running 
from the same PC.  In other words, users cannot break the login security by attempting to copy 
and paste the encrypted information to their own ini file entry). 
For example, in the example shown above integrated authentication has been enabled. This can 
be done via a checkbox in the Option dialog (Process Tab). The user (ixm7 ) then logged in to a 
secure database by providing a database user id & password. The user turned on the 
"Rememebr Me" option (visible only when integrated authentication is enabled): 
The information was then saved for the ixm7  user, running on the SOBPC02 PC  as shown in 
the ini file above.  From that point on, the same user (ixm7), once logged to the same PC 
(SOBPC02), doesn't need to manually login to the same data source. 
The same user can turn on the "Remember Me" option for unlimited number of secure data 
sources and the information for all of them would be maintained inside the encrypted entry. The 
Options dialog allows each user to delete their own integrated authentication information by 
clicking a button. 
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 110 
Shared Machine Authentication 
This section describes how one user can elect to share their integrated authentication information 
with any other user who successfully logged in to the same machine. 
Step 1: First, add the entry in bold to the DataLink_Viewer.ini file: 
------------------------------------------------- 
[Integrated_Authentication] 
Enable_Integrated_Authentication=TRUE 
ixm7@SOBPC02=
18CB9CAE3D8BF3484000123301DD155638EAD4AD6B4D622C04DF125B7404BCBC4717A5DA2FBCD94314A7CE63BBF7357E
Enable_Shared_Machine_Authentication=TRUE 
------------------------------------------------- 
Step 2: Then, as the "key" user who will share integrated authentication, run a report and get to a 
login dialog. Note: if you already have integrated authentication for yourself, use Forced Login.   
Alternatively, discard your integrated authentication (using the Trash Can button in the Options 
dialog). Make sure you turn on the Remember Me option in the login dialog, just like setting up 
integrated authentication for yourself. 
Step 3: Because of the Enable_Shared_Machine_Authentication=TRUE  
you would get a dialog asking you if you wish to share your integrated authentication 
functionality with other users who logged in to the same machine. This ensures a user can’t be 
tricked into sharing integrated information without their knowledge and expressed consent. 
Click YES. If you then open the DataLink_Viewer.ini file you would notice this process 
generated a new entry (in bold): 
------------------------------------------------- 
[Integrated_Authentication] 
Enable_Integrated_Authentication=TRUE 
ixm7@SOBPC02=
18CB9CAE3D8BF3484000123301DD155638EAD4AD6B4D622C04DF125B7404BCBC4717A5DA2FBCD94314A7CE63BBF7357E
Enable_Shared_Machine_Authentication=TRUE 
Shared_Machine_Authentication=
C8B6CD373D5D5ADDC6FE9F379521C7318FA297CB595B992C
------------------------------------------------- 
That entry, in my particular case, points to the ixm7@SOBPC02  integrated authentication entry. 
Notes: 
1. There can be only one shared machine authentication entry.  If you need to change to 
another administrator, delete the Shared_Machine_Authentication line and let the new 
administrator go through the Remember Me and dialog step. 
2. If the administrator adds data sources and login information to their integrated authentication 
information, all the machine users would have access to the new data sources. This is because the 
entry is really a "pointer" to whatever that administrator has accumulated in their entry. 
3. If you interactively switch between DSNs and you want Integrated Authentication 
functionality, set Enable_Integrated_Authentication_For_DSN_Changes to True 
This is a rare scenario so, for more detail, contact Millet Software. 
Documents you may be interested
Documents you may be interested