VirtualViewer V2.2.NET AJAX Administrator s Guide

Similar documents
VirtualViewer V3.2.NET AJAX Administrator s Guide

VirtualViewer V2.2 Java AJAX Administrator s Guide

VirtualViewer Documentum D2 Integration Deployment Guide

VirtualViewer V1.0 Java FileNet for P8 Connector Installation Guide

VirtualViewer Documentum Connector Integration Guide

VirtualViewer V13.6 Java User's Guide

VirtualViewer V4.10 VirtualViewer HTML5 for.net Client Administrator s Guide

Batch Image Converter V4.2 Programmer's Reference Guide

V13.6 Java Content Server Administrator's Guide

VirtualViewer V4.11 VirtualViewer HTML5 for.net Client Administrator s Guide

VirtualViewer HTML5 ICN Connector Installation Guide

VirtualViewer V4.10 VirtualViewer HTML5 for Java Client Administrator s Guide

Version Installation Guide. 1 Bocada Installation Guide

TIBCO iprocess Workspace Plug-ins Installation. Software Release 11.2 September 2009

Migrate From Version 3.1 to Version 4 Guide Vovici Enterprise 4.0. December 2008

Early Data Analyzer Web User Guide

PDF SHARE FORMS. Online, Offline, OnDemand. PDF forms and SharePoint are better together. PDF Share Forms Enterprise 3.0.

Authorized Send User s Guide for imagerunner Machines Version 4.1

Authorized Send User s Guide Version 4.0

Password Reset Server Installation

Top Producer for Palm Handhelds

Relativity Designer Installation Guide

Migrate From Version 2.2 to Version 3.1 Guide

COGNOS (R) ENTERPRISE PLANNING SERIES

Microsoft Dynamics GP Web Client Installation and Administration Guide For Service Pack 1

Installation Guide Worksoft Certify

2013 Installation Guide

EMC SourceOne for Microsoft SharePoint Version 6.7

Adobe Acrobat DC for Legal Professionals - Quick Reference Guide

DefendX Software Control-Audit for Hitachi Installation Guide

Installation Guide. May vovici.com. Vovici Enterprise Version 6.1. Feedback that drives vision.

Installation Guide. Mobile Print for Business version 1.0. July 2014 Issue 1.0

Document Viewer 2.0 User Guide

Data Connector 2.0 User Guide

Upgrading to Sage ACT! 2013 from ACT! 3.x, 4.x, 5.x (2000), or 6.x (2004)

127 Church Street, New Haven, CT O: (203) E: GlobalSearch ECM User Guide

Install Vovici Version 4 Guide Vovici v4. January 2009

INSTALLATION AND SET UP GUIDE

VirtualViewer 4.9 New Features and Corrected Issues

Adobe Acrobat Weblink Plug-in

Data Connector 2.0 User Guide

Informatik Image Markup

Oracle User Productivity Kit Content Player

Business Insights Dashboard

TIBCO iprocess Workspace (Browser) Installation Guide. Software Release 11.3 May 2011

Manuals for This Product

AvePoint Permissions Manager

equestionnaire User Guide

COGNOS (R) ENTERPRISE BI SERIES COGNOS IMPROMPTU (R) ADMINISTRATOR FOR WINDOWS

INSTALLATION AND SET UP GUIDE

User Guide 701P Wide Format Solution Wide Format Scan Service

GraffixPro Studio Getting Started Guide

EMC ApplicationXtender Web Access

NTP Software File Auditor for Windows Edition

HP OpenView Service Desk

Convert to PDF 3.0. User Guide. PEERNET Inc.

User Manual. pdoc Forms Designer. Version 3.7 Last Update: May 25, Copyright 2018 Topaz Systems Inc. All rights reserved.

EMC ApplicationXtender Web Access.NET eroom Integration 6.0

Vizit Essential for SharePoint 2013 Version 6.x User Manual

RTX SDK INSTALL GUIDE

Supervisor Insight. Installation Guide.

All other products, brands, names or trademarks mentioned in this document may be trademarks or registered trademarks of their respective owners.

Workspace Administrator Help File

FaxFinder Fax Servers

NeuralStar Installation Guide

Authorized Send User s Guide Version 3.5

AvePoint Online Services for Partners 2

x10data Application Platform v7.1 Installation Guide

EMC SourceOne for Microsoft SharePoint Version 7.1

TA Instrument Explorer. Getting Started Guide

Sage 300. Sage CRM 2018 Integration Guide. October 2017

Workstation Configuration Guide

EMS DESKTOP CLIENT Installation Guide

Table of Contents INTRODUCTION... 3 SYSTEM REQUIREMENTS... 3 STEP 1 DETERMINE WHICH VERSION OF EMERGE YOU NEED... 5 STEP 2 GETTING EMERGE ACCESS...

Workstation Configuration

Upgrading to Act! v20 from ACT! 3.x, 4.x, 5.x (2000), or 6.x (2004)

UPDATE GUIDE V4.5 TO V4.6

ecopy PaperWorks Connector for Microsoft SharePoint Administrator s Guide

Enterprise Vault.cloud CloudLink Google Account Synchronization Guide. CloudLink to 4.0.3

Aprimo Marketing Studio Configuration Mover Guide

Solution Composer. User's Guide

Nimsoft Service Desk. Single Sign-On Configuration Guide. [assign the version number for your book]

Microsoft Office Groove Server Groove Manager. Domain Administrator s Guide

Installation on Windows Server 2008

SAS Marketing Operations Management 6.6: Installation, Configuration, and Administration Guide

Symantec Ghost Solution Suite Web Console - Getting Started Guide

HR-Lite Database & Web Service Setup Guide

Sherlock Tutorial Getting Started

HP QuickTest Professional

Vizit Pro User Manual

IntelliTrack DMS (Data Management System) v8.1 Quick Start Guide Preliminary Copy (July 2011) Copyright 2011 IntelliTrack, Inc.

Sage 500 ERP 2016 Business Insights Dashboard Guide

COGNOS (R) ENTERPRISE BI SERIES COGNOS REPORTNET (TM)

Installation Guide for Pulse on Windows Server 2012

OptionPower 3.2. for Office 2007 STARTUP GUIDE. Interactive Audience Response Systems

Install Vovici Version 5.1 Guide Vovici Enterprise 5.1. October 2009

Table of Contents INTRODUCTION... 3 SYSTEM REQUIREMENTS... 3 STEP 1 DETERMINE WHICH VERSION OF EMERGE YOU NEED... 5

Check Point Document Security

FileWay User s Guide. Version 3

UC for Enterprise (UCE) NEC Centralized Authentication Service (NEC CAS)

Transcription:

VirtualViewer V2.2.NET AJAX Administrator s Guide Note: An online version of this manual contains information on the latest updates to VirtualViewer. To find the most recent version of this manual, please visit the online version at www.virtualviewer.com or download the most recent version from our website at www.snowbound.com/support/manuals.html. DOC-0168-02

Copyright Information While Snowbound Software believes the information included in this publication is correct as of the publication date, information in this document is subject to change without notice. UNLESS EXPRESSLY SET FORTH IN A WRITTEN AGREEMENT SIGNED BY AN AUTHORIZED REP- RESENTATIVE OF SNOWBOUND SOFTWARE CORPORATION MAKES NO WARRANTY OR REP- RESENTATION OF ANY KIND WITH RESPECT TO THE INFORMATION CONTAINED HEREIN, INCLUDING WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PURPOSE. Snowbound Software Corporation assumes no responsibility or obligation of any kind for any errors contained herein or in connection with the furnishing, performance, or use of this document. Software described in Snowbound documents (a) is the property of Snowbound Software Corporation or the third party, (b) is furnished only under license, and (c) may be copied or used only as expressly permitted under the terms of the license. All contents of this manual are copyrighted by Snowbound Software Corporation. The information contained herein is the exclusive property of Snowbound Software Corporation and shall not be copied, transferred, photocopied, translated on paper, film, electronic media, or computer-readable form, or otherwise reproduced in any way, without the express written permission of Snowbound Software Corporation. Microsoft, MS, MS-DOS, Windows, Windows NT, and SQL Server are either trademarks or registered trademarks of Microsoft Corporation in the United States and/or other countries. Adobe, the Adobe logo, Acrobat, and the Acrobat logo are trademarks of Adobe Systems Incorporated. Sun, Sun Microsystems, the Sun Logo, and Java are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. Foxit PDF Reader, copyright by Foxit Software Company. All rights reserved. itext, the Initial Developers of the Original Code are Bruno Lowagie and Paolo Soares. Portions created by Bruno Lowagie are Copyright 1999-2010 by Bruno Lowagie. Kakadu JPEG2000, is copyrighted by Dr. David Taubman, and is proprietary to NewSouth Innovations, Pty. Ltd, Australia. Aspose, Aspose.Cells (copyrighted 2003), Aspose.Words (copyrighted 2003), and Aspose.Slides (copyrighted 2004), are all proprietary to Aspose Software, Pty. Ltd, Australia. United States Government Restricted Rights The Software is provided with RESTRICTED RIGHTS. Use, duplication or disclosure by the United States Government is subject to restrictions as set forth under subparagraph (c)(1)(ii) of The Rights in Technical Data and Computer Software clause of DFARS 252.227 19 or subparagraphs (c)(i) and (2) of the Commercial Computer Software-Restricted Rights at 48 CFR 52.227 19 as applicable. The Manufacturer is Snowbound Software Corporation, 309 Waverley Oaks Rd., Suite 401, Waltham, MA 02452, USA. All other trademarks and registered trademarks are the property of their respective holders. Manual Title: Snowbound Software VirtualViewer.NET AJAX Administrator s Guide Part Number: DOC-0168-02 Revision: 02 VirtualViewer for.net AJAX Release Number: 2.2 VirtualViewer Release Number: 2.2 Printing Date: June 2012 Published by Snowbound Software Corporation. 309 Waverley Oaks Road Suite 401 Waltham, MA 02452 USA phone: 617-607-2000 fax: 617-607-2002 1996-2012 by Snowbound Software Corporation. All rights reserved.

Table of Contents Chapter 1 - Getting Started 11 Overview 11 System Requirements 11 Supported Operating Systems (Server) 11 Supported Browsers (Client and Server) 11 Exceptions to Supported File Formats and Platforms 12 Location of the Log Files 12 Packaging 12 What to Expect in an Evaluation Version of VirtualViewer.NET AJAX 12 What to Expect in a Production Version of VirtualViewer.NET AJAX 13 Installing the Production Version of VirtualViewer.NET AJAX 13 Installation Checklist 13 Installing 14 Configuration Parameters 21 Configuring with an Integrated Content Server 22 Configuring Manually 23 Running VirtualViewer in a Browser 25 Working with the Content Handler 26 VirtualViewer.NET AJAX Content Handlers 26 FileContentHandler.dll 26 URLContentHandler.dll 26 Running with SPContentHandler.dll 27 iii

Deploying the Web Part from Visual Studio 2010 29 Deploying the WebPart from SharePoint 2010 Power Shell 30 Adding the Snowbound WebPart to a SharePoint Page 30 Customizing for Your Environment 30 Customizing Where VirtualViewer Gets Its Documents 31 Getting Files from a Local Directory 31 Getting Files from a Non-local Directory 31 Setting VirtualViewer.NET AJAX to Use Pipeline Integrated Mode 32 Verifying 32 Running VirtualViewer in a Browser 32 Verifying that Your Documents Work in VirtualViewer AJAX 33 Chapter 2 - Using VirtualViewer.NET AJAX Client 35 The Annotation Toolbar 35 Creating Annotations 35 Toggle Annotation Properties 36 Moving an Annotation 36 Resizing an Annotation 36 Cycling Through Annotations 36 Saving Annotations 36 Deleting Annotations 37 One Layer Per Annotation 37 Undo a Deleted Annotation 37 Using Rubber Stamp Annotation Functionality 37 The Page and Document Toolbar 39 iv

Exporting a Document 39 Exporting a Document with Annotations 39 Sending a Document 40 Printing 40 Printing with or without Annotations 41 Zooming 41 Rubber Band Zoom 42 Fit-to-Page 42 Page Controls 42 Page Manipulations 42 Inverting 42 Turning On Buttons that are Off by Default 42 Using the Layer Manager 43 Creating a New Layer 44 Deleting a Layer 45 Renaming a Layer 45 Redacting a Layer 46 Using the Thumbnail and Docs Panels 46 Manipulating Page Order Using Thumbnails 47 Page Manipulations 47 Selecting a Page 47 Loading the Page Manipulation Context Menu 48 Cutting, Copying, Deleting and Inserting Pages 49 Saving Page Manipulations 49 v

Copy to New Document 49 Open Multiple Documents 52 Chapter 3 - Customizing the Configuration 54 Configuring web.config 54 InitParams 54 Display Your Documents 54 Getting Files from a Non-local Directory 55 Configuring with an Integrated Content Server 56 Customizing What is Displayed 57 Configuring to Display Office 2007 Files for Word, Excel, and PowerPoint 57 Embedding in an asp.net Web Application 57 Improving Performance or Quality 58 Setting the Bit Depth - xxxbitdepth 58 Setting the DPI - xxxdpi 59 Setting the Format - xxxformat 60 Default Configuration Maximizes Performance 60 Configuring to Maximize Quality 61 Saving the File as Black and White or Gray Scale 61 Memory Recommendation 61 Setting the Parameters in the Web.xml File 61 Chapter 4 - Using Advanced Features 63 Virtual Documents 63 Loading Virtual Documents 63 Virtual Document Syntax 63 vi

Displaying a Virtual Document 64 Printing Virtual Documents 64 Annotation Security: Watermarks and Redactions 64 The Annotation Security Model 65 Permission levels 65 Level Definitions 65 Retrieving Annotation Layers 66 Key/Value Pairs 67 Saving Redaction Layers 67 Printing Layers 67 Connecting Your Document Store 67 What is the Content Handler? 68 VirtualViewer.NET AJAX Content Handlers 68 FileContentHandler.dll 68 URLContentHandler.dll 68 Running VirtualViewer.NET AJAX with SPContentHandler.dll 69 Deploying the Web Part from Visual Studio 2010 70 Deploying the WebPart from SharePoint 2010 Power Shell 71 Adding the Snowbound WebPart to a SharePoint Page 72 Setting the Relative Path 72 How the Content Handler Works 72 Plugging in a Custom Content Handler 73 VirtualViewerNetContentHandlerInterface 73 CacheValidator 73 vii

CacheValidator Method Detail 74 Extracting Parameters from ContentHandlerInput 74 Populating Parameters for ContentHandlerInput 76 Populating Parameters for ContentHandlerResult 76 Content Handler Methods 77 VirtualViewerNetContentHandlerInterface Method Detail 78 VirtualViewerNetSaverInterface Method Detail 82 Appendix A - Config.js Parameters 85 Descriptions of Config.js Parameters 85 Appendix B - AJAX Server web.config Parameters 92 Description of the AJAX Server Parameters 92 Appendix C - Server Tags for web.config 93 Required Servlet Parameters 93 Optional Servlet Parameters 93 RequestServer Parameters 97 RetreivalServer Parameters 97 Appendix D - Supported File Formats 98 Descriptions of Supported File Formats 98 File Type Constants Listed by File Type Number 109 Appendix E - Snowbound Error Codes 113 Detailed Status/Error Codes 113 General Error Define Values Retrieved from Status Property 115 General Status/Error Codes 116 Appendix F - Troubleshooting 117 viii

Troubleshooting with the vvcheck Diagnostic Tool 117 "Please wait while your image is loaded" Message Displays Indefinitely 117 404 Not Found 117 405 Method Not Allowed 118 500 Internal Server Error 119 Failed to Access IIS Metabase Error 119 Documents Slowly to Load in Multiple Documents Mode 119 Word, PDF and DWG Documents Do Not Display Correctly After Installation 119 DWG Documents Do Not Display Using URLContentHandler 120 Snowbound DLLs Not Found at Runtime 120 Annotations are Not Printed or Saved 120 Default Configuration Maximizes Performance 121 Configuring to Maximize Quality 121 Determining Memory Requirements 121 ix

List of Tables Table 3.1: Bit Depth Parameter Values and Description 58 Table 3.2: DPI Parameter Value and Description 59 Table 3.3: Format Parameter Value and Description 60 Table 4.1: Virtual Document Syntax 63 Table 4.2: Permission Levels 65 Table 4.3: Level Definitions 65 Table 4.4: Method Summary 75 Table 4.5: Existing Keys for the Hash Table to Extract Parameter Data 75 Table 4.6: Property Descriptions 76 Table 4.7: VirtualViewerNetContentHandlerInterface 77 Table A.1: Config.js Parameters 85 Table B.1: Supported AJAX Server Parameters 92 Table C.1: ResponseServer Servlet Parameter 93 Table C.2: RequiredServlet Servlet Parameter. 93 Table C.3: ResponseServer Server Parameters 93 Table C.4: RequestServer Servlet Parameters 97 Table C.5: RetreivalServer servlet parameter. 97 Table D.1: File Format Key 98 Table D.2: Supported File Format Descriptions 98 Table D.3: Snowbound File Type Constants Listed by File Type Number 109 Table E.1: Error Codes 113 Table E.2: General Error Defined Values Retrieved from Status Property 115 Table E.3: General Status/Error Codes 116 x

Chapter 1 - Getting Started Chapter 1 - Getting Started Overview Snowbound Software s.net AJAX Viewer works with the latest.net and AJAX technology to create a true zero footprint viewing solution. This document will aid you with setting up and working with the package included in your zip file, VirtualViewerNetAJAX.zip. This zip file installs all of VirtualViewer.NET AJAX components on a single system. For information on configuring VirtualViewer.NET AJAX, please see Chapter 3 - Customizing the Configuration. System Requirements Note: If you are installing on a 64-bit operating system you will have the option of installing the 32-bit or the 64-bit version of VirtualViewer.NET AJAX. You may want the 32-bit version if you will be using a 32-bit ECM connector (ContentHandler) to access your documents, such as SharePoint 2007 x32. Internet Information Services 5.0 or higher..net Framework 2.0 SP1 or higher. Supported Operating Systems (Server) Windows XP Service Pack 2 Windows 2003 Server (Service Pack 2 recommended) Windows Vista Windows 2008 Server 64-bit Windows operating system 32-bit installation (Available by request) Windows 7 Supported Browsers (Client and Server) Internet Explorer 7, 8 or 9 Firefox 2 and 3 Safari 3 Google Chrome 10 11

Chapter 1 - Getting Started Exceptions to Supported File Formats and Platforms We do our best to support product and document specifications and to work in common platform environments, however there are always exceptions. If you find an exception please contact Snowbound Support at www.support.snowbound.com to let us know about it. Location of the Log Files For VirtualViewer.NET AJAX Server, you can find the logs files at the following locations if you are using the non-integrated production installation: virtualviewernetcontentserver.log at Install- Directory\VirtualViewerNetContentServer virtualviewernetajaxserver.log at Install- Directory\VirtualViewerNetAJAXServer For VirtualViewer.NET AJAX Server, you can find the logs files at the following location if you are using the integrated installation: virtualviewernetajaxserver.log at Install- Directory\VirtualViewerNetAJAX If log files do not appear, be sure to add write permissions to the respective directories. Packaging Virtual Viewer.NET AJAX is delivered as a.zip file including the VirtualViewerNetAJAX.zip installation package. The package may vary depending on your version. The most current set of documentation is included with the installation package to assist you in installing and administrating this product. The documentation is described below and can be found in the Documentation directory within the.zip file. VirtualViewerDotNETAJAXAdminGuide.pdf: This guide describes how to use and configure VirtualViewer.NET AJAX Client. VirtualViewerDotNETAJAXViewerReleaseNotes.pdf: The release notes describe the latest additions and improvements to VirtualViewer AJAX. What to Expect in an Evaluation Version of VirtualViewer.NET AJAX Your evaluation is a full version of the product with the following limitations: You will see a pop up banner when you view or convert your first document. Subsequent documents in the same session will not elicit the banner. You will see large thin Xs across each page after the first 50 pages or thumbnails. After your expiration date you will see a banner stating the evaluation has expired. You will not see any output. Other than that you will have full use of the product including support for all document formats. 12

Chapter 1 - Getting Started What to Expect in a Production Version of VirtualViewer.NET AJAX When you purchase VirtualViewer.NET AJAX, you will receive a set of fully licensed binary files. The files will include snbd*.dll and.lib +.dlls. If the viewer does not display DOC, PDF and DWG files as expected, please restart IIS and your Windows system. When the system Path environment variable has been modified to include the Snowbound installation directory specifying the location of the DOC, PDF and DWG plug-ins, the process that uses the Path variable needs to restart to pick up the new Path value. Installing the Production Version of VirtualViewer.NET AJAX Install and configure the evaluation version of the product on your target production system. Ensure it is working as you intended. Extract the binary files from the production version package and use those to replace the same files in the evaluation version that you have installed. Once the production files are in place, you will no longer see banners or Xs. You will only see expiration messages if you try to view a document of a type that you did not purchase, for example Office or AFP/MO:DCA. If you are upgrading from an older version of VirtualViewer AJAX to version 2.1 or more recent, you may find that the structure of the directories have changed. This is on purpose to improve performance. Previously, we separated the two directories VirtualViewerNetAJAXServer and VirtualViewerNetContentServer as a demonstration to show how the content server can be separated out so it can be run independently from the VirtualViewer servlet functionality. In the new version, both web.xml files are combined for simplicity, clarity and better performance. This is known as the integrated mode configuration. We still support separating the AJAX Server and ContentServer onto different machines or into different directories (non integrated or "http" mode). Please contact Snowbound Software Support at www.support.snowbound.com if you need assistance. Installation Checklist To properly run VirtualViewer.NET AJAX, it is critical that all minimum environment requirements are met and installation steps are followed exactly. Before running the installation package, make sure that the operating system, IIS version,.net framework, and browser(s) being used are all supported by this product. Although this product may work to a certain capacity with different environments from the ones listed, only the environments listed have been fully tested and can be fully supported. The typical installation will install to your IIS directory and will require no further configuration to run in any supported environment. If you are running VirtualViewer.NET 13

Chapter 1 - Getting Started AJAX on IIS 7 or higher, AppPool must be set to Classic.NET AppPool. Both the content server and.net AJAX Server write logs to their respective directories. It is critical that these directories be given proper permissions and security settings. For all supported environments, both the local IUSR and IWAM accounts will need to be given full write permissions to these directories. Depending on your general security settings on your server, you may also need to give write permissions to other local and network accounts. Installing To install VirtualViewer.NET AJAX, follow the steps below: 1. Double-click on the downloaded.zip file. In this example, double-click on VirtualViewerNetAJAX.zip. VirtualViewer.NET AJAX Setup - Welcome Dialog 2. After reading the Welcome to the VirtualViewer.NET AJAX Setup Wizard dialog, click Next to display the next dialog screen. 14

Chapter 1 - Getting Started VirtualViewer.NET AJAX Setup - Choose Setup Type Dialog Notes: Please note that this dialog will only appear if you are installing a non-integrated production installation. Please install components only as indicated in the component description 3. Choose the setup type. Click Integrated to perform an integrated installation. The integrated installation installs VirtualViewer.NET AJAX into a single directory configured and packaged for being run in integrated mode. Click Custom to perform a custom installation. The custom installation allows users to choose what VirtualViewer.NET AJAX directories are installed and to what location(s) they are installed. This installation is recommended for advanced users only. 15

Chapter 1 - Getting Started VirtualViewer.NET AJAX Setup - Custom Setup Dialog Note: Please note that this dialog will only appear if you are installing a non-integrated production installation. 4. Select the appropriate icons to customize the way the features are installed. Select the Disk Usage button, to see how much disk space is available. Any highlighted volumes shown do not have enough space for the installation. You can either remove some files from the highlighted volumes or install less features. Select the Reset button, to cancel the selections that you have made and reset the options to their original settings. Select the Next button, to proceed with the installation. 16

Chapter 1 - Getting Started VirtualViewer.NET AJAX Setup - License Agreement Dialog 5. Read the license agreement. If you agree with the license agreement, select I accept the terms in the license agreement and click Next to proceed with the installation. If you do not agree with the license agreement, you cannot proceed with the installation. 17

Chapter 1 - Getting Started VirtualViewer.NET AJAX Setup - Ready to Install Dialog 6. Click Install to begin the installation. 18

Chapter 1 - Getting Started VirtualViewer.NET AJAX Setup - Completing the VirtualViewer.NET AJAX Setup Wizard Dialog 7. Click Finish to complete the installation. 8. Click the View readme file, to view the read me file. Note: If you are running VirtualViewer.NET AJAX on IIS 7 or higher, AppPool must be set to Classic.NET AppPool. 19

Chapter 1 - Getting Started VirtualViewer.NET AJAX Setup - Thank You Dialog 9. The Thank you for installing VirtualViewer.NET AJAX dialog displays. You have successfully installed VirtualViewer.NET AJAX. Your files are installed to the default location of your IIS directory. This directory is generally found at C:\Inetpub\VirtualViewer. 10. Please see the documentation. This is generally found with the installer or on the website. Note: If the viewer does not display DOC and PDF files as expected, please restart IIS and your Windows system. When the system Path environment variable has been modified to include the Snowbound installation directory specifying the location of the DOC and PDF plug-ins, the process that uses the Path variable needs to restart to pick up the new Path value. If you ran the default installation, all of your files will have been installed to the default IIS directory. If your server is configured to run IIS, you should now be able to run VirtualViewer. You can use the following URL on your server to test the installation: If you ran the non-integrated production installation and your server is configured to run IIS, you should now be able to run VirtualViewer. You can use the following URL on your server to test the installation: http:/- /localhost/virtualviewernetajax/ajaxclient.html?documentid=snowlogo.jpg http:/- /localhost/virtualviewernetajaxclient/ajaxclient.html?documentid=snowlogo.jpg 20

Chapter 1 - Getting Started If the viewer does not load the test document on your first attempt, please wait a minute and try again. IIS can often take a few minutes to fully adapt to any modifications and/or configurations. For information on how to install IIS5, please see the following link: For information on how to install IIS6, please see the following link: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/iiiisin2.mspx?mfr=true http://www.microsoft.com/downloads/en/details.aspx?familyid=f9c1fb79-c903-4842- 9f6c-9db93643fdb7 For information on how to install IIS7 on Windows Vista, please see the following link: http://technet.microsoft.com/en-us/library/cc731911(ws.10).aspx Configuration Parameters For the client, server, and content server to work together properly, you need to set the parameters described below. These parameters set up the default content handler and should be modified to point to your customized content handler. They can be found from within each of the installed directories and allow each component to seamlessly work with the others. The following is a list of these parameters and their respective files and directories: Note: Please make a backup copy of the parameter file before you edit it. For the non-integrated production installation:://- VirtualViewer/VirtualViewerNetAJAX/config.js var servletpath = "/VirtualViewerNetAJAX/AjaxServer"; For the integrated installation: C:/Inetpub/VirtualViewer/VirtualViewerNetAJAX/config.js var servletpath = "/VirtualViewerNetAJAX/AjaxServer"; For the non-integrated production installation: C:/Inetpub/VirtualViewer/VirtualViewerNetAJAX/web.config <add key="serverurl" value="http- ://localhost/virtualviewernetcontentserver"/> <add key="codebase" value="http- ://localhost/virtualviewernetajaxserver"/> For the integrated installation: C:/Inetpub/VirtualViewer/VirtualViewerNetAJAX/web.config <add key="codebase" value="http- ://localhost/virtualviewernetajax"/> 21

Chapter 1 - Getting Started For the non-integrated production installation: C:/Inetpub/VirtualViewer/VirtualViewerNetAJAX/web.config <add key="usedllcontenthandler" value="true"/> <add key="filepath" value="c:/imgs/"/> <add key="contenthandler"value= "C:/Inetpub/VirtualViewer/VirtualViewerNetAJAX/bin/FileContentHandler.dll"/> For the integrated installation: Note: In older pre-2.0 versions of VirtualViewer AJAX, the directory was named VirtualViewerAJAXServer during installation. This directory was renamed VirtualViewerNetAJAX when Snowbound Software implemented the IntegratedServer architecture in VirtualViewer AJAX 2.0. Snowbound Software suggests that you rename any existing VirtualViewerAJAXServer directories to the newer name of VirtualViewerNetAJAX even in multi-server configurations to make future updates and support easier. However, this is not mandatory C:/Inetpub/VirtualViewer/VirtualViewerNetAJAX/web.config <add key="usedllcontenthandler" value="true"/> <add key="filepath" value="c:/imgs/"/> <add key="contenthandler"value= "C:/Inetpub/VirtualViewer/VirtualViewerNetAJAX/bin/FileContentHandler.dll"/> Configuring with an Integrated Content Server You can use the InitParams contentservertype to indicate that you want the AJAX server to serve as its own content server. This improves performance by eliminating the steps of encoding and transferring the document content from the content server to the Ajax server. Note: Please note that if you would like to use this enhancement, then please make sure that the web.config file is configured as explained below. In the web.config file, for the Ajax server, indicate that you want the AJAX server to serve as its own content server: The default value of the contentservertype parameter is integrated as shown in the following example: 22

Chapter 1 - Getting Started <InitParams> <add key="contentservertype" value="integrated"/> </InitParams> Once the AJAX server is configured to run in integrated mode, you should then also make sure to update any relevant content server related InitParams. Most importantly, this would include the content handler parameters such as the following: For the non-integrated production installation: C:/Inetpub/VirtualViewer/VirtualViewerNetAJAX/web.config <add key="usedllcontenthandler" value="true"/> <add key="filepath" value="c:/imgs/"/> <add key="contenthandler"value= "C:/Inetpub/VirtualViewer/VirtualViewerNetAJAX/bin/ FileContentHandler.dll"/> For the integrated installation: Note: In older pre-2.0 versions of VirtualViewer AJAX, the directory was named VirtualViewerAJAXServer during installation. This directory was renamed VirtualViewerNetAJAX when Snowbound Software implemented the IntegratedServer architecture in VirtualViewer AJAX 2.0. Snowbound Software suggests that you rename any existing VirtualViewerAJAXServer directories to the newer name of VirtualViewerNetAJAX even in multi-server configurations to make future updates and support easier. However, this is not mandatory C:/Inetpub/VirtualViewer/VirtualViewerNetAJAX/web.config <add key="usedllcontenthandler" value="true"/> <add key="filepath" value="c:/imgs/"/> <add key="contenthandler"value= "C:/Inetpub/VirtualViewer/VirtualViewerNetAJAX/bin/ FileContentHandler.dll"/> When moving from evaluation to production, some companies prefer to have the content server and AJAX server on separate machines. We provide a second installer that allows for the more complex multi-server installation and http configuration option. Please contact Snowbound Software Support at www.support.snowbound.com if you would like the multi-server installer. Configuring Manually VirtualViewer.NET comes with an installer that will automatically detect different versions of Internet Information Services (IIS).In some cases, you may want to move the installation to a new location. This section explains how to move an existing installation to a new location CRM with IIS7. Follow the steps below to configure VirtualViewer.NET AJAX Server manually and move an existing installation to a new location CRM with IIS7: 23

Chapter 1 - Getting Started 1. Copy all the files in the VirtualViewerNetAJAX directory to the new location, in this case CRM\DocumentViewer. For example: Copy all files from C:\inetpub\wwwroot\VirtualViewerNetAJAX to the C:\Users\Snowbound\CRM\DocumentViewer directory. 2. Do the following to create a virtual directory in IIS for VirtualViewer.NET Ajax Viewer: Start IIS. Right click the default website. Select Create Virtual Directory. Enter the Alias name as CRM and select the physical path as C:\Users\Snowbound\CRM\. 3. Do the following to create a new web application in IIS at the new location: In IIS under the default website, click the created directory CRM. Find the VirtualViewer directory. Right click DocumentViewer. Click Convert to Application. Now DocumentViewer becomes the web application for the new AJAX server location. 4. In IIS, do the following to ensure that the permissions are set correctly for the new location: and check the configuration of AJAX server. Click DocumentViewer. Check authentication. Enable Anonymous authentication and windows authentication. Open file explorer. Right click C:\Users\Snowbound\CRM\DocumentViewer. Select security. Give write permission to the IUSR and IIS_IUSRS machines. 5. Do the following to configure AJAX to use the new web application: For example: Open the AJAX server configuration file, web.config at C:\Users\Snowbound\CRM\DocumentViewer\web.config file. Change the codebase parameter to the new location. 24

Chapter 1 - Getting Started <add key="codebase" value="http- ://localhost:1000/crm/documentviewer" /> 6. Validate that a URL with the new location works properly to confirm that the new AJAX server is configured properly. http://localhost:1000/crm/documentviewer/ajaxserver?action=debug You should see the VirtualViewerAjax.Net output in the browser. For example: Running VirtualViewer in a Browser Once all components have been installed and configured correctly, you can run the Virtual Viewer AJAX Client from any supported browser. No client components are needed on the client machine. The example ajaxclient.html file shows how to run the viewer in a web page. Make sure the web page is set to script only in IIS. 25

Chapter 1 - Getting Started To launch the AJAX Client with an image, you must put the document that you want to view in the C:\imgs directory or the directory that the filepath parameter specifies in the web.config file. <param name="filepath" value="c:/imgs/"/> You must then append the parameter documentid to the end of the URL in order to specify the ID of the document you want to display. http://servername/virtualviewernetajax/ajaxclient.html?documentid=filename.ext The documentid should be a filename if the default Content Handler is used, otherwise it can be whatever the custom content handler expects for a documentid. Working with the Content Handler The VirtualViewer content handler is a DLL that the server will call on to perform various actions concerning the retrieval and storage of content. By default, the VirtualViewer server uses the sample content handler that Snowbound Software provides, FileContentHandler.dll, as its content handler, which merely reads and writes to a file system location. You can find this sample content handler at VirtualViewerNetAJAX/bin for the integrated installation. It is located in the VirtualViewerNetContentServer/bin directory for the non-integrated production installation. It displays files from the C:/imgs directory. You are encouraged to use this as a starting point for writing your own custom DLL content handler to integrate VirtualViewer into back-end systems. You should create your own content handler to serve up documents from locations that work for your company as well as to add error handling and more robustness for handling requests from multiple users. VirtualViewer.NET AJAX Content Handlers VirtualViewer.NET AJAX has three available sample content handlers for general use. Both the VirtualViewer and the URL content handlers are shipped with the standard Virtual Viewer.NET AJAX package. The SharePoint content handler can be shipped by request. Although all of the content handlers have gone through testing, only the default VirtualViewer content handler, FileContentHandler.dll, will be fully supported. FileContentHandler.dll The VirtualViewer content handler is the default content handler shipped with VirtualViewer.NET AJAX. This content handler supports annotations and will load images from a designated directory on your server. All configurations for this content handler are done before shipping. URLContentHandler.dll The URL content handler allows the viewing of web images by simply inputting the URL of that image into the documentid. To enable the URL content handler, simply update your 26

Chapter 1 - Getting Started contenthandler parameter in your content server's web.config file to match the following: For the non-integrated production installation: <add key="contenthandler" value="c:/- Inetpub/VirtualViewer/VirtualViewerNetAJAX/bin/URLContentHandler.dll"/> For the integrated installation: <add key="contenthandler" value="c:/- Inetpub/VirtualViewer/VirtualViewerNetAJAX/bin/URLContentHandler.dll"/> Please note the following: The URL content handler does not support annotation saving. Documents in your images directory can still be viewed without annotations with this content handler. Running with SPContentHandler.dll If you are using VirtualViewer.NET AJAX version 2.0 and your AJAX Server contentservertype is set to integrated, you need to update your web.config file under AJAX Server. Otherwise, make the following changes to your web.config file under content server: In the web.config file, update the contenthandler parameter to make sure that it points to the correct path of the SPContentHandler dll as shown in the following example: <add key="contenthandler" value="c:/- Inetpub/VirtualViewer/VirtualViewerNetAJAX/bin/SPContentHandler.dll" /> <add key="contenthandler" value="c:/- Inetpub/VirtualViewer/VirtualViewerNetContentServer/bin/SPContentHandler.dll" /> To view SharePoint server documents through VirtualViewer.NET AJAX by default,use the following example: Note: The installer will set the SharePoint Connector to use port 80, the default Sharepoint port. If your SharePoint server uses another port, you will need to change the configuration to match what your server is using. http://servername:portnumber/virtualviewernetajax/ ajaxclient.html?documentid=http://sharepointserver/document library/documentname 27

Chapter 1 - Getting Started If you view documents by giving the document name without the document library name and SharePoint website, make sure that sharepointurl and documentlibrary parameter settings point to the correct URL and library in the web.config file. If you are using the default installation, the SharePoint 2010 server occupies port 80. The VirtualViewer.NET default installation also uses port 80. To solve the port conflict problem, do the following to change the VirtualViewer.NET AJAX website setting to a different port number: 1. Open IIS manager. 2. Select website. 3. Click binding and then set the http port number. For example, set it to 1000. On your web.config file, set the AJAX server URL codebase as: http://localhost:1000/virtualviewernetajax or http://servername:1000/virtualviewernetajax In IIS manager, check the application pool used for VirtualViewer.NET AJAX, make sure that the apppool basic setting is.net Framework 2.0..NET Framework 4.0 is not supported. In the IIS manager, check the application pool of the SharePoint server and the.net AJAX server. Make sure that they have the same pipeline mode and Identity account. Snowbound Software suggests using NetworkService. In the IIS manager, select integrated for the AJAX server and content server application pool. This can be done by adding the following line in the AJAX server and content server web.config: <system.webserver> <directorybrowse enabled="true" /> <handlers accesspolicy="read, Execute, Script"> <add name="snowboundajaxserverhandler" path="ajaxserver" verb="*" type="snowbound.virtualviewernetajaxserver.ajaxserverhandler" resourcetype="unspecified" requireaccess="execute" pre- Condition="integratedMode" /> </handlers> </system.webserver> If you cannot find the above SnowboundAjaxServerHandler handler mapping in the IIS manager, you can do the following to add it manually: 1. Open IIS manager. 2. Select VirtualViewerNetAJAX. 3. Double click on handler mappings. 4. From the right side column, click Add Managered Handler. 28

Chapter 1 - Getting Started Type the following for the managed handler: Request path: AjaxServer Type: Snowbond.VirtualViewerNetAJAXServer.AjaxServerHandler Name: SnowboundAjaxServerHandler Click Ok to set. Make sure the access for this handler mapping is set to Execute. In the IIS manager, check the AJAX server and content server authentication. Disable Anonymous authentication. Enable Windows Authentication and ASP.NET impersonation. Under ASP.NET impersonation, specify the account username/password that is authorized to access the SharePoint server. Deploying the Web Part from Visual Studio 2010 If you are using Visual Studio 2010, follow the steps below to deploy the web part from Visual Studio 2010: 1. Navigate to the VirtualViewerAjaxNetWebPart directory in the files supplied with your product. 2. Build the VirtualViewerAjaxNetWebPart project on a Sharepoint2010 machine by using Visual Studio 2010. In the project setting, make sure the target platform is Microsoft.NET Framework 3.5. 3. Select the customer SharePoint site to deploy. 4. From the project properites under the project name at the bottom, find Site URL. Click the project name. Change the value from http://sharepoint2010 to the name of the SharePoint customer site. 29

Chapter 1 - Getting Started 5. Select Build > Deploy VirtualViewerAjaxNetWebPart. The webpart will be automatically installed on the sharepoint2010 site. 6. To make multiple page viewer icons work, copy the icon files snowfirst.gif, snowlast.gif, snownext.gif asnowprev.gif from the web part sample path to the following SharePoint Server Image directory: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\IMAGES. Deploying the WebPart from SharePoint 2010 Power Shell After the WebPart.wsp is built, you can manually install the web part and start the SharePoint 2010 power shell command line: 1. Add Snowbound WebPart to the SharePoint server. The following is the installation sample command: > add-spsolution -literalpath "C:\VirtualViewerAjaxNetWebPart\VirtualViewerAjaxNetWebPart\bin\x64\Debug \VirtualViewerAjaxNetWebPart.wsp" > install-spsolution VirtualViewerAjaxNetWebPart.wsp -gacdeployment - webapplication http://sharepoint2010:44066 -force 2. Install Snowbound Software s RasterMaster.NET library in the global cache. Run the following command: >gacutil /i sbdnetann.dll (The.NET library path) Adding the Snowbound WebPart to a SharePoint Page Follow the steps below to add the Snowbound webpart to a SharePoint page: 1. Start Internet Explorer. 2. Go to the SharePoint 2010 web page. 3. Select the edit page. 4. Choose to add a WebPart. Find Snowbound from Categories, select VirtualViewerCustomView and add the webpart to your page. Customizing for Your Environment This section is a summary of what you must do next to get to a non-integrated production quality VirtualViewer as well as optional items running. 30

Chapter 1 - Getting Started Customizing Where VirtualViewer Gets Its Documents When using Snowbound Software s default sample content handler, configurations to the web.config file need to be made to change the default settings. The web.config file is supplied when the application is installed and it is located in the VirtualViewerNetContentServer directory for the non-integrated production installation. It is located in the VirtualViewerNetAJAX directory for the integrated installation. Getting Files from a Local Directory A sample web.config file is supplied when the application is installed and it is located in the VirtualViewerNetContentServer directory for the non-integrated production installation. It is located in the VirtualViewerNetAJAX directory for the integrated installation. If you want to change the location where you store your test images, the filepath parameter must be changed to run the default installation. If you want to store your images in the C:/imgs directory, then this parameter does not need to be edited. The filepath parameter tells the default content handler where to look for image files that are requested. Set the value to the path where you will put your test images as shown in the following location: <add key="filepath" value="c:/imgs/"/> Getting Files from a Non-local Directory If you want to change the location where you get your images from a location other than a local directory, follow the steps below: 1. Set the value of the filepath parameter to the network path in the VirtualViewer.NET Content Server web.config file. For example: <add key="filepath" value="\\snowbound05\shared\imgs\"/> 2. Update the configuration in both the content server and AJAX server web.config file. Enable the following line in the web.config file under <system.web>. <identity impersonate="true"/> or <identity impersonate="true" username="domain\networkuser" password="networkpassword"/> 3. Update the VirtualViewer.NET content Server and AJAX Server running account. Start IIS, under the VirtualViewerNetContentServer and VirtualViewerNetContentServer properties. Select the directory security setting. 31

Chapter 1 - Getting Started Update the access account from IUSR_machinename to the domain user name and password. Setting VirtualViewer.NET AJAX to Use Pipeline Integrated Mode To have VirtualViewer.NET run in integrated mode, follow the steps below: 1. Open the VirtualViewer AJAX web.config file. 2. Disable classic handler mapping. Find the following place and disable it (comment it out): <handlers accesspolicy="read, Execute, Script"> <add name="vvtest" path="*" verb="*" modules="isapimodule" script- Processor="C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_ isapi.dll" resourcetype="unspecified" requireaccess="none" precondition="classicmode,runtimeversionv2.0,bitness64" /> </handlers> 3. Enable integrated mode. Find the following and enable it (uncomment it): <!--for IIS 7 integrated mode, enable the following and disable httphandlers tag--> <!--directorybrowse enabled="true" /--> <!--handlers accesspolicy="read, Execute, Script"--> <!--add name="snowboundajaxserverhandler" path="ajaxserver" verb="*" type="snowbound.virtualviewernetajaxserver.ajaxserverhandler" resource- Type="Unspecified" requireaccess="execute" pre- Condition="integratedMode" /--> <!--/handlers--> 4. Save the web.config file. 5. From IIS manager, find the VirtualViewer web application, update the application pool setting and select the one that uses integrated mode. 6. Restart IIS. Verifying Running VirtualViewer in a Browser Once all components have been installed, VirtualViewer AJAX Client will start up from any supported browser. No client components are needed on the client machine. The following example shows VirtualViewer AJAX Client loaded in a browser: 32

Chapter 1 - Getting Started If you are able to see the three documents that came with your VirtualViewer.NET AJAX installation, then you have successfully installed it. Verifying that Your Documents Work in VirtualViewer AJAX To view your own images in VirtualViewer AJAX, you must put the document that you want to view in the C:\imgs directory or the directory that the filepath parameter specifies in the web.config file. For information on configuring VirtualViewer.NET AJAX, please see Chapter 3, Customizing the Configuration". <param name="filepath" value="c:/imgs/"/> You must then append the parameter documentid to the end of the URL in order to specify the ID of the document you want to display. For example, if you want to display the file named commerce.tif, add that name to after documentid as shown in the following example: http://servername/virtualviewernetajax/ajaxclient.html?documentid=filename.ext http://servername/virtualviewernetajax/ajaxclient.html?documentid=commerce.tif 33

Chapter 1 - Getting Started The documentid should be a filename if the default content handler is used, otherwise it can be whatever the custom content handler expects for a documentid. For more information, please see Connecting Your Document Store. Please see the next topic Chapter 2 - Using VirtualViewer.NET AJAX Client. 34

Chapter 2 - Using VirtualViewer.NET AJAX Client Chapter 2 - Using VirtualViewer.NET AJAX Client This chapter describes the available functionality on the VirtualViewer.NET AJAX Client. Note: For information on installing VirtualViewer.NET AJAX Client, please see Chapter 1, Getting Started with VirtualViewer.NET AJAX. The Annotation Toolbar Creating Annotations To create annotations, click on the annotation to select it and then click and drag your mouse on the document. Release the mouse when you are done drawing the annotation. The available annotation buttons are: line, arrow, freehand, rectangle, filled rectangle, ellipse, filled ellipse, polygon, filled polygon, highlight, sticky note, and text. 35

Chapter 2 - Using VirtualViewer.NET AJAX Client Note: Annotations are not supported on the iphone and ipad platforms. You can also click on the annotation and then right-click on your mouse to display a contextual menu. The contextual menu contains the following menu items: Delete - Deletes the annotation. Edit text - Displays a dialog box to edit the text with an OK or Cancel button. The menu item is only available for Text or Sticky Note annotations. Properties - Opens the Annotations Properties. Toggle Annotation Properties To toggle annotation properties, select the Toggle Annotation Properties button. Moving an Annotation To move an annotation, click on it until it is highlighted and selection squares display on each of the annotation s corners. Drag the highlighted annotation until it is in the proper location. Resizing an Annotation To resize an annotation, click on it until it is highlighted and selection squares display on each of the annotation s corners. Drag one of the selection squares to resize the annotation to the desired size. Cycling Through Annotations To cycle through selecting all of the annotations on a page, click on the annotation properties icon to open annotation properties. Click on the annotation to select it. In the controls section of the annotation properties window, select the < button to select the previous annotation or select the > button to select the next annotation. Saving Annotations To save annotations, select the Save Annotations button. 36

Chapter 2 - Using VirtualViewer.NET AJAX Client Deleting Annotations To delete an annotation, click on the annotation properties icon to open annotation properties. Click on the annotation to select it. In the controls section of the annotation properties window, select the delete button. You can also right-click on your mouse to display a contextual menu. From the contextual menu, select Delete. One Layer Per Annotation To create a new annotation layer for each annotation, set the onelayerperannotation parameter to true in the config.js file as in the example below: var onelayerperannotation = true; Undo a Deleted Annotation Using Rubber Stamp Annotation Functionality A Rubber Stamp is a text annotation with pre-defined text that may also contain pre-defined font characteristics. Your system administrator has the ability to define a list of pre-configured Rubber Stamps through the enablerubberstamp parameter in the config.js file. 37

Chapter 2 - Using VirtualViewer.NET AJAX Client If the enablerubberstamp parameter is set to true and one or more Rubber Stamps are defined, then clicking on the Text Edit annotation toolbar button as shown below will produce a menu allowing you to select a Rubber Stamp from the available options or to Add New Text to add a traditional text annotation: If the enablerubberstamp parameter is set to false, then clicking the Text Edit annotation button allows you to select only Add New Text to add a text annotation. The Rubber Stamp functionality is enabled when the enablerubberstamp parameter is set to true and the config.js file contains one or more defined Rubber Stamps. The system will allow for a limited number of Rubber Stamps with the upper limit of available Rubber Stamps set at ten. To disable this functionality, set the enablerubberstamp parameter to false in the config.js file as in the example below: var enablerubberstamp = false; The system administrator has the ability to set the following pre-defined font characteristics for Rubber Stamps: 38

Chapter 2 - Using VirtualViewer.NET AJAX Client Font Face (Helvetica, Times New Roman, Arial, Courier, Courier New) Font Size (Any valid integer in range of 2-176) Font Color (Any valid HTML color code, specified in hexadecimal) Font Attributes (Normal/Bold/Italic) Please see the following example for how we configure the two Rubber Stamps Approved and Denied: var rubberstamp = [ { textstring: "Approved", fontface: "Times New Roman", fontsize: 30, fontbold: true, fontitalic: true, fontunderline: true, fontcolor: "00FF00" } { textstring: "Denied", fontcolor: "FF0000" } ]; Any font characteristics not defined by the system administrator will use the following default system characteristics: Font Face: Arial Font Size: 12 Font Color: #FF0000 Font Attributes: Normal When you select a pre-defined rubber stamp, the placement of that annotation on the document works exactly as adding any new annotation by selecting a placement on the document. Editing the rubber stamp also works the same way as editing any other annotation. Right-click on the rubber stamp annotation to display the edit properties menu. Saving a rubber stamp functions just as saving any annotation. The Page and Document Toolbar Exporting a Document. The Export Document func- To export a document, select the Export Document button tion allows regular and virtual documents to be exported. Exporting a Document with Annotations The Export dialog box includes the Include Annotations checkbox to select the option to export a document with annotations. Annotations will only be included when the Include Annotations checkbox is selected. The default is set to not include annotations when exporting. When 39

Chapter 2 - Using VirtualViewer.NET AJAX Client exporting with annotations, only the visible layers are included. When the Include Annotations checkbox is selected, the option to export the file as Original will be disabled. The Include Annotations checkbox is only supported when either the PDF or TIFF format is checked. To export the file as Original, un-check Include Annotations to enable and make available the option for Original. Select the Export button to export. To display the Include Annotations checkbox in the Export dialog box, set the export- BurnAnnotations parameter to true in the config.js file as in the example below: var exportburnannotations = true; Sending a Document To send a document, select the Send Document button. Printing To print, select the Print button. 40

Chapter 2 - Using VirtualViewer.NET AJAX Client Printing with or without Annotations The print dialog box includes the Include Annotations checkbox to select the option to print with or without annotations. Annotations will only be included when the Included Annotations checkbox is selected. The default is set to not include annotations when printing. When printing with annotations, only the visible layers are included. To display the Include Annotations checkbox in the Print dialog box, set the print- BurnAnnotations parameter to true in the config.js file as in the example below: Zooming var printburnannotations = true; To zoom, select one of the Zooming Controls buttons. The available Zooming Controls buttons are: Zoom In and Zoom Out. 41

Chapter 2 - Using VirtualViewer.NET AJAX Client Rubber Band Zoom To use rubber band zoom, select the Rubber Band Zoom button to select the area that you want to zoom in on. and then drag your mouse Fit-to-Page To fit the document to the page, select one of the Fit-to Controls buttons. The available Fit-to Controls buttons are: Fit-to-page, Fit-to-width, and Fit-to-height. Page Controls To move from page to page, select one of Page Controls buttons. The available Page Controls buttons are: First Page, Previous Page, Next Page, and Last Page. Page Manipulations To manipulate the pages, select one of Page Manipulation buttons. The available Page Manipulation buttons are: Rotate Clockwise, Rotate Counter-clockwise, Flip Horizontal and Flip Vertical. Flip buttons are not on by default. To turn the Flip Horizontal and Flip Vertical buttons back on, please see Turning On Buttons that are Off by Default. Inverting To invert the document, select the Invert button. Turning On Buttons that are Off by Default Some buttons may be turned off by default. For example, to turn the Flip Horizontal and Flip Vertical buttons back on, locate the names of the Flip Horizontal (flip_horiz.png) and Flip Vertical (flip_vert.png) buttons. They will most likely be in the following location: <wwwroot>\virtualviewernetajaxclient\resources\ Next, add the following code into your ajaxclient.html file: Note: Please make a backup copy of the ajaxclient.html file before you edit it. 42

Chapter 2 - Using VirtualViewer.NET AJAX Client <img id="flip_horiz" class="widget" src="resources/flip_horiz.png" onclick="javascript:myflexsnap.flipx()" onmousedown="javascript:myflexsnap.mousedown('flip_horiz')" onmouseup="javascript:myflexsnap.mouseup('flip_horiz')" title="flip Horizontally" alt="flip Horizontally" /> <img id="flip_vert" class="widget" src="resources/flip_vert.png" onclick="javascript:myflexsnap.flipy()" onmousedown="javascript:myflexsnap.mousedown('flip_vert')" onmouseup="javascript:myflexsnap.mouseup('flip_vert')" title="flip Vertically" alt="flip Vertically" /> Using the Layer Manager To use the layer manager, select the Layer Manager button. Note: If no layers exist, a default layer is present. The Active Layer Window is displayed. From the drop down list, select the name of the layer that you want visible. 43

Chapter 2 - Using VirtualViewer.NET AJAX Client The active layers display with check marks. Creating a New Layer To create a new layer, select the plus button. In the dialog box, enter the name of the new layer. Note: The layer name is limited to 50 standard characters. The layer that you added displays as an active layer. 44

Chapter 2 - Using VirtualViewer.NET AJAX Client Deleting a Layer To delete a layer, select the minus button. VirtualViewer displays a message asking Are you sure that you want to delete the layer? Select OK to delete the layer. Renaming a Layer To rename a layer, select the N button. In the dialog box, enter the new name for the layer. 45

Chapter 2 - Using VirtualViewer.NET AJAX Client The Active Layer window displays with the new layer name. Redacting a Layer To create a redaction layer, select the R button. Using the Thumbnail and Docs Panels The panel on the right side of the screen shows the thumbnails for the current image and for all the documents made available by multiple documents mode. Select the Thumbs tab to display the thumbnails for the current image being viewed. Select the Docs tab to display thumbnails for the first page of every document made available by multiple documents mode. 46

Chapter 2 - Using VirtualViewer.NET AJAX Client To select a specific page or document simply click on the corresponding thumbnail and that page or document will load into the main viewing area. Manipulating Page Order Using Thumbnails VirtualViewer AJAX allows you to add, remove and reorder pages by cutting and pasting the page thumbnails. This section describes how to enable and use the Page Manipulations feature. Page Manipulations Page manipulations are enabled by default. To disable them, the pagemanipulations parameter must be set to false. This disables the Page Manipulations menu in VirtualViewer and enables the Save Annotations menu choice in the File menu. Please see the following example of the pagemanipulations parameter: <param name="pagemanipulations" value="true"/> Selecting a Page To select a page for page manipulation, left click on a page thumbnail in the Thumbs tab. A blue selection border around the thumbnail indicates that it has been selected for page manipulation. Hold the Ctrl key while selecting multiple page thumbnails to allow the selection of all thumbnails selected for page manipulation. Hold the Shift key and select a single thumbnail while one or more thumbnails are already selected to highlight all pages between the highest page selected before the new selection. 47

Chapter 2 - Using VirtualViewer.NET AJAX Client Loading the Page Manipulation Context Menu Right-click on a page thumbnail to load the page manipulation context menu. 48

Chapter 2 - Using VirtualViewer.NET AJAX Client Cutting, Copying, Deleting and Inserting Pages You can cut, copy, delete and insert a page from one document into another document open in the same instance of VirtualViewer AJAX. Notes: Drag and drop functionality is not supported. You cannot insert pages between two separate instances of VirtualViewer AJAX. This is currently not supported. Saving Page Manipulations Select Save to save page manipulations, including rotations and inversions, to the file currently being viewed. Copy to New Document To copy to a new document, follow the steps below: 1. Click on the page thumbnail or page thumbnails that you want to copy to the new document. 49

Chapter 2 - Using VirtualViewer.NET AJAX Client 2. Right-click on the page thumbnail(s) to load the page manipulation context menu. Select Copy to New Document from the Page Manipulations menu. 3. In the Create New Document window, enter the new document name in the Document ID field and select the OK button. 50

Chapter 2 - Using VirtualViewer.NET AJAX Client The new document is displayed in a tab with the document name that you entered. It contains the pages that you selected. 51

Chapter 2 - Using VirtualViewer.NET AJAX Client The Copy to New Document functionality is enabled by default. To disable it, set the page- ManipulationsNewDocumentMenu parameter to false in the config.js file as shown in the example below: var pagemanipulationsnewdocumentmenu = false; Open Multiple Documents You can open multiple documents at the same time using one of the three available multiple document modes. To open multiple documents, select the Docs tab located at the bottom of the thumbnail panel. From the Docs pane, simply left-click any document you would like to open in the main viewer. When a new document has been clicked in Docs pane, it will display in the main viewer and have a new document tab created for it. Select document tabs to display any open documents. You can set the multipledocmode parameter to any of the following variables to use the multiple documents mode feature: availabledocuments - Displays the most recently viewed documents. The get- AvailableDocumentIds() is called in the content handler to populate the list of documents. 52

Chapter 2 - Using VirtualViewer.NET AJAX Client vieweddocuments - Documents will be added to the set of documents as the user views them during the current VirtualViewer session. specifieddocuments - Uses an array of documentids passed in as an array to myflex- Snap.initSpecifiedDocuments(). This is a replacement for initviaurl() in ajax- Client.html. This is the default. For more information on setting up the multipledocmode parameter, please see Appendix A, Config.js Parameters. If your documents load slowly in multiple documents mode, please see Documents Slowly to Load in Multiple Documents Mode in Appendix E, Troubleshooting. Please see the next topic Chapter 3 - Customizing the VirtualViewer.NET AJAX Configuration. 53

Chapter 3 - Customizing the Configuration Chapter 3 - Customizing the Configuration This chapter shows how to configure VirtualViewer AJAX on your system. Configuring web.config The web.config file contains a number of tags that define the application and its behavior. The section called <initparams> contains all the tags needed to configure the server. Note: Please make a backup copy of the ajaxclient.html file before you edit it. Example 3.1: Example web.config File <configuration> <configsections>... </configsections> <InitParams> <add key="filepath" value="c:/imgs/" /> <add key="loglevel" value="fine" /> <add key="usedllcontenthandler" value="true" /> <add key="contenthandler" value="c:/- Inetpub/wwwroot/somefolder/myHandler.dll" /> </InitParams>... </configuration> InitParams There are a number of predefined parameters which may be specified within the web.config file, and each conforms to the following format. <add key="keyname" value="value" /> The full list of parameters and their usage is in Appendix C. Display Your Documents If you want to change the location where you store your test images, the filepath parameter must be changed. If you want to store your images in the C:/imgs directory, then this parameter does not need to be edited. The filepath parameter tells the default content handler where to look for image files that are requested. Set the value to the path where you will put your test images as shown in the following location. 54

Chapter 3 - Customizing the Configuration To view your own images in VirtualViewer AJAX, you must put the document that you want to view in the C:\imgs directory or the directory that the filepath parameter specifies in the web.config file. <param name="filepath" value="c:/imgs/"/> You must then append the parameter documentid to the end of the URL in order to specify the ID of the document you want to display. For example, if you want to display the file named commerce.tif, add that name to after documentid as shown in the following example: http://servername/virtualviewernetajax/ajaxclient.html?documentid=filename.ext http://servername/virtualviewernetajax/ajaxclient.html?documentid=commerce.tif If you are not able to get your images to load, please submit a support ticket at www.support.snowbound.com or see Appendix F, Troubleshooting. The documentid should be a filename if the default content handler is used, otherwise it can be whatever the custom content handler expects for a documentid. For more information, please see Connecting to Your Document Store. Getting Files from a Non-local Directory If you want to change the location where you get your images from a location other than a local directory, follow the steps below: 1. Set the value of the filepath parameter to the network path in the VirtualViewer.NET Content Server web.config file. For example: <add key="filepath" value="\\snowbound05\shared\imgs\"/> 2. Update the configuration in both the content server and AJAX server web.config file. 3. Enable the following line in the web.config file under <system.web>. <identity impersonate="true"/> or <identity impersonate="true" username="domain\networkuser" password="networkpassword"/> 3. Update the VirtualViewer.NET content Server and AJAX Server running account. Start IIS, under the VirtualViewerNetContentServer and VirtualViewerNetContentServer properties. Select the directory security setting. 55

Chapter 3 - Customizing the Configuration Update the access account from IUSR_machinename to the domain user name and password. Configuring with an Integrated Content Server You can use the InitParams contentservertype to indicate that you want the AJAX server to serve as its own content server. This improves performance by eliminating the steps of encoding and transferring the document content from the content server to the Ajax server. Note: Please note that if you would like to use this enhancement, then please make sure that the web.config file is configured as explained below. In the web.config file, for the Ajax server, indicate that you want the AJAX server to serve as its own content server: The default value of the contentservertype parameter is integrated as shown in the following example: <InitParams> <add key="contentservertype" value="integrated"/> </InitParams> Once the AJAX server is configured to run in integrated mode, you should then also make sure to update any relevant content server related InitParams. Most importantly, this would include the content handler parameters such as the following: For the non-integrated production installation: C:/Inetpub/wwwroot/VirtualViewerNetContentServer/web.config <add key="usedllcontenthandler" value="true"/> <add key="filepath" value="c:/imgs/"/> <add key="contenthandler"value= "C:/Inetpub/wwwroot/VirtualViewerNetContentServer/bin/FileContentHandler.dll"/> For the integrated installation: Note: In older pre-2.0 versions of VirtualViewer AJAX, the directory was named VirtualViewerAJAXServer during installation. This directory was renamed VirtualViewerNetAJAX when Snowbound Software implemented the IntegratedServer architecture in VirtualViewer AJAX 2.0. Snowbound Software suggests that you rename any existing VirtualViewerAJAXServer directories to the newer name of VirtualViewerNetAJAX even in multi-server configurations to make future updates and support easier. However, this is not mandatory 56

Chapter 3 - Customizing the Configuration C:/Inetpub/VirtualViewer/VirtualViewerNetAJAX/web.config <add key="usedllcontenthandler" value="true"/> <add key="filepath" value="c:/imgs/"/> <add key="contenthandler"value= "C:/Inetpub/VirtualViewer/VirtualViewerNetAJAX/bin/FileContentHandler.dll"/> When moving from evaluation to production, some companies prefer to have the content server and AJAX server on separate machines. We provide a second installer that allows for the more complex multi-server installation and http configuration option. Please contact Snowbound Software Support at www.support.snowbound.com if you would like the multi-server installer. Customizing What is Displayed Our VirtualViewers can be customized in many ways. One of the most popular customizations is making it read-only. We provide the AJAX client with almost all options turned on. It is easy to turn off options such as savedocument. Edit the AJAXclient.html file and comment out or remove the save- Document item as shown in the example below: <!-- <div id="savedocument" onclick="javascript:myflexsnap.savedocument()" title="save Document" class="mousedown" alt="save Document"> </div> --> You can do this with other buttons and menus as well. The descriptions of the options are in Chapter 3, Using VirtualViewer.NET AJAX Client. Another trick is to have a different AJAXclient.html for each type of user, or to have a script generate the HTML on the fly. Configuring to Display Office 2007 Files for Word, Excel, and PowerPoint If you have multiple license files for Office 2007 for Word, Excel, and PowerPoint, you need to use the officelicensepath parameter with a comma separated list to configure VirtualViewer to display Office 2007 Word, Excel, and PowerPoint files as shown as in the following example: <add key="officelicensepath" value="c:\- \inetpub\\virtualviewer\\virtualviewernetajax\\aspose.words.lic, c:\\inetpub\\virtualviewer\\virtualviewernetajax\\aspose.cells.lic, c:\\inetpub\\virtualviewer\\virtualviewernetajax\\aspose.slides.lic"/> Embedding in an asp.net Web Application Use the code below to embed the VirtualViewer AJAX viewer in an asp.net web application: 57

Chapter 3 - Customizing the Configuration System.Web.UI.HtmlControls. HtmlGenericControl vvcontrol = new System.Web.UI.HtmlControls.HtmlGenericControl("iframe"); vvcontrol.id = "vvcontrol";// +docid; vvcontrol.innertext = "vvcontrol"; // docid; vvcontrol.attributes[ "width"] = "1000px"; vvcontrol.attributes[ "height"] = "750px"; vvcontrol.attributes[ "src"] = "http:/- /localhost/virtualviewernetajax/ajaxclient.html?documentid=bird.jpg"; Controls.AddAt(0, vvcontrol); Improving Performance or Quality One of the differences between raster and vector formats is that raster formats have specific dots per inch (DPI) and bit depths. Vector formats are not inherently black and white or color. While they typically have sizing in inches, there is nothing that says what DPI or bit depth to use when rendered as a raster image. When the content server pulls out a page from a vector format document, it must render that page to a certain DPI and bit depth, as well as save that image as some format to be passed to the client for display. The particular settings are determined on a per format basis by three server parameters. Setting the Bit Depth - xxxbitdepth This parameter determines what bit depth to use when converting the vector page. Valid settings for this format are 1 (for black and white or smaller) or 24 (for color or bigger). If any pages of the vector document might be in color, then the setting of 24 should be used, since there is no way to tell if a page might or might not contain color vector objects. The available bit depth parameters are shown in the table below: Table 3.1: Bit Depth Parameter Values and Description 58

Chapter 3 - Customizing the Configuration Parameter Name Parameter Name bitdepth Description Description The default bits per pixel for decompression of formats not specified with individual parameters. docxbitdepth The bit depth to use for Word 2007 documents. Valid values are 1 or 24. iocabitdepth modcabitdepth pclbitdepth pdfbitdepth pptbitdepth wordbitdepth xlsbitdepth The bit depth to use when decompressing IOCA pages. Valid values are 1 or 24. The bit depth to use when decompressing MO:DCA pages. Valid values are 1 or 24. The bit depth to use when decompressing PCL pages. Valid values are 1 or 24. The bit depth to use when decompressing PDF pages. Valid values are 1 or 24. The bit depth to use when decompressing PPT pages. Valid values are 1 or 24. The bit depth to use when decompressing Word pages. Valid values are 1 or 24. The bit depth to use when decompressing XLS pages. Valid values are 1 or 24. Setting the DPI - xxxdpi This parameter determines how many dots per inch (DPI) should be used when converting a vector page. Typical settings for this parameter are 150, 200, or 300. The higher the DPI setting is, the higher the quality of the image, but also the bigger the size which means a more processing on the server and larger page sizes across the network. The optimal setting for this varies by format, but 200 is usually good for black and white documents or text, and 300 for color images and more detailed documents. Even higher numbers can be used (400, 600) but it can seriously affect speed of processing and available resources. The available DPI parameters are shown in the table below: Table 3.2: DPI Parameter Value and Description Parameter Name docxdpi iocadpi modcadpi pcldpi pdfdpi pptdpi Description The Dots Per Inch to use for Word 2007 documents. The Dots Per Inch to use when decompressing IOCA pages. The Dots Per Inch to use when decompressing MO:DCA pages. The Dots Per Inch to use when decompressing PCL pages. The Dots Per Inch to use when decompressing PDF pages. The Dots Per Inch to use when decompressing PPT pages. 59

Chapter 3 - Customizing the Configuration Parameter Name worddpi xlsdpi Description The Dots Per Inch to use when decompressing Word pages. The Dots Per Inch to use when decompressing XLS pages. Setting the Format - xxxformat This parameter determines which format the vector page will be rendered to for sending to the client. Valid values for this parameter are TIFF_G4_FAX (black and white, best for text documents, small size), JPEG (color, good for images, lesser quality for text, small size), TIFF_ LZW (color or greyscale, good for documents with text and color elements), or PNG (color, better for text than JPEG, not as small). By adjusting these parameters in various combinations, you can find the best settings for your environment, documents, and user load. The available format parameters are shown in the table below: Table 3.3: Format Parameter Value and Description Parameter Name docxformat iocaformat modcaformat pclformat pdfformat pptformat wordformat xlsformat xlsdpi Description The format to convert Word 2007 documents to. Valid values should are TIFF_G4, JPEG, TIFF_LZW, PNG. The format to convert IOCA pages to. Valid values are TIFF_G4_FAX, JPEG, TIFF_LZW, PNG. The format to convert MO:DCA pages to. Valid values are TIFF_G4_ FAX, JPEG, TIFF_LZW, PNG. The format to convert PCL pages to. Valid values are TIFF_G4_FAX, JPEG, TIFF_LZW, PNG. The format to convert PDF pages to. Valid values are TIFF_G4_FAX, JPEG, TIFF_LZW, PNG. The format to convert PPT pages to. Valid values are TIFF_G4_FAX, JPEG, TIFF_LZW, PNG The format to convert Word pages to. Valid values are TIFF_G4_FAX, JPEG, TIFF_LZW, PNG. The bit depth to use when decompressing XLS pages. Valid values are 1 or 24. The format to convert XLS pages to. Valid values are TIFF_G4_FAX, JPEG, TIFF_LZW, PNG. The Dots Per Inch to use when decompressing XLS pages. The full list of format server parameters and their usage is in Appendix C. Default Configuration Maximizes Performance Please note that the default configuration for VirtualViewer is set to maximize performance. The default settings are the following: 60

Chapter 3 - Customizing the Configuration The bit depth settings for vector formats such as PDF and Word are set to 1. Please note that with the bit depth set at 1 color formats will display as black and white. To view these files in color, set the bit depth to 24. The DPI settings for vector formats such as PDF and Word are 200. To increase the quality of an image, set the DPI to a higher value such as 400. The default format is set to TIFF_FAX_G4. If you are trying to view another format in color, set the format parameter to the format type. Configuring to Maximize Quality Please note that the default configuration for VirtualViewer is set to maximize performance. If you would like to maximize quality over performance, you can change the settings as follows to maximize quality: Change the bit depth settings for vector formats such as PDF and Word to 24 for color documents. To increase the quality of an image, set the DPI to a higher value such as 400. The default format is set to TIFF_FAX_G4. If you are trying to view another format in color, set the format parameter to the format type. Saving the File as Black and White or Gray Scale To improve the performance, you can save your files as black and white or grayscale. For example, if you are converting a PDF document, you can try to save the document in the TIFF_G4_ FAX file format. This will make the file size smaller and improve performance. Please note that there is always a trade off between performance and quality. To improve performance, the quality of the image may be less. This is true whenever working with any imaging software. Memory Recommendation For maximum performance and to improve the speed of loading documents in VirtualViewer AJAX, we recommend generally 512MB of memory for your application server but that also depends on the machine and network. You should start with half a gig and then increase it 2 or 3 times in steady increments to gauge any performance gains. If you reach 1GB and you still have performance issues, please submit a support ticket at www.support.snowbound.com. Setting the Parameters in the Web.xml File To improve performance and the speed of loading documents in VirtualViewer AJAX, try setting the values of the following parameters in the web.config file as shown below: <param-name>documentcachesize</param-name> <param-value>1024000</param-value> 61

Chapter 3 - Customizing the Configuration Note: Increasing the value of the documentcachesize parameter will improve performance on the client, but will require the server to keep more content in memory and thereby decreasing performance. It is important to find the right balance between the two by performance tuning the cache size during testing. <param-name>wordbitdepth</param-name> <param-value>1</param-value> <param-name>worddpi</param-name> <param-value>100</param-value> <param-name>wordformat</param-name> <param-value>jpeg</param-value> <param-name>pdfbitdepth</param-name> <param-value>1</param-value> <param-name>pdfdpi</param-name> <param-value>100</param-value> <param-name>pdfformat</param-name> <param-value>jpeg</param-value> <param-name>xlsbitdepth</param-name> <param-value>1</param-value> <param-name>xlsdpi</param-name> <param-value>100</param-value> <param-name>xlsformat</param-name> <param-value>jpeg</param-value> Please see the next topic Chapter 4 - Using Advanced Features. 62

Chapter 4 - Using Advanced Features Chapter 4 - Using Advanced Features This chapter describes how to set up and work with the advanced features in VirtualViewer Java AJAX Virtual Documents This section describes how to work with virtual documents. A virtual document is a collection of any combination of documents or pages of documents displayed as a single multi-page document with a single set of thumbnails. The pages can be from documents of different file format types such as AFP, Word, or PDF. The virtual document is viewed and regarded as any normal document would be. Loading Virtual Documents To pass a number of documents to the viewer, the value of a documentid can start with a special identifier, followed by a string of a comma-separated list of documentids. The list is issued to create the virtual document. The documentids are listed in the order in which the documents are to be compiled for viewing. Note: Exporting virtual documents in original format is not supported for VirtualViewer AJAX. In version 1.8 of VirtualViewer AJAX, exporting virtual documents in original format is enabled and virtual documents are exported to a TIFF file using the AJAX Java server. Virtual Document Syntax The special identifier is the string VirtualDocument: which is then followed by any number of documentids. The syntax can be used any time a normal documentid could be used. A documentid in the comma-separated list may be specified in the following manner. Table 4.1: Virtual Document Syntax File Name ABC.tif ABC.tif[2] ABC.tif[1-3] Description This specifies that all pages of the document should be included. This specifies that only a single page from the document should be included. This specifies that a range of pages from the document should be included. 63

Chapter 4 - Using Advanced Features Note: To include non-consecutive pages from a single document, you need to specify the document each time in the virtual document string. Displaying a Virtual Document Three documents exist, ABC.tif, EFG.pdf, and IJK.doc, each with three pages. Below are examples of how to create virtual documents. Example 4.1: Virtual Documents http://localhost:8080/virtualviewerjavaajaxserver/ajaxclient.html? documentid=virtualdocument:abc.tif,efg.pdf[2],ijk.doc In the above example, the resultant virtual document would be a 7 page document. Pages 1, 2, and 3 would be all three pages from ABC.tif, page 4 would be page 2 from EFG.pdf, and pages 5, 6, and 7 would be all three pages from IJK.doc. Example 4.2: Virtual Documents http://localhost:8080/virtualviewerjavaajaxserver/ajaxclient.html? documentid=virtualdocument:abc.tif[1-2],efg.pdf,ljk.doc[3] In the above example, the resultant virtual document would be a 6 page document. Pages 1 and 2 would be pages 1 and 2 from ABC.tif, page 3, 4, and 5 would be all three pages from EFG.pdf, and page 6 would be page 3 from IJK.doc. Printing Virtual Documents To print a virtual document, select the Print button. Annotation Security: Watermarks and Redactions This section describes how to work with annotation security. The implementation of security for annotations allows each layer to have a permission level assigned to it. This permission level is not inherent in the layer and is only defined when the layer is retrieved by the content handler. In order to assign a permission level to an annotation layer, the content handler must be implemented or extended and the getannotationproperties method used. 64

Chapter 4 - Using Advanced Features The Annotation Security Model The security model is such that when reading annotation layers, various levels of permissions for viewing and working with annotation layers may be specified. The model currently accounts for nine levels on a per layer basis. Permission levels Each successive level includes the functionality of previous levels. If you are storing the annotations as layers (XML files) with a redaction permission level, then you will be able to present them to the users in the viewer as burned in but they will not actually be burned into the source document. This would allow you to use an XML tool or create an XML parser that would search and report on these annotation layers (XML files) and give you the information you need to run an offline or server side process such as you described. Table 4.2: Permission Levels Permission Level Actions Permitted PERM_HIDDEN Hidden The layer is passed to the client but not displayed. PERM_REDACTION Redaction This burns in the annotation layer for viewing. PERM_PRINT_ The user does not see the layer, but it will be burned Print Watermark WATERMARK in for printing. PERM_VIEW_ The user may view the layer, but it may not hide the View Watermark WATERMARK layer. PERM_VIEW View The user may view or hide the layer. PERM_PRINT Print The user may also print the layer. PERM_CREATE Create The user may also add an object to the layer. PERM_EDIT Edit The user may also edit an object on the layer, and edit layer properties. PERM_DELETE Delete The user may also delete an object on the layer, and delete the layer. Level Definitions Table 4.3: Level Definitions Permission Hidden Redaction Print Watermark Definition If a layer is indicated as having the Hidden permission, the information about the layer will be passed, so that changes done with Page Manipulation will be applied when the annotations are saved. The layer is not displayed to the user even if manipulations are applied. If a layer is indicated as having the Redaction permission, then the servlet will create the working image by applying the layer to the data (i.e. burn in the layer) before passing the working image, so that it becomes part of the image and the data it redacts cannot be seen in any way. The original image is not altered. If a layer is indicated as having the Print Watermark permission, it shall 65

Chapter 4 - Using Advanced Features Permission View Watermark View Print Create Edit Delete Definition be passed as a normal layer, but will not be shown to the user. When the document is printed, any layer with Print Watermark permission will be applied to the image before printing. If a layer is indicated as having the View Watermark permission, it shall be passed as a normal layer. However, the user will not be allowed to show or hide the layer, or manipulate the layer in any way. This layer will never be printed. If a layer is indicated as having the View permission, it shall be passed as a normal layer. The user will be able to hide or show the layer. The user will not be able to add an object, edit an object, delete an object, print the layer, rename the layer, or delete the layer. If a layer is indicated as having the Print permission, it shall be passed as a normal layer. The user will be able to hide or show the layer, print the layer. The user will not be able to add an object, edit an object, delete an object, or rename or delete the layer. If a layer is indicated as having the Create permission, it shall be passed as a normal layer. The user will be able to hide or show the layer, print the layer, or add an object to the layer. The user will not be able to edit an object, delete an object, edit the layer properties, or delete the layer. If a layer is indicated as having the Edit permission, it shall be passed as a normal layer. The user will be able to hide or show the layer, add an object, edit an object, or edit the layer properties. The user will not be able to delete objects, or delete the layer. If a layer is indicated as having the Delete permission, it shall be passed as a normal layer. The user will have full rights to perform any operation on the layer. Retrieving Annotation Layers When loading a document, annotation layers will need to be retrieved and have the correct permission level set. The process of loading an annotation layer is as follows: For each annotationkey returned by getannotationnames the following method will be called. Example 4.3: Retrieving Annotation Layers public Hashtable getannotationproperties (clientinstanceid, documentkey, annotationkey) which returns a hashtable with the following expected key/value pairs for that annotation layer. 66

Chapter 4 - Using Advanced Features Key/Value Pairs The permissionlevel will determine how the layer is handled. If no value is set, an exception will occur. The redactionflag determines if the layer has Mark Layer As Redaction selected in the client. If no value is set, an exception will occur. If the permissionlevel is set to PERM_REDACTION, the value of redactionflag is moot since the client does not receive that layer as an annotation layer. If getannotationproperties returns null, an exception will occur. This prevents cases where a layer should have strict permissions but for some reason no permission level gets set. Saving Redaction Layers If a layer has Mark Layer As Redaction selected, when choosing Save Annotations the following will occur: VirtualViewer will pass both the permissionlevel and the redactionflag to the saveannotationcontent method in a Hashtable: Example 4.4: Saving Redaction Layers public void saveannotationcontent(contenthandlerinput input) saveannotationcontent(contenthandlerinput input) (String clientinstanceid, String documentid, String annotationkey, byte [] data, Hashtable annproperties) Printing Layers When printing a document, the user may choose to print with or without annotations. Only visible layers with a Print permission level or higher in the Image Panel will print. A layer which has been given a permissionlevel of PERM_REDACTION shall always print as part of the image, (since it has been burned into the image), even if the user chose to print without annotations. Connecting Your Document Store VirtualViewer comes with a file content handler that connects VirtualViewer to your file system. Snowbound Software has content handlers available to connect to web locations (URL content handler), FileNet P8 Enterprise Content Management (ECM), Documentum Webtop ECM and SharePoint. You can create your own custom connector or use Snowbound Professional Services to create a custom content handler for you. 67

Chapter 4 - Using Advanced Features What is the Content Handler? The VirtualViewer content handler is a DLL that the server will call on to perform various actions concerning the retrieval and storage of content. By default, the VirtualViewer server uses the sample content handler that Snowbound Software provides, FileContentHandler.dll, as its content handler, which merely reads and writes to a file system location. You can find this sample content handler at VirtualViewerNetAJAX/bin for the integrated installation. It is located in the VirtualViewerNetContentServer/bin directory for the non-integrated production installation. It displays files from the C:/imgs directory. You are encouraged to use this as a starting point for writing your own custom DLL content handler to integrate VirtualViewer into back-end systems. You should create your own content handler to serve up documents from locations that work for your company as well as to add error handling and more robustness for handling requests from multiple users. VirtualViewer.NET AJAX Content Handlers VirtualViewer.NET AJAX has three available sample content handlers for general use. Both the VirtualViewer and the URL content handlers are shipped with the standard Virtual Viewer.NET AJAX package. The SharePoint content handler can be shipped by request. Although all of the content handlers have gone through testing, only the default VirtualViewer content handler,filecontenthandler.dll, will be fully supported. FileContentHandler.dll The VirtualViewer content handler is the default content handler shipped with VirtualViewer.NET AJAX. This content handler supports annotations and will load images from a designated directory on your server. All configurations for this content handler are done before shipping. URLContentHandler.dll The URL content handler allows the viewing of web images by simply inputting the URL of that image into the documentid. To enable the URL content handler, simply update your contenthandler parameter in your content server's web.config file to match the following: For the non-integrated production installation: <add key="contenthandler" value="c:/- Inetpub/VirtualViewer/VirtualViewerNetAJAX/bin/URLContentHandler.dll"/> For the integrated production installation: <add key="contenthandler" value="c:/- Inetpub/VirtualViewer/VirtualViewerNetAJAX/bin/URLContentHandler.dll"/> Please note the following: 68

Chapter 4 - Using Advanced Features The URL content handler does not support annotation saving. Documents in your images directory can still be viewed without annotations with this content handler. Running VirtualViewer.NET AJAX with SPContentHandler.dll If you are using VirtualViewer.NET AJAX version 2.0 and your AJAX Server contentservertype is set to integrated, you need to update your web.config file under AJAX Server. Otherwise, make the following changes to your web.config file under content server: In the web.config file, update the contenthandler parameter to make sure that it points to the correct path of the SPContentHandler dll as shown in the following example: <add key="contenthandler" value="c:/- Inetpub/VirtualViewer/VirtualViewerNetAJAX/bin/SPContentHandler.dll" /> <add key="contenthandler" value="c:/- Inetpub/wVirtualViewer/VirtualViewerNetAJAX/bin/SPContentHandler.dll" /> To view SharePoint server documents through VirtualViewer.NET AJAX by default,use the following example: Note: The installer will set the SharePoint Connector to use port 80, the default Sharepoint port. If your SharePoint server uses another port, you will need to change the configuration to match what your server is using. http://servername:portnumber/virtualviewernetajax/ajaxclient.html? documentid=http://sharepointserver/document library/documentname If you view documents by giving the document name without the document library name and SharePoint website, make sure that sharepointurl and documentlibrary parameter settings point to the correct URL and library in the web.config file. If you are using the default installation, the SharePoint 2010 server occupies port 80. The VirtualViewer.NET default installation also uses port 80. To solve the port conflict problem, do the following to change the VirtualViewer.NET AJAX website setting to a different port number: 1. Open IIS manager. 2. Select website. 3. Click binding and then set the http port number. For example, set it to 1000. On your web.config file, set the AJAX server URL codebase as: http://localhost:1000/virtualviewernetajax or 69

Chapter 4 - Using Advanced Features http://servername:1000/virtualviewernetajax In IIS manager, check the application pool used for VirtualViewer.NET AJAX, make sure that the apppool basic setting is.net Framework 2.0..NET Framework 4.0 is not supported. In the IIS manager, check the application pool of the SharePoint server and the.net AJAX server. Make sure that they have the same pipeline mode and Identity account. Snowbound Software suggests using NetworkService. In the IIS manager, select integrated for the AJAX server and content server application pool. This can be done by adding the following line in the AJAX server and content server web.config: <system.webserver> <directorybrowse enabled="true" /> <handlers accesspolicy="read, Execute, Script"> <add name="snowboundajaxserverhandler" path="ajaxserver" verb="*" type="snowbound.virtualviewernetajaxserver.ajaxserverhandler" resourcetype="unspecified" requireaccess="execute" pre- Condition="integratedMode" /> </handlers> </system.webserver> If you cannot find the above SnowboundAjaxServerHandler handler mapping in the IIS manager, you can do the following to add it manually: 1. Open IIS manager. 2. Select VirtualViewerNetAJAX. 3. Double click on handler mappings. 4. From the right side column, click Add Managered Handler. Type the following for the managed handler: Request path: AjaxServer Type: Snowbond.VirtualViewerNetAJAXServer.AjaxServerHandler Name: SnowboundAjaxServerHandler Click Ok to set. Make sure the access for this handler mapping is set to Execute. In the IIS manager, check the AJAX server and content server authentication. Disable Anonymous authentication. Enable Windows Authentication and ASP.NET impersonation. Under ASP.NET impersonation, specify the account username/password that is authorized to access the SharePoint server. Deploying the Web Part from Visual Studio 2010 If you are using Visual Studio 2010, follow the steps below to deploy the web part from Visual Studio 2010: 70

Chapter 4 - Using Advanced Features 1. Navigate to the VirtualViewerAjaxNetWebPart directory in the files supplied with your product. 2. Build the VirtualViewerAjaxNetWebPart project on a Sharepoint2010 machine by using Visual Studio 2010. In the project setting, make sure the target platform is Microsoft.NET Framework 3.5. 3. Select the customer SharePoint site to deploy. 4. From the project properites under the project name at the bottom, find Site URL. Click the project name. Change the value from http://sharepoint2010 to the name of the SharePoint customer site. 5. Select Build > Deploy VirtualViewerAjaxNetWebPart. The webpart will be automatically installed on the sharepoint2010 site. 6. To make multiple page viewer icons work, copy the icon files snowfirst.gif, snowlast.gif, snownext.gif asnowprev.gif from the web part sample path to the following Sharepoint Server Image directory: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\IMAGES. Deploying the WebPart from SharePoint 2010 Power Shell After the WebPart.wsp is built, you can manually install the web part and start the SharePoint 2010 power shell command line: 1. Add Snowbound WebPart to the SharePoint server. The following is the installation sample command: 71