Document generated by Confluence on Mar 08, 2013 21:48
Page 71
Advanced Topics
This page last changed on Jan 27, 2010 by patrick.corless.
This section provides examples for numerous ICEpdf advanced techniques.
Customizing the SwingViewBuilder
Window Management
Adding a Custom Utility Tool
Building a Custom Page View
Implementing a SecurityCallback
Implementing an AnnotationCallback
Printing
Font Management
Adding Font Paths to the FontManager
Memory Management and Caching
Internationalization
Generate pdf thumbnail c# - control application platform:C# PDF Thumbnail Create SDK: Draw thumbnail images for PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Thumbnail Generation with Various Options for Quick PDF Navigation
www.rasteredge.com
Generate pdf thumbnail c# - control application platform:VB.NET PDF Thumbnail Create SDK: Draw thumbnail images for PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Thumbnail Generation with Various Options for Quick PDF Navigation
www.rasteredge.com
Document generated by Confluence on Mar 08, 2013 21:48
Page 72
Customizing the SwingViewBuilder
This page last changed on Jan 27, 2010 by mark.collette.
The 
org.icepdf.ri.common.SwingViewBuilder
class constructs a set of GUI components which are pre-
configured to work with the 
org.icepdf.ri.common.SwingController
class to manipulate and reflect
the status of view of a rendered PDF document.
The 
SwingViewBuilder
methods, 
buildViewerFrame
and 
buildViewerPanel
, provide the high-
level entry points for the GUI construction process, with each constructing complete PDF Viewer
user interfaces. In addition, numerous other 
build...
methods are available that construct specific
components and subcomponents.
See the JavaDoc for the SwingViewBuilder class for an overview of the various build... methods.
For example, the 
buildCompleteMenubar()
method will construct and return a complete application
menu bar, including File, View, Document, Window, and Help menus. The 
buildFileMenu()
method
will construct and return the File menu, including menu items for Open, Close, Save As, Export, Print,
etc. You may use the 
SwingViewBuilder
methods at any level that is appropriate for your application to
construct the various user interface components that you require.
If you prefer to customize the GUI components that the 
SwingViewBuilder
creates, you will need to
adopt one of the following strategies:
1. Directly modify the 
SwingViewBuilder
source code, or copy the 
SwingViewBuilder
class into a new
class of your own and make required changes to the new class. Using this approach will ensure that
any changes or enhancements made to the default Viewer user interface in future versions of ICEpdf
will not impact your application. You will need to integrate any changes you wish to adopt manually.
2. Subclass the SwingViewBuilder class and override the build... methods that you need to modify. The
advantage of this approach is that your application will automatically incorporate any changes or
additions to the Viewer user interface provided in subsequent releases of ICEpdf for those methods
that you haven't overridden. For example, if you are satisfied with the default Viewer Component
user interface, but need to modify the Help->About menu-item to display a custom About dialog
for your application, you would extend the SwingViewBuilder class and override the
buildAboutMenuItem() method to return a menu item that displays your custom About dialog. If a
future version of ICEpdf includes additional Tools, such as a Text Selection Tool, your user interface
will automatically adopt the new toolbar and menu changes to add support for the new Tool without
requiring any manual integration of the new code.
control application platform:How to C#: Generate Thumbnail for Word
VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel, VB.NET PowerPoint, VB.NET Tiff, VB.NET Imaging, VB.NET OCR, VB.NET How to C#: Generate Thumbnail for Word.
www.rasteredge.com
control application platform:How to C#: Generate Thumbnail for PowerPoint
VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel, VB.NET PowerPoint, VB.NET Tiff, VB.NET Imaging, VB.NET OCR, VB How to C#: Generate Thumbnail for PowerPoint
www.rasteredge.com
Document generated by Confluence on Mar 08, 2013 21:48
Page 73
Window Management
This page last changed on Dec 10, 2009 by ken.fyten.
Window events, such as closing a window, must be handled by your application, not the ICEpdf
framework. Your application needs to track windows and viewports from creation to destruction.
The package 
org.icepdf.core.ri.viewer
contains reference code for creating window management.
control application platform:How to C#: Generate Thumbnail for Raster
VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel, VB.NET PowerPoint, VB.NET Tiff, VB.NET Imaging, VB.NET OCR, VB How to C#: Generate Thumbnail for Raster.
www.rasteredge.com
control application platform:How to C#: Overview of Using XImage.Raster
See this C# guide to learn how to use RasterEdge XImage SDK for .NET to perform quick file navigation. You may easily generate thumbnail image from image file.
www.rasteredge.com
Document generated by Confluence on Mar 08, 2013 21:48
Page 74
Adding a Custom Utility Tool
This page last changed on Jan 27, 2010 by mark.collette.
The ICEpdf Viewer RI provides a tabbed utility pane component that is used to display a document
outline (bookmarks) when available and a document search capability. This utility pane can also be
configured to support additional custom utility tab components as required. The SwingViewBuilder
method 
JTabbedPane
buildUtilityTabbedPane()
is responsible for creating the tabbed utility pane for
the outline and search user interfaces. This method can be easily modified to add your own custom utility
user interface.
The 
org.icepdf.core.ri.common.SearchPanel
component provides a reference implementation that
demonstrates implementing a basic search interface for finding text within a PDF document.
control application platform:How to C#: Generate Thumbnail for Excel
VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel, VB.NET PowerPoint, VB.NET Tiff, VB.NET Imaging, VB.NET OCR, VB.NET How to C#: Generate Thumbnail for Excel.
www.rasteredge.com
control application platform:VB.NET Image: How to Process & Edit Image Using VB.NET Image
Visual C#. VB.NET. RasterEdge provides this VB.NET image processor control SDK which owns the APIs for developers to create image thumbnail, resize, crop, scale
www.rasteredge.com
Document generated by Confluence on Mar 08, 2013 21:48
Page 75
Building a Custom Page View
This page last changed on Jan 27, 2010 by mark.collette.
By default, the ICEpdf Viewer application can display PDF documents in any of the predefined views
specified in the PDF Reference. The viewer application will first see if the document specifies which
document view to use. If not specified, then the viewer selects the view that was last used.
The source code for all of the view layout types can be found in the package
org.icepdf.core.ri.common.views
. Each page is represented by a PageViewComponentImpl object
which can be easily used to build
custom view types.
The page view implementation uses a secondary MVC to manage the multiple views efficiently. All
supporting classes can be found in the package 
org.icepdf.core.views
. The support view types are as
follows:
Single Page - Displays one page at a time.
One Column - Displays the pages, continuously, in one column.
Two Column Left - Displays the pages, continuously, in two columns, with odd-numbered pages on
the left.
Two Page Left - Displays the pages, two at a time, with odd-numbered pages on the left.
control application platform:How to C#: Overview of Using XDoc.PowerPoint
See this C# guide to learn how to use RasterEdge PowerPoint SDK for .NET to perform quick file navigation. You may easily generate thumbnail image from
www.rasteredge.com
control application platform:How to C#: Overview of Using XDoc.Word
Tell C# users how to: create a new Word file and load Word from pdf; merge, append, and split Create Thumbnail. You may easily generate thumbnail image from Word
www.rasteredge.com
Document generated by Confluence on Mar 08, 2013 21:48
Page 76
Implementing a SecurityCallback
This page last changed on Jan 27, 2010 by mark.collette.
When the Document class encounters a PDF document that is encrypted with Acrobat standard security,
it first tries to open the PDF file with an empty password string. If the Document class fails to validate
the empty password, the application must have a mechanism to request the password. You can use the
org.icepdf.core.SecurityCallback
interface to do this.
The interface has one method, which is called by the Document class to retrieve a document's password.
You can implement the SecurityCallback interface in numerous ways to meet the needs of your
application. For example, the package 
org.icepdf.core.ri.common
contains reference code for the
SecurityCallback in the class 
MyGUISecurityCallback
.
Consider the following code which would allow a user to type in the documents password if needed.
// new document instance
Document document = new Document();
// setup a security callback before opening an encrypted document.
document.setSecurityCallback(new SecurityCallback(){
public String requestPassword(Document document) {
System.out.println(
"This document is Encrypted please type the document password:");
String input = "";
// get users  password
try {
BufferedReader stdin =
new BufferedReader(new InputStreamReader(System .in));
input = stdin.readLine();
catch (IOException e) {}
return input;
}
});
// finally open the document.
document.setFile(filePath);
The anonymous inner class allows a developer to handle how they want to ask a user for the password.
In this case the command line is used, but alternatively a dialog or some other input form could have
been use.
Document generated by Confluence on Mar 08, 2013 21:48
Page 77
Implementing an AnnotationCallback
This page last changed on Jan 27, 2010 by mark.collette.
ICEpdf can optionally be configured to support interacting with link annotations. The
Viewer RI and Pilot RI, by default, come configured with their own implementations of the
org.icepdf.core.AnnotationCallback
. They differ only by how they handle external URI Actions. The
Viewer RI will load an external URI with the Operating System's default web browser, while the Pilot RI
will load external URI links in a new ICEbrowser viewport.
ICEpdf only supports annotations via the mouse pointer; there is no keyboard support at this time. When
the mouse is moved over a portion of a PDF document which is marked as an annotation, the mouse
cursor will change into a hand with a pointing finger. When a user clicks on the annotation, ICEpdf will
draw any effect specified by the selected annotation, but it will not execute the annotation action; it
instead passes the selected annotation to the AnnotationCallback. It is up to the AnnotationCallback
implementation to process the annotation's actions.
A default implementation of an AnnotationCallback can be found in
org.icepdf.core.ri.common.MyAnnotationCallback
.
The following code snippet shows how to configure the SwingController with an AnnotationCallback that
would allow the user to interact with annotations in a PDF document.
// build a component controller
SwingController controller = new SwingController();
SwingViewBuilder factory = new SwingViewBuilder(controller);
JPanel viewerComponentPanel = factory.buildViewerPanel();
// add interactive mouse link annotation support via callback
controller.getDocumentViewController().setAnnotationCallback(
new org.icepdf.ri.common.MyAnnotationCallback(
controller.getDocumentViewController()));
JFrame applicationFrame = new JFrame();
applicationFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
applicationFrame.getContentPane().add(viewerComponentPanel);
// Now that the GUI is all in place, we can try openning a PDF
controller.openDocument(filePath);
Document generated by Confluence on Mar 08, 2013 21:48
Page 78
Printing
This page last changed on Jan 28, 2010 by patrick.corless.
Printing a PDF document with ICEpdf is a highly configurable task that allows users to print using a wide
range of Java technologies. To aid developers in printing, the package 
org.icepdf.core.ri.common
contains the PrintHelper class that implements Java 2 Printable and Pageable interfaces. The source code
for this class is available for users who want to gain a greater understanding of the printing process or
modify the printing behavior.
A simple standalone print example can be found here Print Services Example
Document generated by Confluence on Mar 08, 2013 21:48
Page 79
Font Management
This page last changed on Dec 10, 2009 by ken.fyten.
ICEpdf uses a font manager to manage fonts that exist on the host operating system. The FontManager
class can be found in the package 
org.icepdf.core.fonts
.
When the font manager's 
readSystemFonts()
method is called, it tries to read all fonts on the host
operating system and stores the name, family and path information of the readable font. The reading
of all font programs can be time consuming and in most usage scenarios needs only to be done once
as operating system fonts do not change regularly. As a result, the manager can import and export
the collected font information using the 
getFontProperties()
and 
setFontProperties()
methods
respectively.
A basic 
FontPropertiesManager
class is available in the package 
org.icepdf.core.ri.util
.
Document generated by Confluence on Mar 08, 2013 21:48
Page 80
Adding Font Paths to the FontManager
This page last changed on Jan 27, 2010 by mark.collette.
If you want to specify additional font paths to be ready by the FontManager class, it is possible, using the
readSystemFonts()
method.
The following code demonstrates how to add more font paths to the FontManager's internal list of paths:
String[] extraFontPaths = new String[] {"f:\\windows\\fonts\\""f:\\winnt\\fonts\\"};
FontManager fontManager = FontManager.getInstance();
fontManager.readSystemFonts(extraFontPaths);
Documents you may be interested
Documents you may be interested