Skip to main content

Rendition configuration

All ARender rendition services are Spring Boot applications. Properties can be set in application.properties, application.yml, or overridden via environment variables. See Environment variables for the naming convention.

Properties shown here are the defaults from the source. Omitting a property leaves the default in effect.


Document Service Broker

The Document Service Broker (arender-document-service-broker) runs on port 8761 and acts as the main orchestrator.

Network

PropertyDefaultDescription
server.port8761HTTP port
server.address0.0.0.0Bind address

Microservice HTTP client

The broker communicates with rendition services over HTTP using a reactive client.

PropertyDefaultDescription
rest.client.max-in-memory-size8000000Maximum bytes to buffer in memory per response
rest.client.max-connections200Maximum simultaneous connections
rest.client.pending-acquire-timeout120000Timeout (ms) to acquire a connection from the pool
rest.client.pending-acquire-max-count-1Maximum pending acquire queue size. -1 means no limit
rest.client.max-idle-time-1Maximum channel idle time (ms). -1 means no limit
rest.client.max-life-time-1Maximum channel lifetime (ms). -1 means no limit
rest.client.read-timeout120000Maximum time to read a response (ms)
rest.client.write-timeout120000Maximum time to write a request (ms)

Health checks

PropertyDefaultDescription
health.check.poll.interval5Seconds between health poll cycles
health.check.poll.initial1Initial delay before first health check (seconds)
health.check.template.timeout5Timeout waiting for a health check response (seconds)
health.check.template.record.timeout30Timeout waiting for a health record response (seconds)

Document storage and paths

PropertyDefaultDescription
temp.files.folder/arender/tmp/Folder for temporary processing files
spring.servlet.multipart.location/arender/tmp/Multipart upload staging folder
authorized.paths../../samples/,../samples/,../../tmp/,../tmpComma-separated list of allowed document paths
authorized.urls(empty)Comma-separated list of allowed document URLs
arender.url.basic.auth(empty)Base64-encoded domain@secret pairs for URL auth, comma-separated

Default document

PropertyDefaultDescription
default.document.path../../samples/arender-en-2019.pdfPath to the default document loaded at startup
default.document.titleARender.pdfTitle of the default document
default.document.idb64_I2RlZmF1bHQ=Fixed ID for the default document
default.document.path.startup.clearfalseClear temporary files on startup

Rejected document

PropertyDefaultDescription
rejected.document.enabledfalseShow a fallback document when a document fails to load
rejected.document.path../../samples/rejected.pdfPath to the fallback document
rejected.document.titleConversion problemTitle shown for the fallback document

PDF features

PropertyDefaultDescription
arender.server.document.pdf.portfolio.enabledfalseDetect PDF Portfolios as composite documents
arender.server.document.pdf.attachments.enabledfalseDetect PDF with attachments as composite documents
arender.flatten.pdf.xfafalseFlatten XFA forms before rendering

Renderer selection

PropertyDefaultDescription
micro-services.pdf-rendererPDFOwlPDF rendering engine: PDFOwl or JNIPdfEngine

Comparison defaults

PropertyDefaultDescription
comparison.default.value.highlight.colorFF0000Default highlight color for differences (hex, no #)
comparison.default.value.lowlight.color(empty)Default lowlight color (empty = no lowlight)
comparison.default.value.fuzz3Default comparison sensitivity

Format routing

PropertyDefaultDescription
arender.format.nativeMimeTypesapplication/pdf,image/tiff,video/mp4,...MIME types that do not need conversion
arender.format.documentExtractorBeanNames.mailExtractorapplication/mbox,...MIME types handled by the mail extractor
arender.format.documentExtractorBeanNames.archiveExtractorapplication/zip,...MIME types handled by the archive extractor
arender.format.conversionTargetMimeTypes.application-pdf(long MIME type list)MIME types to convert to PDF (Office, images, HTML, text, etc.)
arender.format.conversionTargetMimeTypes.video-mp4audio/x-wav,video/quicktime,...MIME types to convert to MP4 video

Microservice memory and JVM

These properties control memory allocation and JVM arguments for each sub-process launched by the broker in standalone mode. They can also be set via environment variables (uppercase, underscore-separated).

PropertyDefaultDescription
arender.conversion.memory1024mHeap size for the document converter sub-process
arender.conversion.jvm.args-Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8JVM arguments for the converter
arender.jnirenderer.memory1024mHeap size for the JNI renderer sub-process
arender.jnirenderer.jvm.args-Djava.net.preferIPv4Stack=true -Djava.library.path=./lib/ -Dfile.encoding=UTF-8JVM arguments for the JNI renderer
arender.pdfbox.memory1024mHeap size for the text handler sub-process
arender.pdfbox.jvm.args-Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8JVM arguments for the text handler
arender.dfs.memory1024mHeap size for the file storage sub-process
arender.dfs.jvm.args-Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8JVM arguments for the file storage

Annotation accessor

PropertyDefaultDescription
arender.external.annotation.accessor.factory.bean.nameannotationAccessorFactoryBean name for the external annotation accessor factory

Provider registry

These properties configure REST providers used by ARender Horizon.

PropertyDefaultDescription
registry.default-providerDefault provider name when X-Provider-ID header is absent
registry.providers.<name>.base-urlBase URL of the provider microservice
registry.providers.<name>.whitelisted-paramsComma-separated parameter names used for document ID generation and request filtering

The whitelisted-params property serves two purposes:

  1. Document ID generation — Only whitelisted parameters are used to generate the internal DocumentId. Two requests with the same whitelisted parameter values are treated as the same document (cache hit).
  2. Security filtering — Only whitelisted parameters are forwarded to the provider. Other parameters from the original request are filtered out.

Environment variable equivalents:

REGISTRY_DEFAULT_PROVIDER=filenet
REGISTRY_PROVIDERS_FILENET_BASE_URL=http://filenet-provider:8787
REGISTRY_PROVIDERS_FILENET_WHITELISTED_PARAMS=objectStoreName,id,vsId,objectType,contentElement
REGISTRY_PROVIDERS_ALFRESCO_BASE_URL=http://alfresco-provider:8788
REGISTRY_PROVIDERS_ALFRESCO_WHITELISTED_PARAMS=nodeRef,alf_ticket,user,versionLabel

Docker/Kubernetes runtime mode

PropertyDefault (Docker)Description
run-mode.kubModetrueUse kube-style service discovery
run-mode.standalonefalseStandalone mode (all services in one JVM)
run-mode.restartEnabledfalseEnable auto-restart of sub-processes
kubeprovider.useLocalhostfalseRegister services as localhost (standalone mode only)

Document Converter

The Document Converter (arender-document-converter) runs on port 19999.

Temporary files

PropertyDefaultDescription
tmp.dir.doc../../tmp/Working directory for conversion output

LibreOffice / soffice

PropertyDefaultDescription
soffice.conversion.timeout120Timeout for soffice conversion (seconds)
soffice.env.user.installation.path../tmp/User installation path for soffice instances
rendition.soffice.pathsofficeExecutable name or path for soffice
rendition.office.options--headless,--convert-tosoffice command-line options

DirectOffice (MSOffice)

PropertyDefaultDescription
msoffice.conversion.timeout120Timeout for MSOffice conversion (seconds)
msoffice.aroms2pdf.startup.timeout10Startup timeout for aroms2pdf (seconds)
excel.maximum.cell.count1000000Maximum Excel cells before falling back from MSOffice
rendition.directoffice.pathdirectofficePath to the DirectOffice executable

Image conversion

PropertyDefaultDescription
image.conversion.timeout45Timeout for image conversion (seconds)
image.conversion.maximum.width.px2000Maximum width (px) for images converted to PDF
image.conversion.target.mime.typeimage/pngOutput MIME type for page images
image.default.min.dpi1Minimum DPI threshold (below this value uses 72 DPI)

ImageMagick

PropertyDefaultDescription
tools.imagemagick.convert.pathmagickImageMagick executable path
tools.imagemagick.options-quality,100,-density,72x72,...ImageMagick command-line options
tools.imagemagick.ignore.resulttrueIgnore non-zero exit codes from ImageMagick
tools.imagemagick.default.extension.formatpngDefault output format

HTML conversion (wkhtmltopdf)

PropertyDefaultDescription
html.conversion.timeout120Timeout for HTML-to-PDF conversion (seconds)
tools.wkhtmltopdf.pathwkhtmltopdfwkhtmltopdf executable path
tools.wkhtmltopdf.options--disable-javascript,...wkhtmltopdf command-line options
tools.wkhtmltopdf.iframe.disabledtrueDisable iframe URL resolution (security)

Video conversion (FFmpeg)

PropertyDefaultDescription
video.conversion.timeout300Timeout for video conversion (seconds)
rendition.avconv.pathffmpegffmpeg executable path
rendition.avprobe.pathffprobeffprobe executable path
tools.ffmpeg.options-vcodec,h264,...ffmpeg command-line options

Text-to-PDF

PropertyDefaultDescription
text.to.pdf.landscapetrueRender text files in landscape orientation
text.to.pdf.font.familyCOURIERFont for text-to-PDF. Values: COURIER, HELVETICA, TIMES_ROMAN, SYMBOL, ZAPFDINGBATS
text.to.pdf.font.size13Font size for text-to-PDF
text.to.pdf.font.file.path(empty)Path to a custom font file. Empty uses the built-in default

PDF flattener

PropertyDefaultDescription
tools.pdf.flattener.pathPDFFormsFlattenerPDF form flattener executable path
tools.pdf.flattener.timeout60Timeout for PDF flattening (seconds)

Fonts

PropertyDefaultDescription
document.font.path../fonts/Fallback font directory for embedded-font substitution
document.font.allowed.extensionsttf,otfAllowed font file extensions
annotation.textual.unicode.font.path(empty)Font path for annotation textual content drawing

Annotation rendering

PropertyDefaultDescription
annotation.date.display.creationDatetrueDisplay creation date on annotations; false displays last modified date
stickyNote.printHeadertruePrint the header on sticky note annotations
redact.deleteTexttrueRemove text in redacted areas; false keeps text searchable/selectable

vCard conversion

PropertyDefaultDescription
vcard.label.languageENLanguage for vCard information fields. Values: FR, EN

PDF quality evaluation

PropertyDefaultDescription
document.evaluate.image.quality.enabledfalseEnable image quality comparison between source and converted PDF/A
document.comparison.pixel.color.distance.enabledtrueUse pixel color distance for comparison; false uses exact pixel equality
document.comparison.pixel.threshold0.5Image quality tolerance threshold (0–1, where 1 = 100% equal)

AFP conversion

PropertyDefaultDescription
arender.afp.executable.pathcpmcopyAFP converter executable path
arender.afp.conversion.timeout.ms120000AFP conversion timeout (ms)
arender.afp.old.profile.path(empty)Profile path for older AFP format
arender.afp.new.profile.path(empty)Profile path for newer AFP format
arender.afp.old.profile.directory.path(empty)Profile directory path for older AFP format
arender.afp.new.profile.directory.path(empty)Profile directory path for newer AFP format
arender.afp.profile.directory.path(empty)Profile directory path for identifying AFP format
arender.afp.font.entries.directory.path(empty)Font directory for generated font entries file
arender.afp.log.directory.path(empty)Log directory for conversion logs

Email conversion

PropertyDefaultDescription
emltopdf.config.header.languageFRLanguage for email header rendering. Values: FR, EN
emltopdf.config.format.dateEEE d MMM yyyy HH:mm:ss ZDate format for email headers
emltopdf.config.time.zone(empty)Timezone for email dates. Empty uses the system timezone
emltopdf.encode.header.with.body.encodingfalseEncode header with body encoding
emltopdf.config.filter.special.characters.regex[^A-zÀ-ú0-9\\s\\-\\.]Regex for characters to filter from filenames. Set empty to disable
emltopdf.config.filter.replacement.character_Replacement character for filtered characters
emltopdf.resize.embedded.image.enabledfalseResize oversized embedded images to fit page width
emltopdf.custom.mail.titleEmailTitle label for converted email documents
emltopdf.custom.mail.title.separator:Separator between title label and subject
emltopdf.custom.mail.attachment.headerMail bodyHeader label for the mail body attachment
emltopdf.custom.mail.display.subject.in.titletrueDisplay the email subject in the document title

Document Renderer (PDFOwl)

The Document Renderer (arender-document-renderer-pdfowl) runs on port 9091.

Network

PropertyDefaultDescription
server.port9091HTTP port
server.address0.0.0.0Bind address

PDFOwl engine

PropertyDefaultDescription
pdfowl.pathlib/pdfowlPath to the PDFOwl binary
pdfowl.client.watchdog10000Timeout for PDFOwl command execution (ms)
pdfowl.client.ttl30000Idle timeout before closing a PDFOwl client (ms)
pdfowl.memlimit.mb1024Memory limit per rendering thread (MB)
pdfowl.recycling.enabletrueRecycle PDFOwl processes in the pool

Health

PropertyDefaultDescription
health.time.interval60000Interval between health self-checks (ms)
health.sample.pathsrc/main/resources/pdfS4mpl3.pdfSample PDF used for health checks

Document Text Handler

The Document Text Handler (arender-document-text-handler) handles text extraction and comparison.

PDF text and signatures

PropertyDefaultDescription
pdf.text.parsing.batch.size10Number of pages processed per text-parsing batch
pdf.search.timeout60Search timeout (seconds)
pdf.search.stream.timeout500Streamed search timeout (ms)
pdf.signatures.enablefalseEnable digital signature validation
PRIVATE_CERT../defaultPathPrivateCertPath to private certificate for signature validation
PUBLIC_CERT../defaultPathPublicCertPath to public certificate
trusted.root.certificates.path../defaultPathRootCertPath to trusted root certificates
PASSWORD_KEYSTOREdefaultPasswordKeystore password
PASSWORD_PRIVATE_CERTdefaultPasswordPrivate certificate password

Comparison

PropertyDefaultDescription
document.comparison.include.diff-fragmentstrueResolve diff fragments for hover popups. Can impact performance on large diffs

Shared metrics settings

All ARender services expose the same Micrometer-based metrics configuration. The properties below apply to the broker, converter, renderer, and text handler.

Prometheus

PropertyDefaultDescription
management.endpoints.web.exposure.includeprometheus,metrics,healthExposed actuator endpoints
management.endpoint.prometheus.accessnonePrometheus endpoint access level. Set to unrestricted to enable
management.endpoint.metrics.accessunrestrictedMetrics endpoint access level

Elasticsearch export

PropertyDefaultDescription
management.elastic.metrics.export.enabledfalseEnable Elasticsearch metrics export
management.elastic.metrics.export.hosthttp://localhost:9200Elasticsearch host
management.elastic.metrics.export.indexarender-micrometer-metricsTarget index
management.elastic.metrics.export.step5mExport interval

Datadog export

PropertyDefaultDescription
management.datadog.metrics.export.enabledfalseEnable Datadog metrics export
management.datadog.metrics.export.api-keyYOUR_KEYDatadog API key
management.datadog.metrics.export.urihttps://app.datadoghq.com/Datadog ingest URL
management.datadog.metrics.export.step5mExport interval

CloudWatch export

PropertyDefaultDescription
management.cloudwatch.metrics.export.enabledfalseEnable CloudWatch metrics export
management.cloudwatch.metrics.export.namespacevariesCloudWatch namespace
management.cloudwatch.metrics.export.regioneu-west-1AWS region
management.cloudwatch.metrics.export.step5mExport interval

ARender endpoint metrics

Each service can export per-endpoint metrics. All are disabled by default. The property pattern is:

arender.endpoint.metrics.export.{endpoint}.enabled=false

Available endpoints: has.document, bookmarks, document.layout, load.document.content, get.file.chunk, text.position, document.annotation, transformation, document.metadata, image, search, advanced.search, load.document, evict, annotation, compare, signature, printable.pdf, convert, health.record.

Additional control properties:

PropertyDefaultDescription
arender.endpoint.metrics.export.whitelist.tagshost,mimeTypeTags included in endpoint metric exports
arender.endpoint.metrics.export.correlation.id.tag.enabledfalseAdd correlation ID as a tag
arender.metric.meter.toolCOUNTERMeter type: COUNTER or TIMER