User Settings Reference
1. Root attributes: identity, localization, startup, UI, and behavior
1.1 Identity, locale, update, and internal/service flags
| XML path | Type | Valid values / meaning | Default | Notes |
|---|
root@UpdateSchedule | String | weekly, monthly, never | install4j default, effectively monthly if unset | Update-check schedule |
root@EnableMessaging | boolean | true / false | true | Enables app messaging subsystem |
root@SendUsageData | boolean | true / false | library/app default | Telemetry opt-in/out |
root@KeepAlive | boolean | true / false | true | Internal app/window keepalive behavior |
root@LastUsedPreflight | String | Last preflight profile name/id | empty | MRU only |
root@TabTips | boolean | true / false | true | Show tab tooltips/hints |
1.2 Main window, tabs, ribbons, and shell integration
| XML path | Type | Valid values / meaning | Default | Notes |
|---|
root@FrameX | int | Main window X position | runtime-calculated | User preference |
root@FrameY | int | Main window Y position | runtime-calculated | User preference |
root@FrameWidth | int | Main window width, DPI-scaled when saved | about 1280 * dpiScale | |
root@FrameHeight | int | Main window height, DPI-scaled when saved | about 860 * dpiScale | |
root@FrameMaximized | boolean | true / false | false | |
root@SplitPosition | int | Main document/sidebar split position | runtime-calculated | |
root@RightSplitWhenComments | boolean | true / false | false | Keeps right pane split only when comments are shown |
root@RibbonToolbars | boolean | true / false | true | Enables ribbon UI |
root@RibbonMinimized | boolean | true / false | false | Ribbon collapsed state |
root@Tabs | boolean | true / false | true | Enables document tabs vs document frames |
root@SameWindow | boolean | true / false | false | Open documents in same window |
root@RestoreSession | boolean | true / false | false | Restore previously open documents/session |
root@NativeFileDialog | boolean | true / false | true | Use native OS file dialogs |
root@ModOnTitlebar | boolean | true / false | true | Show modified marker in title bar |
root@TitleBar | boolean | true / false | true | Show document title in title bar |
root@OverrideTitle | boolean | true / false | false | Override document/title behavior with app preference |
root@Binding | String | Binding/page-side preference string | empty unless set | Used with page view/binding behavior |
root@OverrideBinding | boolean | true / false | false | Forces app binding preference |
root@CreateTempOnSave | boolean | true / false | true | Save-via-temp-file safety behavior |
root@RestoreLastView | boolean | true / false | false | Restore last page/view for reopened docs |
root@PastePagesAfter | boolean | true / false | true | Paste/import pages after current page |
1.3 Units, thumbnails, tools, rendering, and navigation
| XML path | Type | Valid values / meaning | Default | Notes |
|---|
root@DefaultUnits | String | Unit token used throughout the UI; commonly inches/points/mm/cm | inches | The UI sources unit values from UnitsUtil.VALUE_UNITS |
root@ThumbnailWidth | int | Thumbnail width (DPI-scaled on save) | runtime-calculated | |
root@ThumbnailHeight | int | Thumbnail height (DPI-scaled on save) | runtime-calculated | |
root@ToolSize | int | Toolbar icon/tool size (DPI-scaled on save) | runtime-calculated | |
root@ShowRulers | boolean | true / false | false | Toggles ruler display |
root@ShowGrid | boolean | true / false | false | Toggles page grid display |
root@ShowSignatureValidity | boolean | true / false | renderer default | Shows signature-validation UI state |
root@FieldsHighlight | boolean | true / false | true | Highlight form fields |
root@ShowTabOrder | boolean | true / false | false | Show form tab order |
root@FieldGridSpaces | boolean | true / false | false | Use space-based field grid sizing/alignment |
root@HighlightBookmark | boolean | true / false | true | Highlight current bookmark |
root@DefaultBkmkZoom | int | bookmark zoom mode code | library default | Exact numeric mapping comes from external GotoPageAction constants |
root@WrapBookmarks | boolean | true / false | true | Wrap long bookmark text |
root@ToolsDefault | String | default tool command id | StopSelect command constant | Internal command string, not a human label |
root@ToolsKeepActive | boolean | true / false | false | Keep current tool active after use |
root@HandShouldZoom | boolean | true / false | false | Alternate hand-tool zoom behavior |
root@InvertColorsMode | boolean | true / false | false | Invert-colors viewing mode |
root@AdjustToZoom | boolean | true / false | false | When pasting/importing images, adjust to current zoom |
root@EnhanceThinLines | boolean | true / false | renderer default | Thin-line enhancement |
root@ScreenResolutionOption | String | system, custom, legacy standard | custom | standard is normalized to custom on load |
root@ScreenResolution | int | custom effective screen resolution / PPI | computed from environment, min about 110 | Used only when ScreenResolutionOption=custom |
root@FingerModeEnabled | boolean | true / false | false | Touch/finger mode |
root@ShowCommentBubble | boolean | true / false | true | Controls comment bubble UI |
root@CreateLinksFromURLs | boolean | true / false | true | Auto-create clickable links from URL text |
1.4 Theme, colors, scaling, external browser/storage toggles
| XML path | Type | Valid values / meaning | Default | Notes |
|---|
root@LookFeel | String | current UI theme token; known values include Auto, Light, Dark | app default | Newer builds favor FlatLaf values |
root@IconColorset | String | UI shows Color vs Monochrome; exact value comes from print chromaticity constants | color | Used to recolor SVG icons |
root@FullScreenBackground | color string | any parsed color | black-ish renderer default | Full-screen background color |
| root@XodoDriveEnabled | boolean | true/false | true | Enable Xodo Drive integration |
root@GoogleDriveEnabled | boolean | true / false | true
| Enable Google Drive integration |
root@DropboxEnabled | boolean | true / false | true
| Enable Dropbox integration |
root@OneDriveEnabled | boolean | true / false | true | Enable OneDrive integration |
1.5 Prompts, warnings, and feature-specific booleans
| XML path | Type | Valid values / meaning | Default | Notes |
|---|
root@ShowDeletePagesWarning | boolean | true / false | true | Confirm before deleting pages |
root@ShowDeleteAnnotsWaring | boolean | true / false | true | Exact XML name contains Waring typo |
root@ShowFlattenAnnotsWarning | boolean | true / false | true | Confirm before flattening annotations |
root@ShowCloseTabsWaring | boolean | true / false | true | Exact XML name contains Waring typo |
root@ShowSecuritySaveWarning | boolean | true / false | true | Warn when saving security-sensitive changes |
root@ShowSignWarning | boolean | true / false | true | Warn before signing |
root@ShowSanitizeWarning | boolean | true / false | true | Warn before sanitize action |
root@ShowAlignPointsWarning | boolean | true / false | true | Warn for align-points behavior |
root@NewDocSizeDialog | boolean | true / false | true | Show size dialog for new document/page creation |
root@CADToPDFWarning | boolean | true / false | true | Warn before converting CAD files to PDF |
root@ShowDetectForms | boolean | true / false | true | Prompt to detect form fields in a local PDF |
root@ShowDetectOnlineForms | boolean | true / false | true | Prompt to detect form fields in a PDF opened online |
root@ShowUnappliedRedactionMsg | boolean | true / false | true | Warn when saving a document that has marked but unapplied redactions |
root@ActivateSearchResult | boolean | true / false | true | Bring window/tab to front when jumping to a search result |
root@AllowEXE | boolean | true / false | true | Allow launching executable file attachments/links from a PDF |
root@NTDontShowFeedbackAgain | boolean | true / false | false | Dismisses the new-toolbar feedback prompt permanently |
root@NTShowStaticFeedbackButton | boolean | true / false | false | Shows a persistent feedback button for the new toolbar |
2. Root attributes: document creation, print, OCR, scan, export, and conversion
2.1 New-document defaults
| XML path | Type | Valid values / meaning | Default | Notes |
|---|
root@PageSize | String | Letter, Legal, A3, A4, A5, B5 (JIS), B4 (JIS), Executive, Tabloid, B5 (ISO), B4 (ISO), Custom | Letter | Default page size for new blank pages/docs |
root@UseFirstPageSize | boolean | true / false | false | Reuse first page size from source document when applicable |
root@PageOrientation | int | 0 = portrait, 1 = landscape | 0 | Only meaningful for non-custom page sizes |
root@PageWidth | double | points | 612.0 | Used for custom page size |
root@PageHeight | double | points | 792.0 | Used for custom page size |
2.2 Flatten/merge behavior and signatures/create-stamp defaults
| XML path | Type | Valid values / meaning | Default | Notes |
|---|
root@PaintPushButtons | boolean | true / false | false | Paint pushbuttons when flattening fields |
root@PaintOnlyImageButtons | boolean | true / false | false | Only paint image pushbuttons when flattening |
root@PaintNonprintFields | boolean | true / false | false | Include non-print fields during flatten |
root@RenameFields | boolean | true / false | false | Rename fields on merge |
root@LastCreatedSigType | String | signature-creation mode token | empty | Last “create signature” choice |
root@LastCreatedSigFont | String | font family/base name | empty | Last font used for typed signature |
root@UseCustomStampPreview | boolean | true / false | false | Use custom preview behavior for stamp creation |
root@UseStampName | boolean | true / false | false | Use profile/stamp name in UI/output |
root@ReplaceContentsOnly | boolean | true / false | false | Replace pages/content without replacing page objects outside content stream |
root@EditContentMode | String/int bitmask | internal content-edit mode bitmask | 19 | Exact bit-to-feature mapping is partly external; controls which content types are editable |
root@AutoSaveEnabled | boolean | true / false | true | Autosave master switch |
root@AutoSaveDelay | long | minutes | 5 | Autosave delay |
2.3 OCR defaults
| XML path | Type | Valid values / meaning | Default | Notes |
|---|
root@OCRLanguage | String | Tesseract/engine language code, e.g. eng | eng | Saved only when OCR support is present |
root@OCRPageRange | String | page-choice token; commonly PageAll, PageCurrent, PageRange | PageAll | Loader also normalizes older display strings |
root@OCRDPI | int | DPI | 300 | |
root@RotateAfterOCR | boolean | true / false | true | Auto-rotate after OCR |
2.4 Scan defaults
| XML path | Type | Valid values / meaning | Default | Notes |
|---|
root@ScanTarget | String | Beginning of document, Current Page, End of document, New Document, Interleave, Reverse Interleave, Multiple Documents | End of document | Exact strings are significant |
root@ScanPageSize | String | Size to Image, Same As Document | Size to Image | Placement/sizing mode |
root@ScanCompression | String | JPEG, FLATE, JBIG2 (B/W) | JPEG | Output compression |
root@ScanQuality | int | quality percent-like integer | 80 | Used mainly with JPEG |
root@ScanMultiDocLocation | String | output folder path | empty | For multi-document scan mode |
root@ScanOCR | boolean | true / false | false | Run OCR after scanning |
root@ScanFunctionalUnit | int | driver-specific unit code | 0 | Scanner-dependent |
root@ScanDuplex | boolean | true / false | false | Duplex scanning |
root@ScanColor | int | driver-specific color mode code | 0 | Scanner-dependent |
root@ScanSize | String | scanner paper-size token | device/default dependent | Scanner-dependent |
root@ScanDPI | int | DPI | 300 | |
root@ScanBrightness | int | brightness adjustment | 0 | |
root@ScanContrast | int | contrast adjustment | 0 | |
root@ScanDeskew | boolean | true / false | false | Deskew scanned pages |
2.5 Spell check and snapshot defaults
| XML path | Type | Valid values / meaning | Default | Notes |
|---|
root@EnableSpellCheck | boolean | true / false | true | Master spellcheck toggle |
root@IgnoreAllCaps | boolean | true / false | false | Ignore ALL-CAPS words |
root@IgnoreNumbers | boolean | true / false | false | Ignore tokens containing numbers |
root@SpellCheckColor | color string | any parsed color | internal default underline color | Serialized as hex string |
root@SpellCheckDictionaries | String | dictionary list/serialization used by spellcheck manager | empty | Exact delimiter format is manager-defined |
root@SSShowDialog | boolean | true / false | true | Show snapshot dialog |
root@SSSaveImage | boolean | true / false | true | Save image on snapshot |
root@SSPrint | boolean | true / false | false | Print snapshot |
root@SSImageFormat | String | JPEG, PNG, TIFF, GIF | PNG | Snapshot output format |
root@SSFolder | String | folder path | empty | Snapshot output folder |
2.6 Batch-processing memory and import/export MRU values
| XML path | Type | Valid values / meaning | Default | Notes |
|---|
root@BatchLastUseDefaultDirectory | boolean | true / false | false | Reuse default output directory |
root@BatchDefaultIncludeSubdirs | boolean | true / false | false | Default for recursive batch search |
root@BatchLastOverwriteSoruces | boolean | true / false | false | Exact XML key contains Soruces typo |
root@BatchLastRenameFiles | boolean | true / false | false | Rename outputs during batch |
root@BatchLastPreserveStructure | boolean | true / false | false | Preserve source folder structure |
root@BatchPDFACreateReport | boolean | true / false | false | Generate PDF/A report in batch |
root@BatchPDFXCreateReport | boolean | true / false | false | Generate PDF/X report in batch |
root@ImportImageUseDefaultDirectory | boolean | true / false | false | Separate from importimagesettings.xml |
2.7 Office/text conversion and fallback font settings
| XML path | Type | Valid values / meaning | Default | Notes |
|---|
root@WordOption | String | conversion-output command token, e.g. ConvertToDocx | ConvertToDocx | Last-used "Convert to Word" output format |
root@UseFallbackFont | String | THROW_ERROR, USE_PDFSTUDIO_FALLBACKFONT, USER_SPECIFIED_FALLBACKFONT | engine default | Word/general fallback policy |
root@FallbackPath | String | font file path | empty | Used when fallback policy is user-specified |
root@EmbedFonts | boolean | true / false | app default | Embed fonts during Word conversion |
root@MaxMissingCharsWord | int | threshold before fallback/error | app default | Word conversion only |
root@UseFallbackFontExcel | String | same enum as above | engine default | Excel fallback policy |
root@FallbackPathExcel | String | font file path | empty | |
root@EmbedFontsExcel | boolean | true / false | app default | |
root@MaxMissingCharsExcel | int | threshold integer | app default | |
root@UseFallbackFontPowerPoint | String | same enum as above | engine default | PowerPoint fallback policy |
root@FallbackPathPowerPoint | String | font file path | empty | |
root@EmbedFontsPowerPoint | boolean | true / false | app default | |
root@MaxMissingCharsPowerPoint | int | threshold integer | app default | |
root@BookmarkHeadings | boolean | true / false | app default | Create bookmarks from heading styles |
root@WordMaxDPI | int | max DPI for Word/image conversion | app default | |
root@BookmarkSheets | boolean | true / false | app default | Create bookmarks from spreadsheet sheets |
root@ExcelMaxPages | int | max pages to generate | app default | |
root@ExcelPaging | String | workbook paging mode token | app default | Controls Excel pagination strategy |
root@WordConvertSheets | String | MultiSheet, SingleSheet, PageSingleSheet | MultiSheet | Controls how Word documents with multiple sections/columns are laid out on export |
root@NonTableContent | boolean | true / false | true | Include non-tabular page content when converting to Word/Excel |
root@officeConvertLib | String | QOPPA, APRYSE | APRYSE | Selects which underlying library performs Office document conversion |
3. Child element: SMTPSettings
| XML path | Type | Valid values / meaning | Default | Notes |
|---|
root/SMTPSettings@SMTPPort | String/int | port number as string | empty | |
root/SMTPSettings@SMTPStartTLS | String/boolean-ish | starttls flag as stored by mail UI | empty | Stored as string, not normalized here |
root/SMTPSettings@SMTPAuthRequired | String/boolean-ish | whether auth is required | empty | Stored as string |
root/SMTPSettings@SMTPRememberPassword | boolean | true / false | false | |
root/SMTPSettings@Bcc | String | BCC address list | empty | |
root@EMailPref | String | email delivery preference token | empty | Outside SMTPSettings |
root@EmailFlattenAnnots | boolean | true / false | false | Flatten annotations before emailing |
root@EmailFlattenFields | boolean | true / false | false | Flatten form fields before emailing |
4. Child element: Messages
This section is mostly internal state for the in-app messaging.
| XML path | Type | Valid values / meaning | Default | Notes |
|---|
root/Messages@LastMessageID | int | last full message ID shown | 0 | |
root/Messages@MessageFileCheck | long | last server check timestamp | 0 | |
root/Messages@MessageFileModified | long | remote message-file modified time | 0 | |
root/Messages@LastMessageShow | boolean | true / false | true | “do not show again” inverse flag |
root/Messages@LastMiniMessageID | int | last mini-message ID shown | 0 | |
root/Messages@MiniMessage | String | mini-message text/id payload | empty | Present only when set |
root/Messages@MiniEndDate | String | end-date string | empty | Formatting is message-system-defined |
5. Child elements: InitialView and BatchInitialView
5.1 InitialView
root/InitialView is serialized and parsed by the external InitialViewSettings class:
| XML path | Type | Valid values / meaning | Default | Notes |
|---|
root/InitialView@OverridePageMode | boolean | true / false | false | When true, forces the configured page-mode default onto every document, ignoring the document's own embedded setting |
root/InitialView@OverridePageLayout | boolean | true / false | false | When true, forces the configured page-layout default onto every document |
root/InitialView@OverrideMagnification | boolean | true / false | false | When true, forces the configured magnification/zoom default onto every document |
5.2 BatchInitialView
These are the same concepts, but explicitly validated in StudioSettings for batch workflows:
| XML path | Type | Valid values / meaning | Default | Notes |
|---|
root/BatchInitialView@BatchSelectedPage | int | 1-based page number | 1 | |
6. Child element: ToolDefaults
ToolDefaults stores annotation-tool defaults and feature toggles. The root-level flags are visible in settings_en.xml; many tool-specific children are emitted/parsed by the external AnnotationTools serializer.
6.1 Root attributes on ToolDefaults
| XML path | Type | Valid values / meaning | Default from sample | Notes |
|---|
root/ToolDefaults@FlattenEnabled | boolean | true / false | true | Allow annotation flatten command |
root/ToolDefaults@ReviewEnabled | boolean | true / false | true | Allow review-related UI |
root/ToolDefaults@MiniToolbarEnabled | boolean | true / false | true | Allow mini toolbar |
root/ToolDefaults@AuthorEdit | boolean | true / false | true | Allow editing comment author |
root/ToolDefaults@DeleteEnabled | boolean | true / false | true | Allow deleting annotations |
root/ToolDefaults@DrawOverlappingAnnotationsEnabled | boolean | true / false | true | Allow drawing new annotations that overlap existing ones |
root/ToolDefaults@CtrlDragCopyAnnotationsEnabled | boolean | true / false | true | Allow Ctrl+drag to duplicate an annotation |
6.2 Common attributes used by many tool children
These child elements appear directly under ToolDefaults, for example <TextHighlight .../>, <Line .../>, <Redaction .../>.
Common attributes observed in code/sample XML:
| Attribute | Type | Meaning |
|---|
StickyTool | boolean | Keep the tool active after one use |
ShowPropDialog | boolean or int | Whether to show a properties dialog. Most tools use boolean; the note/text tool sample uses 2 and that numeric meaning is external/ambiguous. |
Transparency | int | Percentage-like transparency setting used by many markup tools |
Color | int | Main RGB color |
BorderColor | int | Outline RGB color |
FillColor | int | Fill RGB color |
BorderWidth | double | Stroke width |
FontName / FontSize | String / double | Text-based annotation font defaults |
LineStartStyle / LineEndStyle | String | PDF line-ending style names, e.g. None, ClosedArrow |
6.3 Tool child names seen in the shipped defaults
The sample settings_en.xml includes all of these children under ToolDefaults:
FileAttachSoundTextHighlightTextUnderlineTextCrossTextReplacementTextInser (exact spelling in XML)TextSquigglyLinkCircleSquareAreaHighlightCloudPolygonPolygonDimensionPolylinePolylineDimensionPencilLineLineArrowLineDimensionDimensionToolRubberStampFreeTextCalloutTypewriterText (note/comment tool)RedactionBookmarkMarker (highlighter-style freehand tool)ContentCircle, ContentSquare, ContentCloud, ContentPolygon, ContentPolyline, ContentPencil, ContentLine, ContentLineArrow, ContentRubberStamp, ContentTypewriter, ContentFreeText (defaults used by the "Edit Content" drawing tools, mirroring the standard annotation tools above)- optional
AnnotPaneView child element containing annotation-pane layout state
6.4 Tool-specific attributes visible in the sample XML
| Child | Extra attributes visible in sample | Notes |
|---|
TextHighlight, TextUnderline, TextCross, TextReplacement, TextSquiggly | MarkUpTextContent | Whether the selected text content is included in the created markup/comment |
TextInser | Size | Insert-text caret/markup size |
Cloud, ContentCloud | BorderStyle | Numeric style code; exact mapping external |
PolygonDimension, PolylineDimension | UnitsStringType, DisplayMeasurement | Measurement display options |
Pencil, Marker, ContentPencil | EnableCurveFit, TimerDelay | Freehand smoothing/timing options |
LineDimension | ShowCalibrateMsg | Whether to prompt calibration guidance |
DimensionTool | ShowDimensionDialog, ScalePageUnits, ScaleDisplayUnits, ScaleDisplayValue, ScalePageValue, ScaleDisplayValueY, ScalePageValueY, ScaleDisplayUnitsY, ScalePageUnitsY, ScalePrecision, SeparateVerticalScale, SnapToConent, ShiftPressed | Measurement calibration defaults; note the exact misspelling SnapToConent |
RubberStamp, ContentRubberStamp | Compression, Quality | Raster-stamp preview/compression options |
FreeText, Callout, ContentFreeText | TextAlignX, TextAlignY, FontUnderline, FontStrikethrough | Numeric alignment codes from external classes, plus default underline/strikethrough text style |
Typewriter, ContentTypewriter | FontUnderline, FontStrikethrough | Default underline/strikethrough text style |
Text | InitiallyOpen, IconName | Popup/note initial-open behavior and default note icon (e.g. Note, Comment, Key) |
Redaction | OverlayFillColor, OverlayRepeat, OverlaySize, OverlayFont, OverlayColor, OverlayAlignment | Default appearance for redaction overlay text |
Bookmark | BookmarkStyle, BookmarkColor | Numeric bookmark-style code and default bookmark text color |
Admin note: this is an important section for locking down annotation behavior, but some numeric codes (BookmarkStyle, TextAlignX/Y, UnitsStringType, some ShowPropDialog values) are defined in external classes not present in this repo.
7. Child element: Accessibility
| XML path | Type | Valid values / meaning | Default | Notes |
|---|
root/Accessibility@ReplaceDocColors | boolean | true / false | false | Replace document colors in viewer |
root/Accessibility@UseHighContrast | boolean | true / false | true | Use one of the preset contrast combos |
root/Accessibility@HighContrastCombo | String | greentextonblack, yellowtextonblack, whitetextonblack, blacktextonwhite | blacktextonwhite | Strictly validated |
root/Accessibility@PageBackground | color string | any parsed color | white | Used when not using preset/high contrast |
root/Accessibility@TextColor | color string | any parsed color | black | |
root/Accessibility@OnlyChangeBlack | boolean | true / false | false | Only remap black text/content |
root/Accessibility@ChangeLineArt | boolean | true / false | false | Also recolor line art |
8. Child element: JavaScriptSettings
| XML path | Type | Valid values / meaning | Default | Notes |
|---|
root/JavaScriptSettings@JSEnabled | int | 0 = off, 1 = prompt, 2 = on | 0 if nothing configured | Explicitly mapped in code |
root/JavaScriptSettings@JSSilenceErrors | boolean | true / false | library default | Suppress JS errors |
root/JavaScriptSettings@JSSubmitFormWarn | boolean | true / false | library default | Warn on submit-form JS |
root/JavaScriptSettings@JSMailDocWarn | boolean | true / false | library default | Warn on mail-doc JS |
9. Child elements: print defaults
9.1 PrintSettings
| XML path | Type | Valid values / meaning | Default | Notes |
|---|
root/PrintSettings@AutoRotate | boolean | true / false | true | |
root/PrintSettings@ShrinkToMargins | boolean | true / false | true | |
root/PrintSettings@ExpandToMargins | boolean | true / false | false | |
root/PrintSettings@CenterInPage | boolean | true / false | true | |
root/PrintSettings@ScaleImagesToOutput | boolean | true / false | false | |
root/PrintSettings@PrintAnnotations | boolean | true / false | true | |
root/PrintSettings@PrintFormFields | boolean | true / false | true | |
root/PrintSettings@PrintPageContents | boolean | true / false | true | |
root/PrintSettings@PrintCustomDialog | boolean | true / false | true | |
root/PrintSettings@PrintAsImage | boolean | true / false | false | |
root/PrintSettings@PrintImageDPI | String | DPI preset token | Default | Exact preset strings come from print UI |
9.2 PrintDefaults
PDF Studio also saves a separate child element produced by the external com.qoppa.pdf.PrintDefaults class:
The repo source confirms that it is loaded and saved as part of settings.xml, but the exact inner attribute list is not visible in the checked-in sources. For admin authoring, the safest approach is to capture a generated sample from a configured installation if you need this specific block.
10. Child element: PDFAOptions
| XML path | Type | Valid values / meaning | Default | Notes |
|---|
root/PDFAOptions@PDFASave | boolean | true / false | false | Enable “save as PDF/A” behavior |
root/PDFAOptions@PDFARetain | boolean | true / false | false | Retain PDF/A on save when applicable |
root/PDFAOptions@PDFAUnsupportedAnnots | int | library constant for Delete, Flatten, or Warn | OPTION_DELETE | Numeric value comes from external library |
root/PDFAOptions@PDFATransparency | int | library constant for Opaque or Warn | OPTION_OPAQUE | |
root/PDFAOptions@PDFAEmbeddedFiles | int | library constant for Delete or Warn | OPTION_DELETE | |
root/PDFAOptions@PDFXInvalidAnnots | int | library constant for Delete, Flatten, or Warn | OPTION_DELETE | PDF/X conversion option |
root/PDFAOptions@PDFXTransparency | int | library constant for Opaque or Warn | OPTION_OPAQUE | |
root/PDFAOptions@PDFXEmbeddedFiles | int | library constant for Delete or Warn | OPTION_DELETE | |
root/PDFAOptions@PDFAShowPreConvert | boolean | true / false | false | Show pre-convert dialog for PDF/A |
root/PDFAOptions@PDFXShowPrevConvert | boolean | true / false | false | Exact XML key includes Prev typo |
root/PDFAOptions@PDFXImageCompression | int | library constant for JPEG or FLATE | CO_JPEG | |
root/PDFAOptions@PDFXOutputProfile | String | named CMYK output profile identifier | empty | Profile names come from preflight library |
11. Child elements: certificate/signature preferences
11.1 OSCertificates
| XML path | Type | Valid values / meaning | Default | Notes |
|---|
root/OSCertificates@OSIDs | boolean | true / false | false | Use operating-system digital IDs |
root/OSCertificates@OSCAs | boolean | true / false | false | Use operating-system trusted CAs |
Important admin note: OSCertificates is only applied during the initial/default-level load path. The admin layer does not meaningfully re-apply this block.
11.2 Root certificate/signature attributes and LastSigSettings
| XML path | Type | Valid values / meaning | Default | Notes |
|---|
root@JavaCAs | boolean | true / false | false | Use Java trust store CAs |
root/LastSigSettings@LastDigitalID | long | last selected digital ID id | 0 | User MRU |
root/LastSigSettings@LastSignAP | long | last selected signature appearance id | 0 | |
root/LastSigSettings@Format | String | signing-format token | empty | |
root/LastSigSettings@Type | boolean | true = certifying, false = approval | false | |
root/LastSigSettings@Lock | boolean | true / false | false | Lock-after-sign preference |
root/LastSigSettings@Perms | String | certification-permission token | empty | |
root/LastSigSettings@Reason | String | signing reason | empty | |
root/LastSigSettings@Location | String | signing location | empty | |
root/LastSigSettings@Contact | String | signing contact info | empty | |
12. Child element: TextToPDFSettings
| XML path | Type | Valid values / meaning | Default | Notes |
|---|
root/TextToPDFSettings@PageWidth | double | points | 612.0 | 8.5" x 72 |
root/TextToPDFSettings@PageHeight | double | points | 792.0 | 11" x 72 |
root/TextToPDFSettings@MarginLeft | double | points | 72.0 | 1 inch |
root/TextToPDFSettings@MarginRight | double | points | 72.0 | 1 inch |
root/TextToPDFSettings@MarginTop | double | points | 72.0 | 1 inch |
root/TextToPDFSettings@MarginBottom | double | points | 72.0 | 1 inch |
root/TextToPDFSettings@UseBackground | boolean | true / false | false | Use PDF/page background file |
root/TextToPDFSettings/Font@FontName | String | PDF font/base font name | Helvetica | Stored by FontWrapper |
root/TextToPDFSettings/Font@Size | double | font size | 11.0 | |
root/TextToPDFSettings/Font@Style | int | Java font style code (0 plain, 1 bold, etc.) | 0 | |
Compatibility note: if TextToPDFSettings is absent, the loader also accepts these same attributes directly on root.
13. Child element: ExportImage
| XML path | Type | Valid values / meaning | Default | Notes |
|---|
root/ExportImage@ImageFormat | String | GIF, JPEG, PNG, TIFF; code also supports SVG and HTML | JPEG | Standard UI exposes raster formats; code also handles SVG/HTML export |
root/ExportImage@FilePattern | String | output filename pattern | empty | |
root/ExportImage@DPIRes | int | DPI | 150 | |
root/ExportImage@TiffCompression | String | TIFF codec name such as CCITT RLE, Group 3, Group 4, PackBits, LZW, ZLIB, DEFLATE, or no compression | LZW | Exact stored strings come from TIFFOptions constants |
root/ExportImage@JPGQual | int | 0-10 style quality slider value | 8 | |
root/ExportImage@TiffSingle | boolean | true / false | false | Export one multipage TIFF |
root/ExportImage@PageRangeType | String | page-choice token, usually PageAll or PageRange | PageAll | Same family as other page-choice settings |
root/ExportImage@SVGPageBorder | boolean | true / false | false | Include page border |
root/ExportImage@SVGCompressImgs | boolean | true / false | true | Compress embedded images |
root/ExportImage@TiffGrayscale | boolean | true / false | false | Export TIFF images in grayscale |
root/ExportImage@HTMLConvertOption | String | conversion mode token, e.g. HTMLToSVG | HTMLToSVG | Controls how pages are rendered when exporting to HTML |
14. Child elements: reusable profile lists
14.1 WatermarkList
WatermarkList contains reusable watermark profiles. Profile names (Name) are how admin and user lists merge.
Common profile attributes
| Attribute | Type | Meaning |
|---|
Name | String | profile name/key |
ShowOnMenu | boolean | whether it appears in UI menus |
PageChoice | String | PageAll, PageRange, PageEven, PageOdd, sometimes PageLast |
PageRange | String | explicit range such as 1-3,7 |
WatermarkList/Text
| XML path | Type | Valid values / meaning | Default for new text watermark | Notes |
|---|
root/WatermarkList/Text@Text | String | watermark text; special fields like $page are supported | localized “Watermark” | |
...@Transparency | int | transparency percentage-like value | 75 | |
...@LocationX | double | horizontal offset | 0.0 | |
...@LocationY | double | vertical offset | 0.0 | |
...@LocationUnits | String | unit token such as Inches | inherited/current units | |
...@LocationXFrom | String | FromLeft, FromRight, FromCenter | FromCenter | |
...@LocationYFrom | String | FromTop, FromBottom, FromCenter | FromCenter | |
...@Justification | int or legacy String | left/center/right alignment | center | Loader accepts both int and strings Left/Center/Right |
...@Border | String | border style token such as NoBorder | NoBorder | |
...@BorderWidth | int | border width | 1 | |
...@BorderColor | color | border color | black | |
...@Angle | int | rotation degrees | 315 | |
...@FgndColor | color | text/foreground color | red | |
...@UseBgnd | boolean | true / false | false | |
...@BgndColor | color | background/fill color | white | |
...@ShowOnScreen | boolean | true / false | true | Watermark visible on screen |
...@ShowOnPrint | boolean | true / false | true | Watermark visible when printed |
...@BehindContent | boolean | true / false | false | Paint watermark behind existing page content |
.../Font@FontName | String | font name | default Java sans serif at creation time | |
.../Font@Size | double | font size | 72 in constructor, sample uses 48 | |
.../Font@Style | int | Java font style code | 0 | |
Legacy note: old files may use StartPageNumber and Sequential with $page text substitution.
14.2 HeaderFooterList
| XML path | Type | Valid values / meaning | Default for new profile | Notes |
|---|
root/HeaderFooterList/HeaderFooter@HeaderLeft | String | left header text | empty | Special fields allowed |
...@HeaderCenter | String | center header text | empty | |
...@HeaderRight | String | right header text | empty | |
...@FooterLeft | String | left footer text | empty | |
...@FooterCenter | String | center footer text | empty | |
...@FooterRight | String | right footer text | empty | |
...@Top | double | top margin | 0.5 | |
...@Bottom | double | bottom margin | 0.5 | |
...@Left | double | left margin | 1.0 | |
...@Right | double | right margin | 1.0 | |
...@MarginUnits | String | units such as Inches | current units | |
...@Border | String | border style token | NoBorder | |
...@FgndColor | color | text color | blue | |
...@UseBgnd | boolean | true / false | false | |
...@BgndColor | color | background color | yellow | |
...@BorderColor | color | border color | black | |
...@BorderWidth | int | border width | 1 | |
...@AutoShrink | boolean | true / false | false | Shrink text to fit |
.../Font@FontName | String | font name | Helvetica | |
.../Font@Size | double | font size | 18.0 | |
.../Font@Style | int | font style | 0 | |
Legacy note: old files may use StartPageNumber and Sequential in combination with $page placeholders.
14.3 SplitList
Each Split profile stores defaults for split-document operations.
| XML path | Type | Valid values / meaning | Default for new profile | Notes |
|---|
root/SplitList/Split@SplitBy | String | PageCount, Bookmark, PageRange, BlankPage, TextSearchSplitBefore, TextSearchSplitAfter | PageCount | |
...@PageCount | int | pages per output document | 1 | Used for SplitBy=PageCount |
...@BookmarkEnd | int | maximum bookmark level/end depth | 1 | Used for bookmark split |
...@TextSearchBefore | String | split before this text | empty | |
...@TextSearchAfter | String | split after this text | empty | |
...@PageRange | String | explicit split ranges | empty | |
...@BaseFileName | String | output base filename pattern | empty | Supports placeholders like $sourcefilename, $counter, $pagerange, $firstpage, $lastpage, $currentbookmark, $fullhierarchy, $date, $pagelabel |
...@UseFileName | boolean | true / false | true | Use source filename as base |
...@DestinationFolder | String | output folder path | empty | |
...@UseSourceFolderOrPrompt | boolean | true / false | true | Use source folder or prompt |
...@SuffixOption | String | SuffixDocNumber, SuffixPageRange, CurrentBookmark, BookmarkHierarchy | SuffixPageRange | |
...@DocNumberStart | int | starting sequence number | 1 | |
...@OverwriteFiles | boolean | true / false | false | |
...@AnalyzePage | boolean | true / false | true | Blank-page detection mode |
...@Tolerance | int | blank-page tolerance | 5 | |
Important quirk: the shipped settings_en.xml still uses UseSourceFolder, but the current code reads/writes UseSourceFolderOrPrompt. The sample file appears to be using the older attribute name.
14.4 TextFieldList
This list stores reusable text-field formatting scripts.
| XML path | Type | Valid values / meaning | Default | Notes |
|---|
root/TextFieldList/Format@Name | String | profile name | required | Merge key |
root/TextFieldList/Format@ShowOnMenu | boolean | true / false | true | |
root/TextFieldList/Format@JSFormat | String | Acrobat-style JavaScript format function | default number-format script | |
root/TextFieldList/Format@Keystroke | String | Acrobat-style keystroke-validation function | default number-keystroke script | |
15. Child element: ReplacementFonts
Structure:
<ReplacementFonts>
<FontSubs IsEnabled="true">
<FontSubRec FontName="Original Font" SubName="Replacement Font"
SubPreferred="false" IsBundled="true"/>
</FontSubs>
</ReplacementFonts>
| XML path | Type | Meaning |
|---|
root/ReplacementFonts/FontSubs@IsEnabled | boolean | master enable flag for substitution table |
root/ReplacementFonts/FontSubs/FontSubRec@FontName | String | original/missing font name |
root/ReplacementFonts/FontSubs/FontSubRec@SubName | String | substitute font name |
root/ReplacementFonts/FontSubs/FontSubRec@SubPreferred | boolean | prefer substitute even when original may exist |
root/ReplacementFonts/FontSubs/FontSubRec@IsBundled | boolean | replacement font is bundled with PDF Studio |
If the whole element is absent, PDF Studio falls back to its built-in substitution table from getDefaultFontSubstitutions().
16. Child elements: compare, layer-comparison, and output preview
16.1 CompareOverlay
| XML path | Type | Meaning | Default |
|---|
root/CompareOverlay@OverlayColorOrig | color | color used for original document overlay | external default |
root/CompareOverlay@OverlayColorCompare | color | color used for compare document overlay | external default |
16.2 ComparisonLayers
| XML path | Type | Meaning | Default |
|---|
root/ComparisonLayers@Colors | String | colon-delimited color list for layer comparison UI | empty/external default |
16.3 OutputPreview
| XML path | Type | Meaning | Default |
|---|
root/OutputPreview@ColorSpaceName | String | selected output-preview color space/profile name | external default |
root/OutputPreview@SimulateOverprinting | boolean | simulate overprinting | external default |
root/OutputPreview@BackgroundColor | color | preview background color | external default |
root/OutputPreview@UseBackgroundColor | boolean | enable custom background color | external default |
17. Child element: LastStamp
LastStamp stores the most recently used rubber stamp so it can be pre-selected the next time the Stamp tool is used. When the last stamp was a text-based stamp, its formatting is stored under a TextStamp child.
| XML path | Type | Valid values / meaning | Default | Notes |
|---|
root/LastStamp/TextStamp@Name | String | stamp name/label | empty | |
root/LastStamp/TextStamp@Text | String | stamp text content | empty | |
root/LastStamp/TextStamp@Color | color | stamp text/outline color | app default | |
root/LastStamp/TextStamp@FontSize | int | stamp font size | app default | |
root/LastStamp/TextStamp@TextStyle | int | Java font style bitmask | bold + italic | |
root/LastStamp/TextStamp@Justification | int or legacy String | left/center/right alignment | center | Loader accepts both int and strings Left/Center/Right |
root/LastStamp/TextStamp@DropShadow | boolean | true / false | true | Draw a drop shadow behind the stamp text |
root/LastStamp/TextStamp@ShowBorder | boolean | true / false | true | Draw a border around the stamp |
17. Special Use
This section reflects special use only items
| XML path | Type | Valid values / meaning | Default | Notes |
|---|
root@NoConnections | boolean | true / false | false | Enables air gapped mode |
root@ShowSurveyDialog | boolean | true / false | true | Changes to false after the survey has been completed
|
root@ShowSurveyPrompt | int | 0 | 0 | Controls when survey is next due to show |
root@JXBrowswerEnabled | boolean | true / false | true | Disables app's embedded browser for in-web content |
root@XodoSignEnabled | boolean | true / false | true | Shows/HidesXodo Sign option
|