c# pdf library itextsharp : Clean pdf metadata Library SDK class asp.net wpf web page ajax Visual_CUT_User_Manual23-part528

©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 231 
Silent Unattended Failure Option 
When Visual CUT processes a report it may encounter various problems such as missing 
destination e-mail address, non-existing or invalid report file names, and missing export file 
names.  Such cases halt the execution and trigger an appropriate message box. 
If you want to ensure that Scheduled/Unattended processing doesn’t stop when encountering 
such cases, open DataLink Viewer.ini (located where you installed Visual CUT and 
automatically created the 1
time you run Visual CUT) and specify the following option: 
This allows silent  logging and skipping of any failure and avoiding message boxes.  The details 
about each failure get logged into a text file (Failure.Log) located where you installed 
Visual CUT.  Here is an example of failure messages in this file: 
Note:  If you turn on this option and you have a multi-line batch file that invokes processing of 
multiple reports, you may want, within your batch file, to have branching logic based on the 
success or failure of each line.  In order to respond (for example via Batch File IF THEN logic) 
to Success or Failure of Visual CUT processing, you can check for the existence of Success.txt 
(in the same directory where Visual CUT is installed) after each invocation of Visual CUT 
processing via a command line.   
You turn on this option by opening DataLink Viewer.ini (located where you installed Visual 
CUT and automatically created the 1
time you run Visual CUT) and specifying the following 
Clean pdf metadata - 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
metadata in pdf documents; remove metadata from pdf
Clean pdf metadata - 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 remove metadata; pdf metadata editor online
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 232 
Silent Attended Failure Option 
This option is identical to the Silent Unattended Failure option discussed in the previous section.  
The difference is that it applies to cases where Visual CUT processing is invoked interactively 
(by pressing the START button).  This is particularly useful in cases when the processing takes a 
long time and the user doesn’t want to be tied to the screen. 
When Visual CUT processes a report it may encounter various problems such as missing or 
invalid destination e-mail address, non-existing or invalid report file names, and missing export 
file names. Such cases halt the execution and trigger an appropriate message box. 
If you want 
to ensure that Attended (interactive) processing doesn’t stop when encountering such 
cases, open DataLink Viewer.ini (located where you installed Visual CUT and automatically 
created the 1
time you run Visual CUT) and specify the following option: 
When this option is turned on, any errors (e.g., one of the Groups didn’t have an e
-mail address 
associated with it) are recorded in Failure.log (a plain text file) instead of halting the execution 
with a message box.  See previous section for an example of what this log file looks like.   
Here is an example of such an error message in the Failure.log:   
An attempt to send e-mail failed for the following reason(s): No Recipient E-mail Address Specified 
C:\Program Files\Visual CUT\Visual_CUT_with_Deliberate_Email_Problems.rpt: 4/9/2003 1:06:43 
VB.NET PDF Convert to HTML SDK: Convert PDF to html files in vb.
Our PDF to HTML converter library control is a 100% clean .NET document image solution, which is designed to help .NET developers convert PDF to HTML webpage
edit pdf metadata acrobat; remove pdf metadata
C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net
Our PDF to HTML converter library control is a 100% clean .NET document image solution, which is designed to help .NET developers convert PDF to HTML webpage
add metadata to pdf; pdf xmp metadata editor
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 233 
Avoiding Duplicate Processing   
Imagine you need to email "Order Received" (or "Order Shipped") confirmations to your 
customers.  You use Visual CUT to schedule bursting of a report grouped by Order_ID, selecting 
all orders that were received in the current day.  You wish to run the report every 30 minutes 
without repeating emails. 
To solve this problem, you can use a command line argument that instructs Visual CUT to skip 
processing if the target export file already exists and was created less than N minutes ago. 
For example, using the following scheduling string (or batch file): 
"C:\Program Files\Visual CUT\Visual CUT.exe" -e "C:\Program Files\Visual 
CUT\Visual_CUT.rpt" "Skip_Recent:2880" 
would cause Visual CUT to start processing the Visual CUT.rpt and burst the first group value 
("Competition").  However, Visual CUT would skip this bursting step (and continue to the next 
group value) if the target export file exists and was created in the last 48 hours (2880 minutes).  
In your 'Order Received' notification, you may not need to export and attach any file to the email 
notification.  However, in order to use the Skip_Recent functionality, you would instruct Visual 
CUT to export in each bursting step to a file name containing the Order_ID.  This file would then 
be used by the Skip_Recent logic, even though you will not attach the file to the email message. 
Non-Bursting Scenario: 
You can take advantage of this functionality even in cases where no bursting is taking place by 
having the exported file name reflect the count or  maximum record number in a table. Using the 
Skip_Recent command line argument, you can then ensure that unless a new record has been 
added to the table (and hence the target export file name is new) Visual CUT processing would 
be aborted. 
Alternative Approaches: 
As alternatives to using Skip_Recent you can:  
1.  Turn on the option to log Visual CUT processing using the functionality described in: 
"Record Processing to an ODBC Database" and, in your report, outer join to the 
MS_Log table to check if the current group value has already been successfully 
Use After_Success_SQL to generate an UPDATE sql statement to set the value of a 
"Processed" or "Date Sent" column.    
C# PDF Convert to SVG SDK: Convert PDF to SVG files in C#.net, ASP
Framework 2.0 or above. 100% clean .NET solution for PDF to SVG conversion using .NET-compliant C# language. Easily define a PDF page
read pdf metadata; add metadata to pdf programmatically
C# PDF Page Rotate Library: rotate PDF page permanently in C#.net
C#.NET PDF page rotator library control, RasterEdge XDoc.PDF, is a 100% clean .NET solution for C# developers to permanently rotate PDF document page and save
get pdf metadata; pdf metadata online
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 234 
Avoiding Too Many Active Visual CUT Instances (Queuing)  
Many Visual CUT users have increased their use of the tool to the point where several instances 
of Visual CUT may be actively processing reports at any given time.  In most cases, you can 
reduce the number of concurrent instances by simply combining multiple command lines into a 
single batch file.  In other cases, you can control the maximum number of active Visual CUT 
instances using the following DataLink_Viewer.ini entry: 
When launching a new Visual CUT instance, if the number of active Visual CUT instances 
reached that maximum number, the new instance is placed into sleep. It "wakes up" every 5 
seconds to check if it can launch. Once the number of active instances drops below the maximum 
allowed level, the new instance is allowed to launch. 
VB.NET PDF Page Rotate Library: rotate PDF page permanently in vb.
above versions). 100% clean and managed VB.NET solution that rotates PDF document file in Microsoft Framework application. Offer wide
delete metadata from pdf; embed metadata in pdf
C#: How to Delete Cached Files from Your Web Viewer
in PDF, C#.NET edit PDF bookmark, C#.NET edit PDF metadata, C#.NET VB.NET How-to, VB.NET PDF, VB.NET Word, VB use in your C# web application is to clean up files
remove metadata from pdf file; remove metadata from pdf acrobat
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 235 
Job Status Functionality 
During unattended/scheduled processing, Visual CUT generates a job status text file, located in 
the Visual CUT application folder and named: 
VC_Job_Status_N.txt (containing the error message) if a failure occurred  
- or -   
VC_Job_Status_Y.txt if processing was successful.   
Visual CUT erases these files (if they exist) at the start of each unattended processing.   
Other applications that trigger Visual CUT processing via a command line call can check for the 
existence of these job status files as an indicator for processing status.  For example, a web 
application can use this option to invoke Visual CUT processing (e.g., an export to a PDF file 
with bookmarks) and then keep checking for one of the job status file names before continuing. 
If the success file (VC_Job_Status_Y.txt
) is found, redirect the user’s browser to the resulting 
PDF file 
if the failure file is found (VC_Job_Status_N.txt), present the user with the error 
message inside that text file.   
In order to support job status monitoring in cases where multiple instances of Visual CUT may 
be processing report requests at the same time, your application can specify a unique job status 
file name for each call to Visual CUT .   
For example, if your command line invocation of Visual CUT is:  
"C:\Program Files\Visual CUT\Visual CUT.exe" 
then the resulting job status file for that call would be 4523_Y.txt or 4523_N.txt 
A DataLink_Viewer.ini file option (Job_Status_Path) under a [File_Locations] section allows 
you to override the default location (Visual CUT application folder) for the Job Status indicator 
files.  For example: 
This is useful in situations where a web application (PHP, ColdFusion, ASP.NET…) is not 
allowed read access to the Visual CUT application folder. 
Note: this functionality is disabled if the Generate Success.txt file option is turned off. 
.NET PDF SDK | Read & Processing PDF files
advanced document viewing, editing and clean-up features Able to convert PDF documents into other of text, hyperlinks, bookmarks and metadata; Advanced document
pdf xmp metadata viewer; change pdf metadata
XImage.Raster for .NET, Comprehensive .NET RasterImage SDK
image information; APIs for image metadata (tag) modify; and contrast; Multiple options for image clean up. & profession imaging controls, PDF document, image to
view pdf metadata; batch pdf metadata editor
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 236 
Failure Alerts via Email 
The Visual CUT Option dialog allows you to specify an email address that should receive a 
message whenever Visual CUT encounters a processing failure. Here is an example of such a 
VB Imaging - Intelligent Mail (OneCode) Generator
This professional and 100% clean Intelligent Mail (OneCode) barcode generating SDK allows various image files (like GIF) and common document files (like PDF).
edit pdf metadata online; pdf metadata
.NET Multipage TIFF SDK| Process Multipage TIFF Files
upload to SharePoint and save to PDF documents. Support clean multipage TIFF files with deskew, binarize, despeckle, etc Support for metadata reading & writing.
extract pdf metadata; preview edit pdf metadata
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 237 
Record Processing to an ODBC Database 
In order to log processing to an ODBC database, you must create a table called MS_Log in the 
target database. This can be in MS Access, SQL Server, Oracle, etc. 
MS Access Database Sample 
Above is the table structure required for this table, when implemented under MS Access: A 
sample MS Access database is available for download. That sample database contains a form 
(with a subform) showing how you can view processing information, including bursting steps: 
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 238 
SQL Server Instructions 
Here is a script for creating the table in SQL Server: 
CREATE TABLE [dbo].[MS_Log] ( 
[Parent_LogN] [int] NULL ,  
[Rpt_Path_Name] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
[Proc_Start] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
[Proc_End] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
[Group_1_Value] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
[Status] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
[Failure_Reason] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
[Warning] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
[Export_File_Name] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
[Email_To] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
[Email_Subject] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
[Command_Line] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
[User_ID] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
[PC_ID] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL  
SQL Server notes: 
for recent versions of SQL Server, replace [nvarchar] (40000) with [nvarchar] (MAX
To ensure the User ID you use can access that table, make that user a member of the 
dbo_owner group in SQL Server. 
You can create Crystal reports against this table.  You can even schedule these reports in Visual 
CUT to alert you about bad email addresses, failing, and slow (using the Proc_Start and 
Proc_End columns) reports.    
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 239 
Process Logging Settings in Options Dialog 
The following Visual CUT Options dialog allows you to specify the ODBC Data Source Name 
(DSN) where the MS_Log table resides and the User ID & Password (stored encrypted), if the 
data source requires a login.   
Checkboxes allow you to control whether logging should occur only for processing triggered via 
command line, only for processing triggered interactively (user clicks the START button), both, 
or neither.   
You can also specify whether records of successful processing should automatically be deleted 
(in cases where you wish to record only failures). 
Note that Warning messages will not be logged to the database if the "Log Warnings" option is 
turned off.  
©2002-2016,   Ido Millet,   ido@MilletSoftware.com
Page 240 
Update a Database After Success (After_Success_SQL) 
After Visual CUT successfully exported, printed, or emailed a report, you may want to update 
your database to reflect that information. For example, after bursting invoices to customers, you 
may want to update the records for these jobs to reflect the date of invoicing or the fact that an 
invoice was emailed. Besides providing useful information, these columns may also be used to 
avoid duplicate processing by incorporating them into the record selection formula in your 
To update a database after successful processing, you use the After_Success_SQL command 
line argument. The argument structure is as follows: 
"After_Success_SQL:Type>>ODBC DSN>>User ID>>Password>>SQL Statement" 
or to trigger multiple statements (each using a different ODBC DSN) repeat the 5 elements after 
^^^^ delimiter:  
Type>> DSN2>>User2>>Pass2>>SQL2"
The parameters (after the ":") are separated by a ">>" and are as follows: 
1.   Type: the type of success step: Burst or Whole. Any other text (Skip) skips processing. 
10. ODBC DSN: The ODBC DSN providing access to the target database.  Note that the target 
database doesn’t have to be the same 
as the one used for the report. 
11. User ID: Leave blank if no user id is needed to connect to the ODBC DSN 
12. Password: Leave blank if no password is needed to connect to the ODBC DSN 
13. SQL Statement: the SQL statement to execute.  This typically include embedded references 
to fields/formulas that Visual CUT would replace with their dynamic values. 
NOTE 1: if the SQL statement is blank, it simply gets skipped (no failure message). 
Note 2: to specify multiple statements simply separate them with a ''  
For example, the following command line argument 
… "After_Success_SQL:Burst>>xTreme>>>>>>Update "JOBS" SET 
"Processed" = True, "Date Processed" = Date() WHERE "Job Name" = 
Would trigger a SQL statement through the xTreme ODBC DSN, without user id and password, 
every time a bursting step is completed successfully. The statement would find the matching 
record in the JOBS table by comparing the Job Name column to the value of a {@Job} formula 
in the report. If one or more matching records are found, their "Processed" column is set to 
TRUE, and their "Date Processed" column is set to the current date.   
Note that the syntax above conforms to MS Access.  For other databases you may need to adjust 
the syntax.  For example, MS Access provides a Date() function.  MS Access also requires 
enclosing table and column names with double quotes, and literal strings with single quotes (as 
done around the value of the {@Job} reference). 
Documents you may be interested
Documents you may be interested