Customise the User Interface in the Java PDF Viewer
The JPedal Viewer is a fully featured PDF Viewer with features for Viewing, Searching, Extracting and Converting PDFs. Not all features will be required for users so the Viewer uses a properties file to allow you to control its appearance and which features are present in the Viewer.
Using your own properties file
The Viewer can load properties files in three ways.
- Specifying a location of a properties file with the “org.jpedal.Viewer.Prefs” VM argument.
java -Dorg.jpedal.Viewer.Prefs="file://path/to/properties.xml" -jar jpedal.jar --view
- Providing the properties file path to the Viewer constructors Viewer(String) or Viewer(Accessible, String). The later can be used to embed the Viewer in another application, a detailed tutorial for this can be found here.
//Create a Viewer object with properties path specified Viewer viewer = new Viewer("path/to/properties.xml"); //Set up the viewer for use viewer.setupViewer();
- Otherwise, JPedal will load a file called .properties.xml in the same directory as the JPedal jar. If it is not present one with the default properties will be created for you.
The VM argument and Viewer constructors can specify a location within the jar, a server location, or from the local machine by starting the address with jar://, http://, or file://.
If no properties file is present (such as when the Viewer is first opened) the Viewers default properties will be used, and a new file is created when the Viewer closes. This new file is created either in the location specified by the VM argument, if set, or the same directory as the jar.
The Preferences Window
The JPedal Viewer has a Preferences Window that will allow you to set properties files within the Viewer (although you will need to save and restart the Viewer for all values to take effect). This window can be accessed from the menu item Edit-> Preferences (Ctrl + K).
The preferences window is divided into different views selected using the icons down the left-hand side. Each view focuses on controlling different aspects of the Viewers appearance and functionality.
Once you have set the properties you wish to use and are ready to save them you can either save them directly to the current properties file by using the OK button or to another file leaving the current settings intact using the Save As button.
The preferences window contains a view that allows you to specify which GUI elements you wish to hide, this is the Menu view. The menu is divided into 5 segments on different tabs, each representing a different area of the Viewer. Each tab contains a tree of elements that allow you to specify individual buttons or elements to hide from view, below each of these is a button that allows you to completely remove this element from the GUI.
If you wish to create your own properties file using this preferences window we recommend you use the preferences file to design the Viewer as you want it and then use Save-as to save the properties into a new file.
The properties file
The properties file is a simple xml file with a default name of .properties.xml, although if you are using the “org.jpedal.Viewer.Prefs” VM argument you can give the file any name you wish.
The properties file contains each value in a different element, each preceded by a comment explaining the properties use and value.
If you wish to create your own properties file we recommend you take the default file generated by the Viewer as a starting point and modify the file from there. You can still create your own file by only adding the properties you require, all missing properties are then added by the Viewer with their default values applied.
Below are all the properties values stored within the properties file. All these values are held in a single Properties Element except where stated.
List of Viewer Properties
- Recent Files
- Show First Time Popup
- Search Window Type
- Page Border Visibility
- Viewer Look and Feel
- Resolution
- Dynamic Cursor
- Scroll whilst dragging
- Display Tips On Startup
- Display Tips On Startup
- Menu Bar Elements
- Button Bar
- Display Options
- Navigation Bar
- Side Tab Bar
- Show Menu Bar
- Show Button Bar
- Show Navigation Bar
- Show Side Tab Bar
- Highlight Color
- Highlight Text Color
- Highlight Opacity
- Highlight Color Invert Mode
- Highlight Form Fields
- Highlight Form Fields Color
- Replace Document Text Colors
- Replacement Page Color
- Replace PDF Display Color
- Open Last Document On Viewer Start
- Page Insets
- Side Tab Bar Collapse Length
- Side Tab Bar Expand Length
- Side Tab Bar Consistent Between Files
- Display context menu of Right Click
- Allow option for Mouse Wheel to scroll
- Set Properties to Read Only
- Page Turn Animation
- Custom Window Title
- Confirm Close of Viewer
- Set Custom Icons
- Display Message For OpenFX in PageFlow Display Mode
- Set a Default Printer
- Set a Default Printer Resolution
- Set a Default Printer Page Size
- Set a Printer Black List
- Use Hinting in True Type Fonts
- Text to Speech Voice Name
- Preview Page on Single Page Display Mode Scrolling
- Show Mouse Selection Box
- Separate Cover Pages
- Starting Scale
- Save Scaling When Viewer Closes
- Starting Display Mode
- Save View When Viewer Closes
- Starting Side Tab State
- Save Side Tab State When Viewer Closes
- Starting Selected Tab
- Save Selected Tab When Viewer Closes
- Starting Viewer Width
- Starting Viewer Height
- Save Viewer Size When Viewer Closes
- Save Side Tab Expanded Size When Viewer Closes
- Live Update Search Results
- Enhance Fractional Lines
- Scroll Rendering Delay
- Use Off-Screen Rendering
- Use Full Offscreen Rendering
- Image smoothing
- Ignore Line Widths
- Treat URLs in Text as Clickable Link
Recent Files
Recent files contains a list of files that have been opened recently. It can contain 5 values with the most recent being the last.
Value Recent files contains child elements that define the 5 most recently opened files with the most recent being at the bottom child.
Example
<recentfiles>
<file name="/path/to/file.pdf"/>
</recentfiles>
Show First Time Popup
Flag to control if we should display first time popup containing information for first time users.
Value A boolean value, true if the popup should be shown.
Example
<showfirsttimepopup value="false"/>
Search Window Type
Value to specify how the Viewers search functionality should be displayed on the UI.
Value
- 0 = External Window - Create a second window to contain the search content.
- 1 = Side Tab Bar - Create a tab on the left tab bar to contain the search functionality.
- 2 = Menu Bar - Create a text field on the button bar at the top of the Viewer to use for searches.
Example
<searchWindowType value="2"/>
Page Border Visibility
Control if the Page border should be visible.
Value
- 0 = Hide the Border
- 1 = Show the Border
Example
<borderType value="1"/>
Viewer Look and Feel
The current look and feel for the Viewer.
Value This value can be set to “SystemDefault” which will cause the Viewer to use what has already been set up. Otherwise, the value should be the class name of the look and feel you wish to use. JPedal can use any look and feel for the JVM or provided by FlatLaf For example
- javax.swing.plaf.metal.MetalLookAndFeel
- javax.swing.plaf.nimbus.NimbusLookAndFeel
- com.sun.java.swing.plaf.motif.MotifLookAndFeel
- com.sun.java.swing.plaf.windows.WindowsLookAndFeel
- com.formdev.flatlaf.FlatLightLaf
- com.formdev.flatlaf.FlatDarkLaf
Example
<viewerLookAndFeel value="SystemDefault"/>
Resolution
The number of pixels to be treated as an inch by the screen. This works by adding an additional multiplier to the specified scaling.
Value An non-negative Integer value.
Example
<resolution value="110"/>
Dynamic Cursor
Control if the mouse cursors appearance should be dynamic and changed based on the content it is over.
Value A boolean value, true if the cursor should dynamically change.
Example
<allowCursorToChange value="true"/>
Scroll whilst dragging
Control if the view should scroll whilst dragging mouse content.
Value A boolean value, true if the view should scroll.
Example
<autoScroll value="true"/>
Display Tips On Startup
A flag to control if tips for using the Viewer should be shown on Viewer start up.
Value A boolean value, true if the tips should be shown.
Example
<displaytipsonstartup value="false"/>
Display Tips On Startup
A flag to control if tips for using the Viewer should be shown on Viewer start up.
Value A boolean value, true if the tips should be shown.
Example
<displaytipsonstartup value="false"/>
Menu Bar Elements
Set the visibility of the Menu Bar. This element also contains children for each element on the Menu Bar
Value A boolean value, true displays the Menu Bar
Example
<MenuBarMenu value="true">
......
</MenuBarMenu>
File Menu
Set the visibility of the File Menu on the Menu Bar. This element has multiple children defining the elements present in the File Menu. The names of the elements are the names of the elements in English merged to a single word with “Menu” appended to the end if the element is for a Menu with children.
Parent This elements parent is “MenuBarMenu”
Value A boolean value, true removes this element from the Menu Bar All children also accept a Boolean to control which elements are included.
Example
<FileMenu value="true">
<OpenMenu value="true">
<Open value="true"/>
<Openurl value="true"/>
</OpenMenu>
<Save value="true"/>
<Resaveasforms value="false"/>
<Find value="true"/>
<Documentproperties value="true"/>
<Signpdf value="false"/>
<Print value="true"/>
<Recentdocuments value="true"/>
<Exit value="true"/>
</FileMenu>
Edit Menu
Set the visibility of the Edit Menu on the Menu Bar. This element has multiple children defining the elements present in the Edit Menu. The names of the elements are the names of the elements in English merged to a single word with “Menu” appended to the end if the element is for a Menu with children.
Parent This elements parent is “MenuBarMenu”
Value A boolean value, true removes this element from the Menu Bar All children also accept a Boolean to control which elements are included.
Example
<EditMenu value="true">
<Copy value="true"/>
<Selectall value="true"/>
<Deselectall value="true"/>
<Preferences value="true"/>
</EditMenu>
View Menu
Set the visibility of the View Menu on the Menu Bar. This element has multiple children defining the elements present in the View Menu. The names of the elements are the names of the elements in English merged to a single word with “Menu” appended to the end if the element is for a Menu with children.
Parent This elements parent is “MenuBarMenu”
Value A boolean value, true removes this element from the Menu Bar All children also accept a Boolean to control which elements are included.
Example
<ViewMenu value="true">
<GotoMenu value="true">
<Firstpage value="true"/>
<Backpage value="true"/>
<Forwardpage value="true"/>
<Lastpage value="true"/>
<Goto value="true"/>
<Previousdocument value="true"/>
<Nextdocument value="true"/>
</GotoMenu>
<PagelayoutMenu value="true">
<Single value="true"/>
<Continuous value="true"/>
<Facing value="true"/>
<Continuousfacing value="true"/>
<PageFlow value="true"/>
</PagelayoutMenu>
<separateCover value="true"/>
<textSelect value="true"/>
<panMode value="true"/>
<Fullscreen value="true"/>
</ViewMenu>
Export Menu
Set the visibility of the Export Menu on the Menu Bar. This element has multiple children defining the elements present in the Export Menu. The names of the elements are the names of the elements in English merged to a single word with “Menu” appended to the end if the element is for a Menu with children.
Parent This elements parent is “MenuBarMenu”
Value A boolean value, true removes this element from the Menu Bar All children also accept a Boolean to control which elements are included.
Example
<ExportMenu value="true">
<ContentMenu value="true">
<Images value="true"/>
<Text value="true"/>
</ContentMenu>
<Bitmap value="true"/>
</ExportMenu>
Help Menu
Set the visibility of the Help Menu on the Menu Bar. This element has multiple children defining the elements present in the Help Menu. The names of the elements are the names of the elements in English merged to a single word with “Menu” appended to the end if the element is for a Menu with children.
Parent This elements parent is “MenuBarMenu”
Value A boolean value, true removes this element from the Menu Bar All children also accept a Boolean to control which elements are included.
Example
<HelpMenu value="true">
<Visitwebsite value="true"/>
<Tipoftheday value="true"/>
<Checkupdates value="true"/>
<About value="true"/>
<Helpforum value="false"/>
</HelpMenu>
Button Bar
Set the visibility of the Button Bar contents at the top of the UI. This element has multiple children defining the elements present in the Button Bar.
Value A boolean value, true removes this element from the Menu Bar All children also accept a Boolean to control which elements are included.
Example
<ButtonsMenu value="true">
<Openfilebutton value="true"/>
<Savefilebutton value="false"/>
<Printbutton value="true"/>
<Searchbutton value="true"/>
<Propertiesbutton value="false"/>
<Aboutbutton value="false"/>
<Snapshotbutton value="true"/>
<ZoomInbutton value="true"/>
<ZoomOutbutton value="true"/>
<RotateLeftbutton value="true"/>
<RotateRightbutton value="true"/>
<Helpbutton value="false"/>
<CursorButton value="true"/>
<MouseModeButton value="true"/>
<OpenSystemDefault value="false"/>
</ButtonsMenu>
Display Options
Set the visibility of the Display Options at the top of the UI. This element has multiple children defining the various display option elements.
Value A boolean value, true removes this element from the Menu Bar All children also accept a Boolean to control which elements are included.
Example
<DisplayOptionsMenu value="true">
<Scalingdisplay value="true"/>
<Rotationdisplay value="false"/>
<Progressdisplay value="true"/>
<Downloadprogressdisplay value="true"/>
</DisplayOptionsMenu>
Navigation Bar
Set the visibility of the Navigation Bar at the top of the UI. This element has multiple children defining the various display option elements.
Value A boolean value, true removes this element from the Menu Bar All children also accept a Boolean to control which elements are included.
Example
<NavigationBarMenu value="true">
<Memorybottom value="true"/>
<Firstbottom value="true"/>
<Back10bottom value="true"/>
<Backbottom value="true"/>
<Gotobottom value="true"/>
<Forwardbottom value="true"/>
<Forward10bottom value="true"/>
<Lastbottom value="true"/>
<Singlebottom value="true"/>
<Continuousbottom value="true"/>
<Continuousfacingbottom value="true"/>
<Facingbottom value="true"/>
<PageFlowbottom value="true"/>
</NavigationBarMenu>
Side Tab Bar
Set the visibility of the Side Tab Bar at the top of the UI. This element has multiple children defining the various display option elements.
Value A boolean value, true removes this element from the Menu Bar All children also accept a Boolean to control which elements are included.
Example
<SideTabBarMenu value="true">
<Pagetab value="true"/>
<Bookmarkstab value="true"/>
<Layerstab value="true"/>
<Signaturestab value="true"/>
<AnnotationTab value="true"/>
<AttachmentsTab value="true"/>
</SideTabBarMenu>
Show Menu Bar
Control of the Menu Bar should be visible or not including the panel it is placed upon.
Value A boolean value, true if the menu bar should be shown.
Example
<ShowMenubar value="true"/>
Show Button Bar
Control of the Button Bar should be visible or not including the panel it is placed upon.
Value A boolean value, true if the button bar should be shown.
Example
<ShowButtons value="true"/>
Show Navigation Bar
Control of the Navigation Bar should be visible or not including the panel it is placed upon.
Value A boolean value, true if the navigation bar should be shown.
Example
<ShowNavigationbar value="true"/>
Show Side Tab Bar
Control of the Side Tab Bar should be visible or not including the panel it is placed upon.
Value A boolean value, true if the side tab bar should be shown.
Example
<ShowSidetabbar value="true"/>
Highlight Color
Set the color of the for page text and images.
Value An Integer representing an RGB color obtained by using Color.getRGB().
Example
<highlightBoxColor value="-16777216"/>
Highlight Text Color
Set the color of the text when highlighted on a page. This is in addition to the Highlight Color which is the color of the area around the text.
Value An Integer representing an RGB color obtained by using Color.getRGB().
Example
<highlightTextColor value="16750900"/>
Highlight Opacity
Set the opacity/transparency of the highlights using a float value/
Value An Float representing opacity where a value of 1 is full Opacity and 0 is full transparency.
Example
<highlightComposite value="0.35"/>
Highlight Color Invert Mode
Ignore all over highlight options and instead inverts all colors that fall within the highlighted area.
Value A boolean value, true if the highlights should use the inverse colors.
Example
<invertHighlights value="false"/>
Highlight Form Fields
Highlight editable form fields to make them more visible on the page
Value A boolean value, true if the editable form fields are highlighted.
Example
<highlightFormFields value="false"/>
Highlight Form Fields Color
Specify the color to be used for highlighting form fields when the property “highlightFormFields” is set to true.
Value An Integer representing an RGB color obtained by using Color.getRGB().
Example
<formFieldsHighlightColor value="858356428"/>
Replace Document Text Colors
A flag to control if text in the document should have its color replaced with the value specified by the vfgColor (see below.)
This can be useful in making page content easier to read, making it more accessible.
Value A boolean value, true if the text color should be replaced.
Example
<replaceDocumentTextColors value="false"/>
Replace Document Text Colors Threshold
A value under which all RGB component for a text color must be below in order for replacement text colors to be applied. This can be useful in making page content easier to read, making it more accessible.
Value A non-negative Integer value.
Example
<TextColorThreshold value="255"/>
Replacement Text Color
Set the replacement color for text on the page when “replaceDocumentTextColors” is set to true.
This can be useful in making page content easier to read, making it more accessible.
Value An Integer representing an RGB color obtained by using Color.getRGB().
Example
<vfgColor value="0"/>
Replacement Text and Line Art Color
Set if both shapes/line art should have their color changes along with the pages text content. This can be useful in making page content easier to read, making it more accessible.
Value A boolean value, true if the text color should be replaced.
Example
<changeTextAndLineart value="false"/>
Replacement Page Color
Set the color for PDF pages instead of using the default white.
This can be useful in making page content easier to read, making it more accessible.
Value An Integer representing an RGB color obtained by using Color.getRGB().
Example
<vbgColor value="16777215"/>
Replace PDF Display Color
Set is the background of the PDF display panel should be replaced with a user defined setting. This can be useful in making page content easier to read, making it more accessible.
Value A boolean value, true if the PDF panel background color should be replaced.
Example
<replacePdfDisplayBackground value="false"/>
Replacement PDF Display Color
Set the color for PDF display panel instead of using the default.
This can be useful in making page content easier to read, making it more accessible.
Value An Integer representing an RGB color obtained by using Color.getRGB().
Example
<pdfDisplayBackground value="16777215"/>
Open Last Document On Viewer Start
A flag to control if the Viewer should reopen the last document (from the recent files list) when the Viewer first opens.
Value A boolean value, true if the last viewed PDF should be opened.
Example
<pdfDisplayBackground value="16777215"/>
Reopen Last Document to Page
The page to open to when the Viewer opens the last opened document. This is set by the Viewer when closed.
Value A non-negative Integer value for the page that should be opened.
Example
<lastDocumentPage value="1"/>
Page Insets
Specify how large the insets from the edge of the display panel should be for PDF pages.
Value A non-negative Integer value for the inset length.
Example
<pageInsets value="25"/>
Side Tab Bar Collapse Length
This sets the split pane divider position to be used when clicking to collapse the side tab bar panel
Value A non-negative Integer value for the divider position.
Example
<sideTabBarCollapseLength value="32"/>
Side Tab Bar Expand Length
This sets the split pane divider position to be used when clicking to expand the side tab bar panel
Value A non-negative Integer value for the divider position.
Example
<sideTabBarExpandLength value="190"/>
Side Tab Bar Consistent Between Files
Flag that the side tab bars divider position should be unchanged when new files are loaded.
This overrides the property “startSideTabOpen”
Value A boolean value, true the side tab bar divider will remain unchanged.
Example
<consistentTabBar value="false"/>
Display context menu of Right Click
Flag to control if a context menu should be displayed when right-clicking on the PDF page. This menu provides options for text/image extraction, select/deselect all text, and copy text.
Value A boolean value, true the context menu will be displayed on right click
Example
<allowRightClick value="true"/>
Allow option for Mouse Wheel to scroll
A flag to allow the mouse wheel to increase/decrease the scaling values by holding the Ctrl key (Windows/Linux) or Command Key (Mac)
Value A boolean value, true the mouse wheel can alter the scaling values
Example
<allowScrollwheelZoom value="true"/>
Set Properties to Read Only
Flag the properties file as read-only. This does not set the file as read-only to the underlying operating system but it does prevent the Preferences window within the Viewer from saving any changes.
This means any values that live update can still be used but the state is not saved.
Value A boolean value, true the file can not be updated by the Viewer.
Example
<readOnly value="false"/>
Page Turn Animation
Flag to allow page turning animations in the Facing Display Mode. These animation and controls allow you to drag pages to change to the next page. The animation gives teh same appears as a books pages being turned.
Value A boolean value, true the enable page turn animation
Example
<enhancedFacingMode value="true"/>
Custom Window Title
This value replaces the window title in the Viewers window. If it is empty then the window title is not modified.
Value A String value to replace the window title.
Example
<windowTitle value=""/>
Confirm Close of Viewer
A flag to display a popup to confirm if the user wished to close the Viewer when closing.
Value A boolean value, true a confirmation popup is displayed when closing the Viewer
Example
<confirmClose value="false"/>
Set Custom Icons
This property allows you to replace the Viewers Icons with another set stored within the Jar including your own. JPedal comes with 2 icon sets.
- Dark Icons - /org/jpedal/examples/viewer/res/dark/
- Classic Icons - /org/jpedal/examples/viewer/res/
Value A String value representing the path for an Icon set stored within the Jar.
Example
<iconLocation value="/org/jpedal/examples/viewer/res/"/>
Display Message For OpenFX in PageFlow Display Mode
This property controls if we should display a popup when attempting to open PageFlow Display Mode without JavaFX installed.
Value A boolean value, if true the Viewer displays a popup instructing to install OpenFX for PageFlow Mode.
Example
<showpageflowmessage value="true"/>
Set a Default Printer
This property will select the specified Printer (if installed) as the default printer in the print dialog. Otherwise, the dialog will use the system default printer.
Value A String value representing the name of the Printer to use as default
Example
<defaultPrinter value=""/>
Set a Default Printer Resolution
This property will select the specified Resolution (if available) as the default resolution in the print dialog. Otherwise, the dialog will use the printer default resolution.
Value A String value representing the value of the resolution
Example
<defaultDPI value="600"/>
Set a Default Printer Page Size
This property will select the specified Page Size (if available) as the default page size in the print dialog. Otherwise, the dialog will use the printer default page size. If the value is not set or recognised for the printer then the printer default is used.
Value A String value representing the value of the page size
Example
<defaultPagesize value=""/>
Set a Printer Black List
This property is a comma separated list of printer names that the printer dialog should ignore.
Value A String value representing a list of Printer names, separated by commas.
Example
<printerBlacklist value=""/>
Use Hinting in True Type Fonts
True type fonts contain some additional hints that may help in rendering some fonts.
Value A boolean value, true uses true type font hinting
Example
<useHinting value="false"/>
Text to Speech Voice Name
The name of the voice to use with Text To Speech. This functionality is provided an interface for you to implement your own functionality.
Value A String value denoting the name of the voice to be used.
Example
<voice value="kevin16(general domain)"/>
Preview Page on Single Page Display Mode Scrolling
A flag to control if a Page Preview should be displayed whilst scroll in single page mode.
Value A boolean value, true displays the preview whilst scaling.
Example
<previewOnSingleScroll value="true"/>
Show Mouse Selection Box
A flag to control if a box should be drawn around the area dragged by the mouse in addition to any other forms of highlighting.
Value A boolean value, true displays the mouse selection box
Example
<showMouseSelectionBox value="false"/>
Separate Cover Pages
A flag to control if Facing and Continuous Facing Display Modes should display the first page along on its row. Effectively pages run left to right, when this property is true the odd number pages are on the right, otherwise they are on the left.
Value A boolean value, true displays the first page on its own row
Example
<separateCoverOn value="true"/>
Starting Scale
This property specifies a scaling to be used when opening the Viewer.
Value A String value that can be either any of the values listed in the Viewers scaling field.
Example
<startScaling value="Fit Page"/>
Save Scaling When Viewer Closes
This property specifies if the scaling value should be saved on close to be reused when the Viewer next opens.
Value A boolean value, if true the scaling is saved between sessions
Example
<trackScaling value="false"/>
Starting Display Mode
This property specifies a display mode to be used when opening the Viewer.
Value A String value that can be either of the following integer values
- 1 = Single Page Mode
- 2 = Continuous Mode
- 3 = Continuous Facing Mode
- 4 = Facing Mode
- 5 = PageFlow Mode
Example
<startView value="1"/>
Save View When Viewer Closes
This property specifies if the display mode value should be saved on close to be reused when the Viewer next opens.
Value A boolean value, if true the display mode is saved between sessions
Example
<trackView value="false"/>
Starting Side Tab State
This property specifies if the side tab should be expanded or collapsed when opening the Viewer.
Value A boolean value, if true the side tab bar should be expanded
Example
<startSideTabOpen value="false"/>
Save Side Tab State When Viewer Closes
This property specifies if the side tab bar state should be saved on close to be reused when the Viewer next opens.
Value A boolean value, if true the side tab bar state is saved between sessions
Example
<trackSideTabOpen value="false"/>
Starting Selected Tab
This property specifies which tab should be the tab to open when the Side Tab Bar expands
Value A String value representing the name of the tab in the Side Tab Bar
Example
<startSelectedSideTab value=""/>
Save Selected Tab When Viewer Closes
This property specifies if the currently selected tab should be saved on close to be reused when the Viewer next opens.
Value A boolean value, if true the selected tab is saved between sessions
Example
<trackSelectedSideTab value="false"/>
Starting Viewer Width
This property specifies the Viewers Width when it is first opened.
Value A String value representing the width to use for the Viewer.
Example
<startViewerWidth value="960"/>
Starting Viewer Height
This property specifies the Viewers Height when it is first opened.
Value A String value representing the height to use for the Viewer.
Example
<startViewerHeight value="540"/>
Save Viewer Size When Viewer Closes
This property specifies if the Viewer size should be saved on close to be reused when the Viewer next opens.
Value A boolean value, if true the viewer size is saved between sessions
Example
<trackViewerSize value="false"/>
Save Side Tab Expanded Size When Viewer Closes
This property specifies if the Side Tab Bar expanded size should be saved on close to be reused when the Viewer next opens.
Value A boolean value, if true the side tab expanded size is saved between sessions
Example
<trackSideTabExpandedSize value="false"/>
Live Update Search Results
This property specifies if the Viewer should live update search results for wait till completion to show results.
Value A boolean value, if true then search results will live update
Example
<updateResultsDuringSearch value="true"/>
Enhance Fractional Lines
This property will ensure strokes can not be rendered at less than 1 pixel wide. When a stroke would render with a width less than 1, it will instead use a width of 1.
This will prevent shapes and lines from becoming too small and no longer visible.
Value A boolean value, if true then stroke widths rendered at less than 1 pixel in width will instead be rendered using a width of 1 pixel.
Example
<enhanceFractionalLines value="true"/>
Scroll Rendering Delay
Set a delay for rendering any multipage view when scrolling. This is to prevent all visible pages rendering until scrolling as stopped for a given amount of time.
Value A String value representing the number of milliseconds the scroll must pause before rendering page content.
Example
<pageMoveDelay value="500"/>
Use Off-Screen Rendering
Set if off-screen rendering techniques should be used. These techniques render the visible portion of the page to an in memory image in order to make interactive feature such as text selection and highlighting for responsive.
This feature trades increased memory usage for faster interaction.
Value A boolean value, if true then off-screen rendering is used.
Example
<useOffScreenRendering value="true"/>
Use Full Offscreen Rendering
Set if full off-screen rendering techniques should be used. This functions as the Off-Screen Rendering option but stores the entire page in memory that also improves the responsiveness of scrolling on pages larger than the display area.
This feature trades increased memory usage for faster interaction.
Value A boolean value, if true then full off-screen rendering is used.
Example
<fullOffScreenRendering value="true"/>
Image smoothing
Set if image smoothing techniques should be used in order to improve appearance of image content.
Value A boolean value, if true then image smoothing is used.
Example
<useSmoothImage value="true"/>
Ignore Line Widths
Set if shape strokes should have its width ignored and instead always rendered to be 1px thick regardless of the display scaling.
Value A boolean value, if true then line widths are ignored.
Example
<hideLineWeights value="false"/>
Treat URLs in Text as Clickable Link
Set if URLs in text content should be made clickable to open the URL in the users default browser.
Value A boolean value, if true then URLs will be clickable.
Example
<treatURLTextAsLinks value="false"/>
Locking the properties
Any user with access to the preferences window can change values in the properties file.
In order to prevent this we suggest you disable the preferences element in your properties file and ensure the properties file is stored in a place the user can not have access such as storing the preferences file within your jar.
However, please note that the recent-documents functionality is handled by storing file names in the properties file. If the file is stored so that it can’t be updated (such as within the jar or making the file read-only) the recent-documents values can’t be updated so values will not be saved when the Viewer closes.