Setup OCX Creation
Kofax Capture Developer's Guide
71
It is possible to specify in the registry settings that a panel will always be hidden (see
“Visible” key value in the table that appears in Setup OCX Registry Entries
). In that case, that
panel will always be omitted from the Panels group.
Batch Class Publishing
A setup OCX can define publish checks to be used by the Administration module when batch
classes are published. Note the following:
▪ If the setup OCX is associated with a custom extension, the publish checks defined by the
OCX are used when batch classes that contain the custom extension are published.
▪ If the setup OCX is not associated with a custom extension, the publish checks are used
when any batch class is published.
No new user elements for publishing can be exposed with a setup OCX; however, changes
to the publishing functionality can be defined. When a batch class is published, each queue
performs its own publish checks, according to the queue order listed in the workflow. For
example, if the workflow includes a custom extension that uses custom property settings,
they are published along with the other property settings for the batch class. Any warnings
associated with the custom extension are displayed in the Results list when you publish the
batch class.
If all publish checks succeed, the batch class is published. When a batch class is published, the
custom properties for each custom extension are also published. If you change any custom
properties, they are not reflected in the batch class until you publish it again.
Setup OCX Development API
The complete API for the Kofax Capture Administration Module .NET Type Library,
including properties and methods, is documented in the Kofax Capture API Reference. The
properties and methods are associated with setup OCX applications. All properties and
methods are defined using Visual Basic syntax.
1 On your Kofax Capture installation media, navigate to the following location:
Documentation\Help\APIRef
2 Double-click APIRef.chm.
The Kofax Capture API Reference appears in a browser window.
3
On the Contents tab, click Kofax.Capture.AdminModule Namespace.
Convert pdf to web form - Library control component:C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net, ASP.NET MVC, WinForms, WPF application
How to Convert PDF to HTML Webpage with C# PDF Conversion SDK
www.rasteredge.com
Convert pdf to web form - Library control component:VB.NET PDF Convert to HTML SDK: Convert PDF to html files in vb.net, ASP.NET MVC, WinForms, WPF application
PDF to HTML Webpage Converter SDK for VB.NET PDF to HTML Conversion
www.rasteredge.com
Setup OCX Creation
72
Kofax Capture Developer's Guide
Library control component:C#: How to Determine the Display Format for Web Doucment Viewing
RasterEdge web document viewer for .NET can convert PDF, Word, Excel into Bitmap, as well as SVG files at the same time, and then render image form to show
www.rasteredge.com
Library control component:C#: How to Add HTML5 Document Viewer Control to Your Web Page
the necessary resources for creating web document viewer addCommand(new RECommand("convert")); _tabFile.addCommand new UserCommand("pdf"); _userCmdDemoPdf.
www.rasteredge.com
Kofax Capture Developer's Guide
73
Chapter 6
Custom Panels and Applications
With the Kofax Capture Module Type Library, you can add the following custom elements to
the Scan, Quality Control, Validation, and/or Verification modules:
▪ Custom panels. You can add up to 20 custom panels to a standard Kofax Capture module.
Each panel must be developed as an OCX. You can use different panels for each module to
be customized.
▪ Custom commands. In conjunction with a custom panel, you can implement custom
commands.
In addition, by taking advantage of the extended features of the Kofax Capture Module Type
Library, you can create standalone custom applications that act as input scripts. This feature
(Import Controller) supports virtually any type of custom import application you might care
to create.
These custom applications can be run from command lines and can also have their own
interfaces that are entirely separate from Kofax Capture. These choices are entirely up to you.
This chapter describes the following:
▪ User interface design and behavior
▪ Custom applications
A sample custom panel associated with the custom module is described in Custom Module
Creation
later in this guide.
Programming in a High Availability Environment
When customizing Kofax Capture in a high availability environment, you should observe the
error handling guidelines in High Availability Environments
. The guidelines help ensure that
your applications take full advantage of Kofax Capture’s high availability features.
For more information on high availability, refer to the Kofax Capture Installation Guide.
User Interface Design and Behavior
The following sections describe the user interface design and behavior of custom panels and
commands, which may be added to the Scan, Quality Control, Validation, and/or Verification
modules. Each panel contains a user-defined OCX.
New or modified customizations can take advantage of the Fluent UI in the Kofax Capture
modules on the preceding list.
Custom Panels
As an example, for a custom panel in the Validation module, the user OCX is contained
completely within a new user interface panel. This panel may be resized and moved just like
Library control component:C# PDF: How to Create PDF Document Viewer in C#.NET with
to images or svg file; Free to convert viewing PDF print designed PDF document using C# code; PDF document viewer can be created in C# Web Forms, Windows
www.rasteredge.com
Library control component:C# PDF Convert to SVG SDK: Convert PDF to SVG files in C#.net, ASP
In some situations, it is quite necessary to convert PDF document into SVG image format. indexed, scripted, and supported by most of the up to date web browsers
www.rasteredge.com
Custom Panels and Applications
74
Kofax Capture Developer's Guide
any standard panel. The OCX panel sends resizing events to the child OCX whenever the
panel itself is resized.
The OCX may display any desired graphical objects on the panel.
The outside edge of the panel (about 4 pixels) is used for panel operations (listed below). Any
panel clicks outside this margin area are passed to the OCX. If the OCX obtains focus, then
keyboard events are also sent to it.
Standard panels and new OCX panels support the following operations:
▪ Saving the panel size, state (floating/docked), and position between application
invocations.
▪ Clicking and dragging the top edge of a panel causes the panel to move to a new location
on the frame. If the panel is dragged off the frame, it becomes a distinct, floating window.
▪ Double-clicking the top edge of a docked panel changes that panel into a floating window.
(Double-clicking the top edge of the panel toggles between a docked/undocked state.)
▪ Resizing a floating window. The panel has a minimum size (which is 50,50 for default
panels).
▪ Hiding a floating window by clicking its Close box. The panel can be restored by selecting
it from the View tab in the Panels group.
▪ Dragging a floating window back to the frame to redock the panel to the frame.
Note  The OCX cannot programmatically resize its parent window.
A panel may receive several resize events just after creation. An initial resize of size 0,0
occurs when the OCX is first built. Windows may send other events, depending on the screen
resolution configuration.
Any changes to data made by the OCX (field content, field data, reject flag, note information)
are reflected by all standard Kofax Capture controls, including the image viewer, the tree
view, the data entry panel, and the thumbnail view.
Note the following:
▪ Panels without windows: A “visible” flag in the registry determines if a panel is displayed
in the Panel group on the View tab. If a panel is not visible, it never appears in the Panel
group. The OCX has an API called ShowWindow(), which allows it to display itself.
If the panel has the visible flag = 0 in the registry, it does not appear in the Panel group. It
can still be displayed via command selections. If the panel is visible when the application
closes, it is visible when the application opens.
As a workaround, don’t display the panel. Instead, the OCX can display a modal window.
Or, you can hide the panel after opening the application.
▪ Panels hidden by the OCX: The application API allows the panel to hide/show itself.
Custom Panels in the Fluent User Interface
Updated or new custom panels may take advantage of the Fluent User Interface (UI). The
method AddMenuEx is provided explicitly for this purpose. This method functions exactly
like the older AddMenu method, but with several new parameters geared toward the Fluent
UI.
See the Kofax Capture API Reference for details.
Library control component:C# PDF Converter Library SDK to convert PDF to other file formats
C#.NET can manipulate & convert standard PDF developers to conduct high fidelity PDF file conversion C#.NET applications, like ASP.NET web form application and
www.rasteredge.com
Library control component:C# Image: How to Integrate Web Document and Image Viewer
RasterEdgeImagingDeveloperGuide8.0.pdf: from this user manual, you can find the detailed instructions and Now, you may add a new Web Form to your web project.
www.rasteredge.com
Custom Panels and Applications
Kofax Capture Developer's Guide
75
Themes in the Fluent User Interface
The look and feel for legacy custom panels may not conform to the look and feel of Kofax
Capture with the Fluent UI. By default, the panels appear in their native Windows style. The
only way to provide a matching look and feel is to change the Kofax Capture theme to match
the style of the custom panel.
An event and APIs have been provided to allow modified or new customizations to work
properly with themes.
Custom Tabs
The View tab contains a Panels group that allows hiding/showing the user panel. The User
Panel Name in the group is configurable.
In addition, each OCX can add a tab to the Ribbon. The name of the new tab must be different
from any existing tab text. Duplicates are not added. If you attempt to add duplicate text, an
error is generated.
The Ribbon text and tab items can be read from the registry. The registry supports one Ribbon
per panel. Multiple Ribbons may be defined programmatically.
When more than one OCX (user-defined panel) exists in the registry, they are added in the
order they are loaded. The registry alphabetizes its entries. If added programmatically, the
tabs are inserted in the order that the panels are loaded.
Commands such as Show Me, Hide Me, and Show window can be defined as part of your
OCX, as shown in the sample OCX provided in your installation folder. See Sample Custom
Panel
for more information about installing and registering the samples.
Scan, Quality Control, Validation, and Verification Tree Node (Context)
Menus
Each OCX may add one or more items to the tree nodes displayed in the Batch Contents
panel. The menu text, accelerator, and tree nodes are specified in the registry or you can add
them programmatically. Selecting one of these menu items sends an action event to the OCX.
The action event identifies the menu item selected.
Note  The OCX developer is responsible for accelerator key uniqueness.
Tabs Can Be Added, Removed, and Edited at Runtime
The AddMenu() API allows the addition of commands by the OCX while loading or running.
A ShowMenu() API allows a user-defined command to be shown or hidden. Refer to the Kofax
Capture API Reference for details about AddMenu() and ShowMenu().
Registry Entries for Tabs
Each user-defined panel has a Menus key under it. The Menus key has subkeys for each tab
that allows the insertion of commands. Each tab has a name and properties. Currently, the
only property is the tab text.
The table describes the Menus registry keys.
Library control component:C# Image: Save or Print Document and Image in Web Viewer
this. During the process, your web file will be automatically convert to PDF or TIFF file and then be printed out. Please
www.rasteredge.com
Library control component:C# PDF Convert to Jpeg SDK: Convert PDF to JPEG images in C#.net
and quickly convert a large-size multi-page PDF document to a group of high-quality separate JPEG image files within .NET projects, including ASP.NET web and
www.rasteredge.com
Custom Panels and Applications
76
Kofax Capture Developer's Guide
Table 6-1. Registry Keys
Key Entries
Description
Menus
This key indicates that tabs will follow. The locations are under the
tabs.
Batch
Document
MenuBar
Page
Locations for tabs to appear.
The following sample code shows the tab location names.
'*** Possible locations for user-defined 
'*** menus for Scan, Quality Control, 
'*** Validation, and Verification
m_RuntimeMenuLocationKeys(0) = “MenuBar”
m_RuntimeMenuLocationKeys(1) = “Batch”
m_RuntimeMenuLocationKeys(2) = “Document”
m_RuntimeMenuLocationKeys(3) = “Page”
The Ribbon contains one additional text key from the Ribbon to
identify the text displayed on the frame.
Batch Menu Sel
Tab event text, supplied by the developer. This is the text to be
returned to the OCX when the command is selected. This text is
passed back as part of the MenuClicked() action event.
Text “&Pick me…”
“Text” is the non-localized value that contains the text to be
displayed. This contains the accelerator key (“&” on the “P”).
For example, Menubar: “&Sample OCX” is the Ribbon text added from a registry entry. A tab
entry“&OCXTest” was added by calling AddMenu() within the OCX.
The MenuBar entry contains one string value; it is the tab text for the Ribbon with the
accelerator. You can programmatically add multiple tabs using AddMenu().
Note  The OCX developer is responsible for keytip uniqueness.
Custom Panel Installation
To install a custom panel, you must copy and register the OCX on each client computer in any
folder location. Also, you must install any required customer DLLs (if applicable).
Note  Custom panels are not included as part of the standard Kofax Capture installation.
However, sample custom panels are available in your Kofax Capture installation folder (a
VB.NET sample is located in 
Source\Sample Projects\StdCust
). For more information, see
Sample Custom Panel
.
Next, some registry entries (on each client computer) must be created under the following
path:
HKEY_LOCAL_MACHINE\Software\Kofax Image Products\Ascent Capture\3.0\{module
name}\User Panels\{User-Defined-Key}\
The “local machine” area is utilized since such a configuration is more likely to be based
on the computer than on the user. The {<module name>} must be replaced with one of the
following names:
Ascent Capture – Scan
Ascent Capture – Quality Control
Library control component:C# TIFF: C#.NET Code to Create Online TIFF Document Viewer
We still demonstrate how to create more web viewers on PDF and Word documents at the DLL into your C#.NET web page, you may create a new Web Form (Default.aspx
www.rasteredge.com
Custom Panels and Applications
Kofax Capture Developer's Guide
77
Ascent Capture – Validation
Ascent Capture – Verification
Ascent Capture – Administration
Although you may be working with a more recent Kofax Capture installation, notice that the
registry entry is created under a path that intentionally includes a reference to “3.0.”
Within the User Panels path, the {User-defined Key} key is any valid registry key. If more than
20 keys exist in this folder, then subsequent keys are ignored.
Value
Required?
Value Type
Notes
DisplayName
Yes
String
The name may appear
in the title bar of the
undocked panel or
in the Panels group.
The Panels group is
available on the View
tab. Currently, this tab
contains the name of
a user-defined OCX
and the end user is
allowed to turn the panel
on and off. The OCX
has no control over this
functionality. The Visible
value setting determines
whether or not the panel
name appears in the
Panels group.
InitSizeX
No
DWORD
The initial horizontal
OCX size in screen
resolution pixels. The
default is 50.
InitSizeY
No
DWORD
The initial vertical OCX
size in screen resolution
pixels. The default is 50.
MinSizeX
1
No
DWORD
The minimum undocked
horizontal OCX size in
screen resolution pixels.
The default is 50.
MinSizeY
1
No
DWORD
The minimum undocked
vertical OCX size in
screen resolution pixels.
The default is 50.
ProgID
Yes
String
The COM program ID of
the OCX.
Custom Panels and Applications
78
Kofax Capture Developer's Guide
Value
Required?
Value Type
Notes
ReplacesIndexFieldsPanel
No
DWORD
This applies to
the Validation and
Verification modules
only.
When enabled, the
Index Fields panel and
its View, Toolbars, and
Index Fields commands
are hidden. Additionally,
its context menu does
not show the Index
Fields menu item.
When an eDocument is
displayed, the internal
Windows Explorer
panel takes focus
after displaying the
eDocument. If the OCX
has registered itself as
ReplacesIndexFieldsPanel,
it will receive
a new event
(KfxOcxEventResetFocus)
indicating that focus has
been returned to the
OCX. In such cases,
Kofax Capture gives
focus to the “outer” OCX
panel. However, you
may want to set focus
to some subcontrol. To
do this, catch the new
event and set focus as
desired.
Only one OCX can
register itself as
ReplacesIndexFieldsPanel.
Note that the panel
works best when it is
docked.
Visible
No
DWORD
Determines if the panel
is displayed in the
Panels group. If the
panel is not visible, it
can still be displayed
via commands. Defaults
to 1 (visible); 0 is not
visible.
The minimum size parameters affect only the undocked minimum size. There is no support
for minimum docked size.
Custom Panels and Applications
Kofax Capture Developer's Guide
79
Figure 6-1. Registry Values for the {User-Defined Key}
The initial docking location is always at the upper left of the client area.
If any required values are missing, the application displays the following error message and
then shuts down:
User-defined OCX “{User-defined Key}” contains any invalid registry values
for {Key Name}.
Because the OCX is an integral part of the application, the user is not allowed to run
the application unless the OCX is properly set up. If absolutely necessary, the user may
completely remove the OCX registry key and the software will run. However, this is not
recommended as invalid data may occur (assuming the OCX is performing the necessary
tasks).
If any size parameter is out of range, the following message appears:
{parameter} for user-defined OCX {DisplayName} is out of range.
The “{parameter}” string is one of the values shown in the preceding table. If all parameters
are read and valid, but the OCX cannot be created for some reason, the following message
appears:
Unable to create user-defined OCX {DisplayName} ({details})
Where:
{details} indicates the error number and/or description.
Invoking Kofax Capture Commands from a Custom OCX Panel
You can use a custom OCX panel to invoke Kofax Capture commands in the Administration,
Scan, Quality Control, Validation, and/or Verification modules through the SelectMenuItem
function.
Custom Panels and Applications
80
Kofax Capture Developer's Guide
Table 6-2. SelectMenuItem Function
Function
Arguments
Description
SelectMenuItem
Returns: Boolean
Parameters:
lResourceID [ByVal; Long]
bSendImmediate [ByVal
Optional Default to FALSE]
Sends a selected command to a
Kofax Capture module.
Resource ID of command.
If successful, SelectMenuItem returns a nonzero value. In the case of an unexpected system
error, it returns a value of zero. SelectMenuItem throws an error if any of the following are
true:
▪ You specify an invalid resource ID for the command
▪ Item is currently grayed in the target module
▪ You execute an exit command immediately (bSendImmediate is True)
▪ Application is busy
The bSendImmediate parameter is optional, and it can be set to True or False.
▪ If True, bSendImmediate invokes the Windows API call “SendMessage,” which executes
the command instantly and fails if the module is processing another event.
▪ If False, bSendImmediate invokes the Windows API call “PostMessage,” which posts the
command so it is executed when other events are completed.
Passing a Command to the Scan Module
The following sample passes a command from a custom OCX to the Scan module. The
command shown here displays the last page in a batch.
Private Sub ScanStopped()
Dim bResult As Boolean = False
Dim lMenuResourceNumber As Integer =
InteropServices.KfxApiScanMenuItems.KfxScanMenuPageLast
Dim bSendImmediate As Boolean = False
Try
bResult = m_oApp.SelectMenuItem(lMenuResourceNumber, bSendImmediate)
Catch ex As Exception
MessageBox.Show(String.Format("Unable to select menu: {0}", ex.ToString()))
End Try
End Sub
OCX Tab Selection
In the following code, the OCX Tab Selection invokes the selection of About Kofax Capture in
the Administration module.
Dim bResult As Boolean = False
Dim bSendImmediate As Boolean = False
'*** Display the about box
bResult = m_oApp.SelectMenuItem(InteropServices.KfxApiAdminMenuItems.
KfxAdminMenuHelpAboutAscentCapture, bSendImmediate)
Documents you may be interested
Documents you may be interested