Stirling-PDF est un outil de manipulation de PDF Web robuste et hébergé localement utilisant Docker. Il vous permet d'effectuer diverses opérations sur des fichiers PDF, notamment le fractionnement, la fusion, la conversion, la réorganisation, l'ajout d'images, la rotation, la compression, etc. Cette application Web hébergée localement a évolué pour englober un ensemble complet de fonctionnalités, répondant à tous vos besoins PDF.
Stirling-PDF n'initie aucun appel sortant à des fins de tenue de registres ou de suivi.
Tous les fichiers et PDF existent exclusivement côté client, résident dans la mémoire du serveur uniquement pendant l'exécution de la tâche ou résident temporairement dans un fichier uniquement pour l'exécution de la tâche. Tout fichier téléchargé par l'utilisateur aura alors été supprimé du serveur.
Pour un aperçu des tâches et de la technologie que chacune utilise, veuillez consulter Endpoint-groups.md.
Une démo de l'application est disponible ici.
Pour les utilisateurs Windows, téléchargez la dernière version de Stirling-PDF.exe depuis notre section des versions ou en cliquant ici.
Veuillez consulter le LocalRunGuide.
Note
https://hub.docker.com/r/stirlingtools/stirling-pdf
Stirling-PDF a trois versions différentes : une version complète, une version ultra-légère et une version « grasse ». Selon les types de fonctionnalités que vous utilisez, vous souhaiterez peut-être une image plus petite pour économiser de l'espace. Pour voir ce que proposent les différentes versions, veuillez consulter notre mappage de versions. Pour les personnes qui ne craignent pas l’optimisation de l’espace, utilisez simplement la dernière balise.
Veuillez noter que dans les exemples ci-dessous, vous devrez peut-être modifier les chemins de volume selon vos besoins, par exemple, ./extraConfigs:/configs
en /opt/stirlingpdf/extraConfigs:/configs
.
docker run -d
-p 8080:8080
-v ./trainingData:/usr/share/tessdata
-v ./extraConfigs:/configs
-v ./logs:/logs
# Optional customization (not required)
# -v /location/of/customFiles:/customFiles
-e DOCKER_ENABLE_SECURITY=false
-e INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false
-e LANGS=en_GB
--name stirling-pdf
stirlingtools/stirling-pdf:latest
version : ' 3.3 '
services :
stirling-pdf :
image : stirlingtools/stirling-pdf:latest
ports :
- ' 8080:8080 '
volumes :
- ./trainingData:/usr/share/tessdata # Required for extra OCR languages
- ./extraConfigs:/configs
# - ./customFiles:/customFiles/
# - ./logs:/logs/
environment :
- DOCKER_ENABLE_SECURITY=false
- INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false
- LANGS=en_GB
Remarque : Podman est compatible CLI avec Docker, remplacez donc simplement « docker » par « podman ».
Voir le tableau de bord Kubernetes ici
Veuillez consulter le HowToUseOCR.md.
Certaines fonctionnalités telles que Sign
prennent en charge les fichiers pré-enregistrés stockés dans /customFiles/signatures/
. Les fichiers image placés ici seront accessibles pour être utilisés via l’interface utilisateur Web. Actuellement, cela prend en charge deux types de dossiers :
/customFiles/signatures/ALL_USERS
: Accessible à tous les utilisateurs, utile pour les organisations où de nombreux utilisateurs utilisent les mêmes fichiers ou pour les utilisateurs n'utilisant pas d'authentification/customFiles/signatures/{username}
: Tel que /customFiles/signatures/froodle
, accessible uniquement au nom d'utilisateur froodle
, privé pour tous les autres Stirling-PDF prend actuellement en charge 36 langues !
Langue | Progrès |
---|---|
Arabe (العربية) (ar_AR) | |
Basque (euskara) (eu_ES) | |
Bulgare (Български) (bg_BG) | |
Catalan (Català) (ca_CA) | |
Croate (Hrvatski) (hr_HR) | |
Tchèque (Česky) (cs_CZ) | |
Danois (Dansk) (da_DK) | |
Néerlandais (Pays-Bas) (nl_NL) | |
Anglais (anglais) (en_GB) | |
Anglais (États-Unis) (en_US) | |
Français (Français) (fr_FR) | |
Allemand (Deutsch) (de_DE) | |
Grec (Ελληνικά) (el_GR) | |
Hindi (हिंदी) (hi_IN) | |
Hongrois (Magyar) (hu_HU) | |
Indonésien (Bahasa Indonesia) (id_ID) | |
Irlandais (Gaeilge) (ga_IE) | |
Italien (Italiano) (it_IT) | |
Japonais (日本語) (ja_JP) | |
Coréen (한국어) (ko_KR) | |
Norvégien (Norsk) (no_NB) | |
Polonais (Polski) (pl_PL) | |
Portugais (Português) (pt_PT) | |
Portugais brésilien (Português) (pt_BR) | |
Roumain (Română) (ro_RO) | |
Russe (Русский) (ru_RU) | |
Alphabet latin serbe (Srpski) (sr_LATN_RS) | |
Chinois simplifié (简体中文) (zh_CN) | |
Slovaque (Slovensky) (sk_SK) | |
Espagnol (Español) (es_ES) | |
Suédois (Svenska) (sv_SE) | |
Thaï (ไทย) (th_TH) | |
Chinois traditionnel (繁體中文) (zh_TW) | |
Turc (Türkçe) (tr_TR) | |
Ukrainien (Українська) (uk_UA) | |
Vietnamien (Tiếng Việt) (vi_VN) |
Veuillez consulter notre Guide de contribution.
Stirling PDF propose une édition Entreprise de son logiciel. Il s'agit du même excellent logiciel mais avec des fonctionnalités et un confort supplémentaires.
Consultez les documents sur celui-ci ou sur notre site officiel
Stirling-PDF permet une personnalisation facile de l'application, notamment :
Il existe deux options pour cela, soit en utilisant le fichier de paramètres généré settings.yml
, qui se trouve dans le répertoire /configs
et suit le formatage YAML standard, soit en utilisant des variables d'environnement, qui remplaceraient le fichier de paramètres.
Par exemple, dans settings.yml
, vous pourriez avoir :
security :
enableLogin : ' true '
Pour avoir cela via une variable d'environnement, vous utiliserez SECURITY_ENABLELOGIN
.
La liste actuelle des paramètres est :
security :
enableLogin : false # set to 'true' to enable login
csrfDisabled : true # set to 'true' to disable CSRF protection (not recommended for production)
loginAttemptCount : 5 # lock user account after 5 tries; when using e.g. Fail2Ban you can deactivate the function with -1
loginResetTimeMinutes : 120 # lock account for 2 hours after x attempts
loginMethod : all # 'all' (Login Username/Password and OAuth2[must be enabled and configured]), 'normal'(only Login with Username/Password) or 'oauth2'(only Login with OAuth2)
initialLogin :
username : ' ' # initial username for the first login
password : ' ' # initial password for the first login
oauth2 :
enabled : false # set to 'true' to enable login (Note: enableLogin must also be 'true' for this to work)
client :
keycloak :
issuer : ' ' # URL of the Keycloak realm's OpenID Connect Discovery endpoint
clientId : ' ' # client ID for Keycloak OAuth2
clientSecret : ' ' # client secret for Keycloak OAuth2
scopes : openid, profile, email # scopes for Keycloak OAuth2
useAsUsername : preferred_username # field to use as the username for Keycloak OAuth2
google :
clientId : ' ' # client ID for Google OAuth2
clientSecret : ' ' # client secret for Google OAuth2
scopes : https://www.googleapis.com/auth/userinfo.email, https://www.googleapis.com/auth/userinfo.profile # scopes for Google OAuth2
useAsUsername : email # field to use as the username for Google OAuth2
github :
clientId : ' ' # client ID for GitHub OAuth2
clientSecret : ' ' # client secret for GitHub OAuth2
scopes : read:user # scope for GitHub OAuth2
useAsUsername : login # field to use as the username for GitHub OAuth2
issuer : ' ' # set to any provider that supports OpenID Connect Discovery (/.well-known/openid-configuration) endpoint
clientId : ' ' # client ID from your provider
clientSecret : ' ' # client secret from your provider
autoCreateUser : false # set to 'true' to allow auto-creation of non-existing users
blockRegistration : false # set to 'true' to deny login with SSO without prior registration by an admin
useAsUsername : email # default is 'email'; custom fields can be used as the username
scopes : openid, profile, email # specify the scopes for which the application will request permissions
provider : google # set this to your OAuth provider's name, e.g., 'google' or 'keycloak'
saml2 :
enabled : false # currently in alpha, not recommended for use yet, enableAlphaFunctionality must be set to true
autoCreateUser : false # set to 'true' to allow auto-creation of non-existing users
blockRegistration : false # set to 'true' to deny login with SSO without prior registration by an admin
registrationId : stirling
idpMetadataUri : https://dev-XXXXXXXX.okta.com/app/externalKey/sso/saml/metadata
idpSingleLogoutUrl : https://dev-XXXXXXXX.okta.com/app/dev-XXXXXXXX_stirlingpdf_1/externalKey/slo/saml
idpSingleLoginUrl : https://dev-XXXXXXXX.okta.com/app/dev-XXXXXXXX_stirlingpdf_1/externalKey/sso/saml
idpIssuer : http://www.okta.com/externalKey
idpCert : classpath:okta.crt
privateKey : classpath:saml-private-key.key
spCert : classpath:saml-public-cert.crt
enterpriseEdition :
enabled : false # set to 'true' to enable enterprise edition
key : 00000000-0000-0000-0000-000000000000
CustomMetadata :
autoUpdateMetadata : false # set to 'true' to automatically update metadata with below values
author : username # supports text such as 'John Doe' or types such as username to autopopulate with user's username
creator : Stirling-PDF # supports text such as 'Company-PDF'
producer : Stirling-PDF # supports text such as 'Company-PDF'
legal :
termsAndConditions : https://www.stirlingpdf.com/terms-and-conditions # URL to the terms and conditions of your application (e.g. https://example.com/terms). Empty string to disable or filename to load from local file in static folder
privacyPolicy : https://www.stirlingpdf.com/privacy-policy # URL to the privacy policy of your application (e.g. https://example.com/privacy). Empty string to disable or filename to load from local file in static folder
accessibilityStatement : ' ' # URL to the accessibility statement of your application (e.g. https://example.com/accessibility). Empty string to disable or filename to load from local file in static folder
cookiePolicy : ' ' # URL to the cookie policy of your application (e.g. https://example.com/cookie). Empty string to disable or filename to load from local file in static folder
impressum : ' ' # URL to the impressum of your application (e.g. https://example.com/impressum). Empty string to disable or filename to load from local file in static folder
system :
defaultLocale : en-US # set the default language (e.g. 'de-DE', 'fr-FR', etc)
googlevisibility : false # 'true' to allow Google visibility (via robots.txt), 'false' to disallow
enableAlphaFunctionality : false # set to enable functionality which might need more testing before it fully goes live (this feature might make no changes)
showUpdate : false # see when a new update is available
showUpdateOnlyAdmin : false # only admins can see when a new update is available, depending on showUpdate it must be set to 'true'
customHTMLFiles : false # enable to have files placed in /customFiles/templates override the existing template HTML files
tessdataDir : /usr/share/tessdata # path to the directory containing the Tessdata files. This setting is relevant for Windows systems. For Windows users, this path should be adjusted to point to the appropriate directory where the Tessdata files are stored.
enableAnalytics : undefined # set to 'true' to enable analytics, set to 'false' to disable analytics; for enterprise users, this is set to true
ui :
appName : ' ' # application's visible name
homeDescription : ' ' # short description or tagline shown on the homepage
appNameNavbar : ' ' # name displayed on the navigation bar
endpoints :
toRemove : [] # list endpoints to disable (e.g. ['img-to-pdf', 'remove-pages'])
groupsToRemove : [] # list groups to disable (e.g. ['LibreOffice'])
metrics :
enabled : true # 'true' to enable Info APIs (`/api/*`) endpoints, 'false' to disable
# Automatically Generated Settings (Do Not Edit Directly)
AutomaticallyGenerated :
key : example
UUID : example
Il existe un fichier de configuration supplémentaire /configs/custom_settings.yml
dans lequel les utilisateurs familiers avec Java et Spring application.properties
peuvent saisir leurs propres paramètres en plus de ceux existants de Stirling-PDF.
ENDPOINTS_TO_REMOVE
et GROUPS_TO_REMOVE
peuvent inclure des listes de points de terminaison et de groupes séparés par des virgules à désactiver. Par exemple, ENDPOINTS_TO_REMOVE=img-to-pdf,remove-pages
désactiverait à la fois l'image en pdf et supprimerait des pages, tandis que GROUPS_TO_REMOVE=LibreOffice
désactiverait tout ce qui utilise LibreOffice. Vous pouvez voir une liste de tous les points de terminaison et groupes ici./customFiles/static/
. Un exemple de personnalisation du logo de l'application consiste à placer /customFiles/static/favicon.svg
pour remplacer le SVG actuel. Cela peut être utilisé pour modifier les images/icons/css/fonts/js
, etc. dans Stirling-PDF.SYSTEM_ROOTURIPATH
- Définissez l'URI racine de l'application (par exemple /pdf-app
pour définir l'URI racine sur localhost:8080/pdf-app
)SYSTEM_CONNECTIONTIMEOUTMINUTES
- Définir des valeurs de délai d'expiration de connexion personnaliséesDOCKER_ENABLE_SECURITY
- défini sur true
pour télécharger le fichier jar de sécurité (obligatoire pour la connexion par authentification)INSTALL_BOOK_AND_ADVANCED_HTML_OPS
- Téléchargez Calibre sur Stirling-PDF pour activer le PDF vers/depuis un livre et la conversion HTML avancéeLANGS
- Définir des bibliothèques de polices personnalisées à installer pour les conversions de documents Pour ceux qui souhaitent utiliser l'API backend de Stirling-PDF pour établir un lien avec leur propre script personnalisé afin de modifier des PDF, vous pouvez consulter toute la documentation de l'API existante ici, ou accéder à /swagger-ui/index.html
de votre instance Stirling-PDF pour connaître votre version. documentation (ou en suivant le bouton API dans les paramètres de Stirling-PDF).
./configs
volumineux dans Docker afin qu'il soit conservé lors des mises à jour.DOCKER_ENABLE_SECURITY
sur true
dans les variables d'environnement.settings.yml
ou définissez SECURITY_ENABLE_LOGIN
sur true
.admin
et le mot de passe stirling
. Lors de la connexion, vous serez obligé de changer le mot de passe par un nouveau. Vous pouvez également utiliser les variables d'environnement SECURITY_INITIALLOGIN_USERNAME
et SECURITY_INITIALLOGIN_PASSWORD
pour définir immédiatement vos propres informations d'identification (il est recommandé de les supprimer après la création de l'utilisateur). Une fois ce qui précède effectué, au redémarrage, un nouveau stirling-pdf-DB.mv.db
indiquera si tout a fonctionné.
Lorsque vous vous connectez à Stirling-PDF, vous serez redirigé vers la page /login
pour vous connecter avec ces informations d'identification par défaut. Après la connexion, tout devrait fonctionner normalement.
Pour accéder aux paramètres de votre compte, accédez à Paramètres du compte dans le menu à engrenages des paramètres (en haut à droite dans la barre de navigation). Ce menu Paramètres du compte est également l'endroit où vous trouvez votre clé API.
Pour ajouter de nouveaux utilisateurs, allez au bas des paramètres du compte et cliquez sur « Paramètres administrateur ». Ici, vous pouvez ajouter de nouveaux utilisateurs. Les différents rôles mentionnés ici concernent la limitation du débit. Il s'agit d'un travail en cours et qui sera développé davantage à l'avenir.
Pour l'utilisation de l'API, vous devez fournir un en-tête avec X-API-Key
et la clé API associée pour cet utilisateur.
Il s'agit d'un problème généralement causé par votre configuration NGINX. La taille de téléchargement de fichier par défaut pour NGINX est de 1 Mo. Vous devez ajouter les éléments suivants dans le fichier disponible sur vos sites Nginx : client_max_body_size SIZE;
(où "TAILLE" vaut 50 Mo par exemple pour des fichiers de 50 Mo).
NGINX a des valeurs de délai d'attente par défaut, donc si vous exécutez Stirling-PDF derrière NGINX, vous devrez peut-être définir une valeur de délai d'attente, par exemple en ajoutant la configuration proxy_read_timeout 3600;
.