Stirling-PDF es una sólida herramienta de manipulación de PDF basada en web alojada localmente que utiliza Docker. Le permite realizar diversas operaciones en archivos PDF, incluidas dividir, fusionar, convertir, reorganizar, agregar imágenes, rotar, comprimir y más. Esta aplicación web alojada localmente ha evolucionado para abarcar un conjunto completo de funciones que abordan todos sus requisitos de PDF.
Stirling-PDF no inicia ninguna llamada saliente con fines de mantenimiento de registros o seguimiento.
Todos los archivos y PDF existen exclusivamente en el lado del cliente, residen en la memoria del servidor solo durante la ejecución de la tarea o residen temporalmente en un archivo únicamente para la ejecución de la tarea. Cualquier archivo descargado por el usuario habrá sido eliminado del servidor en ese momento.
Para obtener una descripción general de las tareas y la tecnología que utiliza cada una, consulte Endpoint-groups.md.
Una demostración de la aplicación está disponible aquí.
Para usuarios de Windows, descargue la última versión de Stirling-PDF.exe desde nuestra sección de lanzamientos o haciendo clic aquí.
Consulte la LocalRunGuide.
Nota
https://hub.docker.com/r/stirlingtools/stirling-pdf
Stirling-PDF tiene tres versiones diferentes: una versión completa, una versión ultraligera y una versión "gorda". Dependiendo de los tipos de funciones que utilice, es posible que desee una imagen más pequeña para ahorrar espacio. Para ver qué ofrecen las diferentes versiones, consulte nuestro mapeo de versiones. Para las personas a las que no les importa la optimización del espacio, simplemente utilice la etiqueta más reciente.
Tenga en cuenta que en los ejemplos siguientes es posible que necesite cambiar las rutas de los volúmenes según sea necesario, por ejemplo, ./extraConfigs:/configs
a /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
Nota: Podman es compatible con CLI con Docker, así que simplemente reemplace "docker" por "podman".
Vea el cuadro de mando de Kubernetes aquí
Consulte HowToUseOCR.md.
Ciertas funciones, como Sign
, admiten archivos guardados previamente almacenados en /customFiles/signatures/
. Los archivos de imagen colocados aquí serán accesibles para su uso a través de la interfaz de usuario web. Actualmente, esto admite dos tipos de carpetas:
/customFiles/signatures/ALL_USERS
: Accesible para todos los usuarios, útil para organizaciones donde muchos usuarios usan los mismos archivos o para usuarios que no usan autenticación/customFiles/signatures/{username}
: como /customFiles/signatures/froodle
, accesible solo para el nombre de usuario froodle
, privado para todos los demás ¡Stirling-PDF actualmente admite 36 idiomas!
Idioma | Progreso |
---|---|
Árabe (العربية) (ar_AR) | |
Vasco (Euskara) (eu_ES) | |
Búlgaro (Български) (bg_BG) | |
Catalán (Català) (ca_CA) | |
croata (Hrvatski) (hr_HR) | |
Checo (Česky) (cs_CZ) | |
Danés (Dansk) (da_DK) | |
Holandés (Países Bajos) (nl_NL) | |
Inglés (inglés) (en_GB) | |
Inglés (EE.UU.) (en_US) | |
Francés (Français) (fr_FR) | |
Alemán (Deutsch) (de_DE) | |
Griego (Ελληνικά) (el_GR) | |
Hindi (हिंदी) (hi_IN) | |
Húngaro (magiar) (hu_HU) | |
Indonesio (Bahasa Indonesia) (id_ID) | |
Irlandés (Gaeilge) (ga_IE) | |
italiano (italiano) (it_IT) | |
Japonés (日本語) (ja_JP) | |
Coreano (한국어) (ko_KR) | |
Noruego (Norsk) (no_NB) | |
Polaco (Polski) (pl_PL) | |
Portugués (Português) (pt_PT) | |
Portugués brasileño (Português) (pt_BR) | |
Rumano (Română) (ro_RO) | |
Ruso (Русский) (ru_RU) | |
Alfabeto latino serbio (Srpski) (sr_LATN_RS) | |
Chino simplificado (简体中文) (zh_CN) | |
Eslovaco (esloveno) (sk_SK) | |
Español (Español) (es_ES) | |
Sueco (Svenska) (sv_SE) | |
Tailandés (ไทย) (th_TH) | |
Chino tradicional (繁體中文) (zh_TW) | |
Turco (Türkçe) (tr_TR) | |
Ucraniano (Українська) (uk_UA) | |
Vietnamita (Tiếng Việt) (vi_VN) |
Consulte nuestra Guía de contribución.
Stirling PDF ofrece una edición Enterprise de su software. Este es el mismo excelente software pero con características y comodidades adicionales.
Consulte los documentos que aparecen en él o en nuestro sitio web oficial.
Stirling-PDF permite una fácil personalización de la aplicación, incluyendo cosas como:
Hay dos opciones para esto: usar el archivo de configuración generado settings.yml
, que se encuentra en el directorio /configs
y sigue el formato YAML estándar, o usar variables de entorno, que anularían el archivo de configuración.
Por ejemplo, en settings.yml
, es posible que tengas:
security :
enableLogin : ' true '
Para tener esto a través de una variable de entorno, usaría SECURITY_ENABLELOGIN
.
La lista actual de configuraciones es:
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
Hay un archivo de configuración adicional /configs/custom_settings.yml
donde los usuarios familiarizados con Java y Spring application.properties
pueden ingresar sus propias configuraciones además de las existentes de Stirling-PDF.
ENDPOINTS_TO_REMOVE
y GROUPS_TO_REMOVE
pueden incluir listas de puntos finales y grupos separados por comas para deshabilitar. Por ejemplo, ENDPOINTS_TO_REMOVE=img-to-pdf,remove-pages
deshabilitaría tanto la imagen a pdf como eliminaría páginas, mientras que GROUPS_TO_REMOVE=LibreOffice
deshabilitaría todas las cosas que usan LibreOffice. Puede ver una lista de todos los puntos finales y grupos aquí./customFiles/static/
. Un ejemplo de personalización del logotipo de la aplicación es colocar /customFiles/static/favicon.svg
para anular el SVG actual. Esto se puede utilizar para cambiar cualquier images/icons/css/fonts/js
, etc. en Stirling-PDF.SYSTEM_ROOTURIPATH
: establece el URI raíz de la aplicación (por ejemplo /pdf-app
para configurar el URI raíz en localhost:8080/pdf-app
).SYSTEM_CONNECTIONTIMEOUTMINUTES
: establece valores de tiempo de espera de conexión personalizadosDOCKER_ENABLE_SECURITY
: configúrelo en true
para descargar el archivo jar de seguridad (requerido para iniciar sesión con autenticación)INSTALL_BOOK_AND_ADVANCED_HTML_OPS
: descargue Calibre en Stirling-PDF para habilitar la conversión de PDF hacia/desde un libro y HTML avanzadoLANGS
: defina bibliotecas de fuentes personalizadas para instalar en conversiones de documentos Para aquellos que deseen utilizar la API backend de Stirling-PDF para vincular sus propios scripts personalizados para editar archivos PDF, pueden ver toda la documentación API existente aquí o navegar hasta /swagger-ui/index.html
de su instancia de Stirling-PDF para obtener su versión. documentación (o siguiendo el botón API en la configuración de Stirling-PDF).
./configs
en volumen dentro de Docker para que se conserve durante las actualizaciones.DOCKER_ENABLE_SECURITY
en true
en las variables de entorno.settings.yml
o establezca SECURITY_ENABLE_LOGIN
en true
.admin
y la contraseña stirling
. Al iniciar sesión, se le obligará a cambiar la contraseña por una nueva. También puede utilizar las variables de entorno SECURITY_INITIALLOGIN_USERNAME
y SECURITY_INITIALLOGIN_PASSWORD
para configurar sus propias credenciales de inmediato (se recomienda eliminarlas después de la creación del usuario). Una vez hecho lo anterior, al reiniciar, se mostrará un nuevo stirling-pdf-DB.mv.db
si todo funcionó.
Cuando inicie sesión en Stirling-PDF, será redirigido a la página /login
para iniciar sesión con esas credenciales predeterminadas. Después de iniciar sesión, todo debería funcionar normalmente.
Para acceder a la configuración de su cuenta, vaya a Configuración de la cuenta en el menú de configuración (arriba a la derecha en la barra de navegación). Este menú de Configuración de la cuenta también es donde encontrará su clave API.
Para agregar nuevos usuarios, vaya a la parte inferior de Configuración de la cuenta y presione "Configuración de administrador". Aquí puedes agregar nuevos usuarios. Los diferentes roles mencionados en esto son para limitar la velocidad. Este es un trabajo en progreso y se ampliará más en el futuro.
Para el uso de API, debe proporcionar un encabezado con X-API-Key
y la clave API asociada para ese usuario.
Este es un problema comúnmente causado por la configuración de NGINX. El tamaño de carga de archivos predeterminado para NGINX es 1 MB. Debe agregar lo siguiente en el archivo disponible de sus sitios Nginx: client_max_body_size SIZE;
(donde "TAMAÑO" es 50M, por ejemplo, para archivos de 50MB).
NGINX tiene valores de tiempo de espera de forma predeterminada, por lo que si está ejecutando Stirling-PDF detrás de NGINX, es posible que deba establecer un valor de tiempo de espera, como agregar la configuración proxy_read_timeout 3600;
.