Stirling-PDF é uma ferramenta robusta de manipulação de PDF baseada na web, hospedada localmente, usando Docker. Ele permite realizar diversas operações em arquivos PDF, incluindo dividir, mesclar, converter, reorganizar, adicionar imagens, girar, compactar e muito mais. Este aplicativo da web hospedado localmente evoluiu para abranger um conjunto abrangente de recursos, atendendo a todos os seus requisitos de PDF.
Stirling-PDF não inicia nenhuma chamada para fins de manutenção de registros ou rastreamento.
Todos os arquivos e PDFs existem exclusivamente no lado do cliente, residem na memória do servidor apenas durante a execução da tarefa ou residem temporariamente em um arquivo apenas para a execução da tarefa. Qualquer arquivo baixado pelo usuário terá sido excluído do servidor nesse ponto.
Para uma visão geral das tarefas e da tecnologia que cada uma usa, consulte Endpoint-groups.md.
Uma demonstração do aplicativo está disponível aqui.
Para usuários do Windows, baixe o Stirling-PDF.exe mais recente em nossa seção de lançamento ou clicando aqui.
Por favor, consulte o LocalRunGuide.
Observação
https://hub.docker.com/r/stirlingtools/stirling-pdf
Stirling-PDF tem três versões diferentes: uma versão completa, uma versão ultraleve e uma versão 'gorda'. Dependendo dos tipos de recursos que você usa, você pode querer uma imagem menor para economizar espaço. Para ver o que as diferentes versões oferecem, consulte nosso mapeamento de versões. Para quem não se importa com a otimização do espaço, basta usar a tag mais recente.
Observe nos exemplos abaixo que pode ser necessário alterar os caminhos do volume conforme necessário, por exemplo, ./extraConfigs:/configs
para /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 é compatível com CLI com Docker, então simplesmente substitua “docker” por “podman”.
Veja o gráfico do leme do Kubernetes aqui
Por favor, veja o HowToUseOCR.md.
Certas funcionalidades como Sign
suportam arquivos pré-salvos armazenados em /customFiles/signatures/
. Os arquivos de imagem colocados aqui estarão acessíveis para uso por meio da interface da web. Atualmente, isso oferece suporte a dois tipos de pasta:
/customFiles/signatures/ALL_USERS
: Acessível a todos os usuários, útil para organizações onde muitos usuários usam os mesmos arquivos ou para usuários que não usam autenticação/customFiles/signatures/{username}
: Como /customFiles/signatures/froodle
, acessível apenas para o nome de usuário froodle
, privado para todos os outros Stirling-PDF atualmente suporta 36 idiomas!
Linguagem | Progresso |
---|---|
Árabe (العربية) (ar_AR) | |
Basco (Euskara) (eu_ES) | |
Búlgaro (Български) (bg_BG) | |
Catalão (Català) (ca_CA) | |
Croata (Hrvatski) (hr_HR) | |
Tcheco (Česky) (cs_CZ) | |
Dinamarquês (Dansk) (da_DK) | |
Holandês (Holanda) (nl_NL) | |
Inglês (Inglês) (en_GB) | |
Inglês (EUA) (en_US) | |
Francês (Français) (fr_FR) | |
Alemão (Alemão) (de_DE) | |
Grego (Ελληνικά) (el_GR) | |
Hindi (हिंदी) (hi_IN) | |
Húngaro (magiar) (hu_HU) | |
Indonésio (Bahasa Indonésia) (id_ID) | |
Irlandês (gaélico) (ga_IE) | |
Italiano (Italiano) (it_IT) | |
Japonês (日本語) (ja_JP) | |
Coreano (한국어) (ko_KR) | |
Norueguês (Norsk) (no_NB) | |
Polonês (polaco) (pl_PL) | |
Português (Português) (pt_PT) | |
Português Brasileiro (Português) (pt_BR) | |
Romeno (Română) (ro_RO) | |
Russo (Русский) (ru_RU) | |
Alfabeto latino sérvio (Srpski) (sr_LATN_RS) | |
Chinês simplificado (简体中文) (zh_CN) | |
Eslovaco (esloveno) (sk_SK) | |
Espanhol (Español) (es_ES) | |
Sueco (Svenska) (sv_SE) | |
Tailandês (ไทย) (th_TH) | |
Chinês Tradicional (繁體中文) (zh_TW) | |
Turco (Türkçe) (tr_TR) | |
Ucraniano (Українська) (uk_UA) | |
Vietnamita (Tiếng Việt) (vi_VN) |
Consulte nosso Guia de contribuição.
Stirling PDF oferece uma edição Enterprise de seu software. Este é o mesmo excelente software, mas com recursos e confortos adicionais
Confira os documentos sobre ele ou nosso site oficial
Stirling-PDF permite fácil personalização do aplicativo, incluindo coisas como:
Existem duas opções para isso, usando o arquivo de configurações gerado settings.yml
, que está localizado no diretório /configs
e segue a formatação YAML padrão, ou usando variáveis de ambiente, que substituiriam o arquivo de configurações.
Por exemplo, em settings.yml
, você pode ter:
security :
enableLogin : ' true '
Para fazer isso por meio de uma variável de ambiente, você usaria SECURITY_ENABLELOGIN
.
A lista atual de configuraçõ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
Há um arquivo de configuração adicional /configs/custom_settings.yml
onde usuários familiarizados com Java e Spring application.properties
podem inserir suas próprias configurações além das existentes no Stirling-PDF.
ENDPOINTS_TO_REMOVE
e GROUPS_TO_REMOVE
podem incluir listas separadas por vírgula de endpoints e grupos para desabilitar. Por exemplo, ENDPOINTS_TO_REMOVE=img-to-pdf,remove-pages
desabilitaria tanto a imagem para pdf quanto removeria páginas, enquanto GROUPS_TO_REMOVE=LibreOffice
desabilitaria todas as coisas que usam o LibreOffice. Você pode ver uma lista de todos os endpoints e grupos aqui./customFiles/static/
. Um exemplo de personalização do logotipo do aplicativo é colocar /customFiles/static/favicon.svg
para substituir o SVG atual. Isso pode ser usado para alterar quaisquer images/icons/css/fonts/js
, etc. em Stirling-PDF.SYSTEM_ROOTURIPATH
- Defina o URI raiz do aplicativo (por exemplo, /pdf-app
para definir o URI raiz como localhost:8080/pdf-app
)SYSTEM_CONNECTIONTIMEOUTMINUTES
– Definir valores de tempo limite de conexão personalizadosDOCKER_ENABLE_SECURITY
- Defina como true
para baixar o jar de segurança (obrigatório para login de autenticação)INSTALL_BOOK_AND_ADVANCED_HTML_OPS
- Baixe o Calibre em Stirling-PDF para ativar PDF de/para livro e conversão avançada de HTMLLANGS
- Defina bibliotecas de fontes personalizadas para instalar para conversões de documentos Para aqueles que desejam usar a API de back-end do Stirling-PDF para vincular seus próprios scripts personalizados para editar PDFs, você pode visualizar toda a documentação da API existente aqui ou navegar até /swagger-ui/index.html
da sua instância Stirling-PDF para sua versão. documentação (ou seguindo o botão API nas configurações do Stirling-PDF).
./configs
ampliada no Docker para que seja retida durante as atualizações.DOCKER_ENABLE_SECURITY
como true
nas variáveis de ambiente.settings.yml
ou defina SECURITY_ENABLE_LOGIN
como true
.admin
e senha stirling
. Ao fazer login, você será forçado a alterar a senha para uma nova. Você também pode usar as variáveis de ambiente SECURITY_INITIALLOGIN_USERNAME
e SECURITY_INITIALLOGIN_PASSWORD
para definir suas próprias credenciais imediatamente (recomendado removê-las após a criação do usuário). Feito o procedimento acima, ao reiniciar, um novo stirling-pdf-DB.mv.db
mostrará se tudo funcionou.
Ao fazer login no Stirling-PDF, você será redirecionado para a página /login
para fazer login com essas credenciais padrão. Após o login, tudo deverá funcionar normalmente.
Para acessar as configurações da sua conta, vá para Configurações da conta no menu de configurações (canto superior direito da barra de navegação). Este menu Configurações da conta também é onde você encontra sua chave API.
Para adicionar novos usuários, vá até a parte inferior das Configurações da conta e clique em ‘Configurações de administrador’. Aqui você pode adicionar novos usuários. As diferentes funções mencionadas aqui são para limitação de taxa. Este é um trabalho em andamento e será expandido ainda mais no futuro.
Para uso da API, você deve fornecer um cabeçalho com X-API-Key
e a chave de API associada para esse usuário.
Este é um problema comumente causado pela configuração do NGINX. O tamanho padrão de upload de arquivo para NGINX é 1 MB. Você precisa adicionar o seguinte no arquivo disponível para sites Nginx: client_max_body_size SIZE;
(onde "SIZE" é 50M, por exemplo, para arquivos de 50MB).
O NGINX tem valores de tempo limite por padrão, portanto, se você estiver executando o Stirling-PDF atrás do NGINX, pode ser necessário definir um valor de tempo limite, como adicionar a configuração proxy_read_timeout 3600;
.