asp.net pdf viewer : 300 dpi pdf file size SDK Library service wpf .net html dnn Kofax_Developers_Guide_v108-part978

Custom Panels and Applications
Kofax Capture Developer's Guide
81
In the preceding sample, KfxAdminMenuHelpAboutAscentCapture is the item for the About
Kofax Capture command in the Administration module. A separate set of commands is
available for each Kofax Capture module.
Sample Custom Panel
A sample custom panel is provided as part of your Kofax Capture installation. The sample is
installed to the following folder:
▪ <
Kofax Capture installation folder>\Source\Sample Projects\StdCust
Two subfolders are included:
OCXPanel
(or 
OCXPanel.NET
): This folder contains Visual Basic source code for a sample
OCX.
OCXReg
(or 
OCXReg.NET
): This folder contains Visual Basic source code for a sample
registration utility.
The source code in the preceding folders is provided in Visual Basic .NET. The sample OCX
is provided to give you a sample of a simple custom OCX. The sample registration utility
demonstrates the type of utility you might provide to customers for installing and registering
your sample OCX for use with Kofax Capture.
Sample Custom Panel Registration
Custom panel registration is a two-part process, requiring you to do the following:
▪ Use a utility (such as the sample utility provided in your OCXReg folder) to register the
custom sample panel with Kofax Capture.
▪ For COM components, use RegSvr32.exe to register a custom panel in the Windows
Registry. For .NET components, use RegAsm.exe to register a .NET custom panel for COM
Interop with the Windows Registry and the .NET Framework.
The procedure explains how to use the sample registration utility to register the sample OCX
panel for use with Kofax Capture.
Registering the Sample Custom Panel with Kofax Capture
The procedure explains how to use the sample registration utility to register the sample OCX
panel for use with Kofax Capture.
1
Start Windows Explorer and browse to the following folder:
C:\Program Files (x86)\Kofax\Source\Sample Projects\StdCust\OCXPanel\
2
Copy SampleOCX.dll to the 
\Bin
folder.
3
Browse to the following folder:
C:\Program Files (x86)\Kofax\Source\Sample Projects\StdCust\OCXReg\
4
Start the User Panel Registration Tool (PanelReg.exe), shown in the figure.
300 dpi pdf file size - Compress reduce PDF size in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
C# Code & .NET API to Compress & Decompress PDF Document
can pdf files be compressed; change font size in pdf form field
300 dpi pdf file size - VB.NET PDF File Compress Library: Compress reduce PDF size in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
VB.NET PDF Document Compression and Decompression Control SDK
advanced pdf compressor; pdf change page size
Custom Panels and Applications
82
Kofax Capture Developer's Guide
Figure 6-2. Registering a Custom Panel
In the Modules group, select the modules in which you want to enable the sample OCX
panel.
In the Required group, in the ProgID box, replace the default
SampleOCX.SampleUserControl with Kofax.SampleUserControl.
You do not need to change the other default settings, unless you are working with
custom panels carried over from previous versions. In that case, you would select VB6
Interop API as the Reference setting.
Click Save.
Registering the Sample Custom Panel in the Windows Registry
The procedure explains how to use the sample registration utility to register the sample OCX
panel in the Windows Registry.
After the registration process, the custom panel is available in each module for which it was
registered with Kofax Capture. For details about typical custom panel behavior, see User
Interface Design and Behavior
.
On the Windows Start menu, click Run.
In the Run window, type the following:
<path1>RegSvr32.exe
<path2>Ocxname.ocx
Where:
<path1> is the full path to the RegSvr32 application.
<path2> is the full path to Ocxname.ocx.
Ocxname.ocx  is the name of your custom panel OCX.
Registering the Sample Custom Panel
1
On the Windows Start menu, click Run.
2
In the Run window, browse to the OCXPanel folder included in your Kofax Capture
installation and type the following:
<path1>RegSvr32.exe
C# PDF Convert to Images SDK: Convert PDF to png, gif images in C#
Render the page with a resolution of 300 dpi. int targetResolution = 300; Bitmap bitmap3 = page.GetBitmap The magnification of the original PDF page size.
reader pdf reduce file size; pdf compression
VB.NET Image: Generate GS1-128/EAN-128 Barcode on Image & Document
and three document files(including TIFF, PDF & MS EAN-128 barcode image resolution in DPI to fulfill set rotate barcode.DrawBarcode(reImage, 300, 450) 'draw
pdf compress; pdf edit text size
Custom Panels and Applications
Kofax Capture Developer's Guide
83
<path2>Smplocx.ocx
Where:
<path1> is the full path to the RegSvr32 application.
<path2> is the full path to Smplocx.ocx.
Smplocx.ocx is the name of the custom panel OCX provided with Kofax Capture.
Registering the Sample .NET Custom Panel
1
On the Windows Start menu, click Run.
2
In the Run window, browse to the OCXPanel folder included in your Kofax Capture
installation and type the following:
<path1>RegAsm.exe
<path2>OCXname.dll
Where:
<path1>
is the full path to the latest .NET Framework:
C:\WINDOWS\Microsoft.NET\Framework\<version>\
<path2>
is the full path to 
OCXname.dll
.
OCXname.dll
is the name of the sample .NET custom panel OCX provided with Kofax
Capture.
Sample Custom Panel in VB.NET
The following sample custom panel named “DelPagePanel” has no user interface but enables
an operator to flag a page for deletion. This custom panel uses a context menu accessible from
a batch to mark pages for deletion.
When you right-click the page to delete, a context menu appears, and you can use it to mark
the page for deletion.
The following is the code for the custom panel (DelPagePanel).
Imports Kofax.SDK.CaptureInfo
Imports Kofax.Capture.CaptureModule.InteropServices
Imports Kofax.Capture.CaptureModule
Imports System.Runtime.InteropServices
<ProgId("VBNET.DelPagePanel")> _
<Guid("08FB952B-69AE-3A90-88C4-268EB2372DD1")> _
Public Class DelPagePanel
Inherits System.Windows.Forms.UserControl
#Region "Windows Form Designer generated code "
#End Region
Private Const cm_strDeletePageMenu As String = "DeletePageMenu"
Private Const cm_strDeletePageMenuText As String = "Flag Page for Deletion"
Private Const cm_strPageCSSName As String = "DeletedPage"
'*** Reference to the Application object
Private m_oApplication As InteropServices.Application
Public WriteOnly Property Application() As InteropServices.Application
Set(ByVal Value As InteropServices.Application)
'*** Cache the object
m_oApplication = Value
'*** Initialize the menu
InitializeMenu()
End Set
VB.NET Image: Create Code 11 Barcode on Picture & Document Using
0: left 1: center 2: right, Resolution, DPI. ShowText = True barcode.DrawBarcode( reImage, 300, 450) 'draw to decode, encode and process PDF file independently.
batch reduce pdf file size; adjust pdf page size
VB.NET Image: Barcode Generator to Add UPC-A to Image, TIFF, PDF &
SaveDocumentFile(doc, "c:/upc-a.pdf", New PDFEncoder SupSpace = 15F barcode.DrawBarcode( reImage, 300, 450) 'draw 1: left 0: center 2: right, Resolution(DPI), 72.
change paper size in pdf; best pdf compression tool
Custom Panels and Applications
84
Kofax Capture Developer's Guide
End Property
'**************************************************
'*** Function:  ActionEvent
'*** Purpose:   Receive each action event
'*** Input:     nEventNumber - number assigned to event
'*** Output:    vArgument - currently NOT used
'***            pnCancel - Response to the event.
'*** Return:    None.
'**************************************************
Public Sub ActionEvent(ByVal nEventNumber As Integer, ByRef oArgument As
Object, ByRef nCancel As Integer)
'*** Check the event number to see if the application is about to exit, 
'*** if so, clean up m_oApplication's unmanaged resources
If nEventNumber = InteropServices.KfxOcxEvent.KfxOcxEventLoggedOut Then
Using oAdminWrapper As New ApiObjectWrapper(Of
InteropServices.Application)( m_oApplication)
Debug.WriteLine("Cleans up unmanaged resources handled by
m_oApplication")
End Using
m_oApplication = Nothing
End If
'*** Check the event number
If nEventNumber = InteropServices.KfxOcxEvent.KfxOcxEventMenuClicked Then
'*** Check the menu text to make sure we got the right menu
If CStr(oArgument) = cm_strDeletePageMenu Then
'*** Flag the page for deletion by setting the Page Custom Storage String
'*** First, wraps m_oApplication.ActiveBatch property in an instance of
'*** ApiObjectWrapper, so that unmanaged objects used by
'*** m_oApplication.ActiveBatch property are released properly
Using oActiveBatchWrapper As New ApiObjectWrapper(Of
InteropServices.Batch)(m_oApplication.ActiveBatch)
If Not oActiveBatchWrapper.IsNull Then
'*** Then flag the page for deletion by setting the 
'*** Page Custom Storage String
Using oActivePageWrapper As New ApiObjectWrapper(Of InteropServices.Page)
( oActiveBatchWrapper.WrappedObject.ActivePage)
If Not oActivePageWrapper.IsNull Then        
oActivePageWrapper.WrappedObject.CustomStorageString(cm_strPageCSSName) =
"True"
End If
End Using ' Releasing unmanaged resources used by
ActiveBatch.ActivePage
End If
End Using ' Releasing unmanaged resources used by
m_oApplication.ActiveBatchClass 
End If
End If
End Sub
Private Sub InitializeMenu()
' Adds a menu for deleting the page
m_oApplication.AddMenu(cm_strDeletePageMenu, cm_strDeletePageMenuText,
"Page")
End Sub
End Class
VB.NET Image: How to Create & Write UPC-E Barcode in Document
SaveDocumentFile(doc, "c:/upc-e.pdf", New PDFEncoder SupSpace = 15F barcode.DrawBarcode( reImage, 300, 450) 'draw 1: left 0: center 2: right, Resolution(DPI), 72.
change page size pdf; pdf text box font size
VB.NET Image: VB.NET Sample Code to Draw EAN-13 Barcode on Image
0: left 1: center 2: right, Resolution(DPI), 72. barcode.SupSpace = 15; barcode.DrawBarcode(reImage, 300, 450) 'draw & write 30+ barcode types on PDF file
batch pdf compression; best way to compress pdf file
Kofax Capture Developer's Guide
85
Chapter 7
Custom Module Creation
You can create a custom module to perform tasks such as document separation, page
registration, form identification, automatic or manual indexing, verification, or full text
OCR. Custom modules can also perform unique functions suited to your business needs. For
example, you can write a custom OCR module that uses an engine other than the engines
provided with Kofax Capture. Or, the custom module might perform a special type of image
processing, such as bar code recognition on color images or form identification using a
custom algorithm.
This chapter gives an overview of the development process for creating a custom module for
Kofax Capture. A sample custom module, which is part of the comprehensive example of a
custom workflow agent, setup OCX, and custom panel, is also provided in this chapter.
Custom Modules
You can implement a custom module alongside the standard set of Kofax Capture processing
modules, or you can use it to replace a standard module. Once you create the custom module,
it must be registered for use with Kofax Capture and added to the batch class workflow
(which must include the standard Scan module to introduce a batch into the Kofax Capture
processing environment, as well as the standard Export module as the final processing
module).
Note  The Kofax Capture installation process may require that an interactive custom module
be shut down before installation continues. Therefore, custom modules should properly
handle Microsoft Windows close messages. If a custom module does not properly handle
close messages sent to terminate its process, Kofax Capture upgrade installations may fail.
High Availability Environments
When customizing Kofax Capture in a high availability environment, you should observe the
following error handling guidelines. The guidelines help ensure that your applications take
full advantage of the Kofax Capture high availability features.
For more information on high availability, refer to the Kofax Capture Installation Guide.
Error Handling Guidelines
Any component of a highly available system is subject to failure at any time. To meet high
availability requirements, design your Kofax Capture customizations to detect and recover
from errors during operations that require access to a remote computer.
These errors can be grouped into the following categories:
▪ Database Operations
▪ File System Operations
VB.NET Image: How to Add Interleaved 2 of 5 Barcode to Document
REFile.SaveDocumentFile(doc, "c:/interleaved2of5.pdf", New PDFEncoder N = 2F barcode.DrawBarcode(reImage, 300, 450) 'draw 0: center 2: right, Resolution(DPI),
change paper size pdf; adjust pdf size
Custom Module Creation
86
Kofax Capture Developer's Guide
▪ Client / Server Operations
▪ Third-Party Operations
Database Operations
Any customization that accesses a database on another computer may encounter errors. If
the customization accesses a database on a cluster server, the database will be off-line for a
short period of time during a failover. Database errors can occur due to a variety of issues
including, but not limited to, intermittent network failures and cluster failover.
To ensure high availability, your application must check for errors on every database
operation. If an error occurs, the application must reconnect to the database and retry the
operation if necessary.
Even if an error occurs, it is possible that the database operation succeeded but a network
failure prevented the successful result from reaching your application. Therefore, if it is
important that the failed operation be executed exactly once. You must determine if it
succeeded or failed to know if the operation should be retried.
Since it takes a period of time for the database to failover, applications should continue to
retry for at least 2 minutes.
File System Operations
Any customization that accesses files on another computer may encounter errors. If the
customization accesses a file system on a cluster server, then during a failover, the file system
is off-line for a short period of time. File access errors can occur due to a variety of issues
including, but not limited to, intermittent network failures, contention, and cluster failover.
To ensure high availability, your application must check for errors on every file operation.
If an error occurs, it must retry the operation. Note that when an operation returns an error,
it is possible that the file operation started, but did not complete. Therefore, when retrying,
you must take care to determine if the same parameters can be used or if the failed operation
changed the state of the system.
Since it takes a period of time for the file system to failover, applications should continue to
retry for at least 2 minutes.
Client / Server Operations
Any customization that accesses a third-party server application on another computer may
encounter errors. The client/server application might be “cluster-aware” and be deployed
on the cluster server, or it may provide some other mechanism to make the server highly
available. In any case, it is up to the client/server application utilized by the Kofax Capture
customization to provide high availability in some way.
Third-Party Operations
Any third-party function utilized by a Kofax Capture customization might access a remote
computer.
To ensure high availability, your application must check for errors after every function call. If
an error occurs, the application must determine if a retry is needed.
Custom Module Creation
Kofax Capture Developer's Guide
87
Sample Applications
A custom module sample named “DeleteEvenPage,” which is part of the comprehensive
VB.NET example, is used to demonstrate the design and implementation of a custom module.
The code for this custom module is provided later in this chapter.
Kofax Capture also ships with a sample custom module that is provided as part of your Kofax
Capture installation. This Visual Basic .NET program is located here:
<Kofax Capture installation folder>\Source\Sample Projects\CustMod\Generic
The folder contains the files necessary to register a custom module named “Sample.” The
sample includes a generic example of a custom module, which you can install and register for
demonstration purposes. For details about the sample custom module, see Custom Module
Sample
.
Typical Development Tasks
The typical custom extension development process includes the tasks outlined in this section.
You may decide to perform some tasks in a different order.
▪ Design the custom extension
▪ Configure the setup OCX to store properties and add publish checks
▪ Write the runtime application (use Kofax Capture Document Access API library elements
to create an application to interact with Kofax Capture)
▪ Create the custom extension registration file
▪ Register the custom extension
▪ Create the installation program
Design the Custom Module
As with any development project, the success of the custom module implementation process
requires careful planning and analysis. Before starting any development, consider how your
custom module will augment the standard Kofax Capture functionality.
For example, be sure to take into account the characteristics of the forms you expect to process
with the custom module. Then decide whether to make the custom module available in
addition to, or in place of, existing Kofax Capture functions.
Additionally, you need to determine if it would be appropriate to add custom configuration
settings to support the new functionality. Then decide where (tabs or user interface panels) it
would be appropriate to make the custom settings available to the user. You should produce
specifications that define the design, functionality, and scope for the custom extension.
Create the Setup OCX
You will probably want to develop a setup OCX in the Administration module to store
configuration properties and publish checks associated with the custom extension. The setup
OCX is optional, because you could potentially use the standard Help for Kofax Capture
settings. For example, if you developed a custom module to replace the standard Validation
module, you might be able to use the standard settings and publish checks. However, it is
Custom Module Creation
88
Kofax Capture Developer's Guide
likely that most custom extensions will require unique configuration properties and publish
checks. For details, see Setup OCX Creation
.
Write the Runtime Application
Use the Kofax Capture Document Access API library to integrate the application into your
Kofax Capture installation. You can present a list of batches to the user, or you can opt to
have the custom module automatically process batches as they become available. Develop the
custom module to meet your specifications.
Kofax Capture Document Access also allows XML batch information to pass between Kofax
Capture and the custom module. As the custom module receives a batch, it performs any
custom functions, and then sends the batch back to Kofax Capture.
Note  Your XML transport files need to follow the format required for compatibility with
Kofax Capture. Sample Document Type Definition (DTD) files required for custom module
XML files are provided with Kofax Capture and installed with the program.
Create the Custom Module Registration File
You must create a registration file that defines the property settings for the custom module.
The file must be in place before you register the custom module.
The following is the registration file (DeleteEvenPage.aex) for the sample custom module:
[Modules]
Delete Even Page CM
[Delete Even Page CM]
RuntimeProgram=DeleteEvenPage.exe
ModuleID=DeleteEvenPage.exe
Description=This module deletes even pages...a very useful tool
Version=8.0
SupportsTableFields=True
SupportsNonImageFiles=True
The registration file (
DeleteEvenPage.aex
) contains the following:
▪ Name of the custom module (identified under the heading [Modules])
▪ Custom module name (identified under the heading [Delete Even Page CM])
▪ Runtime executable for the custom module
▪ Module ID
▪ ProgID of the custom module
For more information about the registration file, read Registration File Creation
.
Register the Custom Module
Once the registration file is in place, you register the custom module so that Kofax Capture
will recognize it. After registration, you can also test the setup OCX to verify its validity. For
details on registering custom extensions, see Registration File Creation
.
After registration, you can add the custom extension to the batch class so you can test it. Once
you are satisfied with the preliminary tests, you can proceed to create an installation program.
Custom Module Creation
Kofax Capture Developer's Guide
89
Create an Installation Program
If you plan to distribute the custom module, you need to write a program to add the
application to your Kofax Capture installation. You can optionally incorporate the registration
process into the installation program. You need to install the custom extension setup OCX,
custom extension runtime, and registration file to <
Kofax Capture installation folder>
\Bin
for every workstation where you want the custom extension to be available. You can
also add a custom extension icon to the Kofax Capture program group.
Document Routing
As a custom module developer, you can use the Document Routing feature to divide a batch
into multiple batches. You do this by opening the parent batch and then creating a child
batch. You can move pages and documents between the two open parent and child batches.
You can divide batches based on any programmable criteria such as form type.
Document Routing Functions
The batch create, move, and close operations are performed by the following functions:
▪ ChildBatchCreate (DBLite)
▪ MoveElementToBatch (DBLiteOpt)
▪ BatchCloseWithModuleID (DBLite)
ChildBatchCreate
ChildBatchCreate creates a child batch based on an existing open parent batch. Each child
batch uses the same published batch class as the parent batch. Batch classes are copied as
well.
The following portion of code taken from the CMSplit sample custom module creates a
child batch based on a parent batch which, in this example, is passed to the SplitDocuments
subroutine.
Private Sub SplitDocuments( _
ByVal oBatch As Kofax.Capture.SDK.CustomModule.IBatch, _
ByVal oList As List(Of Kofax.Capture.SDK.Data.IACDataElement))
If oList IsNot Nothing AndAlso oList.Count > 0 Then
'*** Create the child batch
Dim oChildBatch As Kofax.Capture.SDK.CustomModule.IBatch =
oBatch.ChildBatchCreate()
End If
End Sub
Only a single child batch can be open at the same time as a parent batch. A custom module
must close a child batch before it can create another one from the same parent. If your module
closes both parent and child batches, it can then reopen the child batch, making it a parent,
and then create a child batch based on it.
Custom Module Creation
90
Kofax Capture Developer's Guide
Naming a Child Batch
When your custom module creates a child batch, you can add code that names the batch.
If you do not provide naming code, the default child batch name is the parent batch name
appended with the date and time.
Closing Batches
A custom module cannot close a parent batch until it first closes the child batch, with the
following exception: If you exit a custom module, causing the module to close, Kofax Capture
suspends both parent and child batches.
If a batch fails to close, it throws an error, allowing you to add appropriate error handling. If,
for example, a custom module passes valid closing parameters to a function, and then fails
to close, your error handling code can attempt to close the batch again. For more information
about error codes, see the Kofax Capture API Reference.
MoveElementToBatch
MoveElementToBatch moves an ACDataElement (page or document) from one open batch
to another. MoveElementToBatch automatically deletes the ACDataElement from the source
batch.
The following code moves a document from oDocElement to oChildDocsElement (both of
type ACDataElement).
'*** Split this current document into the child batch
oChildDocsElement.MoveElementToBatch(oDocElement)
MoveElementToBatch returns a new object from the destination batch containing the object
that was moved.
Also, note the following:
▪ A custom module cannot move an element (document or page) to a specific location in the
destination batch. If necessary, a custom module can modify an element after it has been
moved.
▪ If the source page is the last page in a document or batch, you must delete the parent
document or batch. Similarly, if the source document is the last document, you must delete
the parent batch.
Note  When your custom module moves pages or documents using the Document Routing
feature, there is no licensing charge.
BatchCloseWithModuleID
BatchCloseWithModuleID closes and unlocks a batch to be routed to a specified module.
Table 7-1. BatchCloseWithModuleID Parameters
Input Parameter
Description
eNewState
Specifies the new state of the batch once it is unlocked.
strModuleID
A unique ID (such as ocr.exe) that specifies the module where the batch is routed.
Documents you may be interested
Documents you may be interested