Stirling-PDF ist ein robustes, lokal gehostetes webbasiertes PDF-Manipulationstool mit Docker. Sie können damit verschiedene Vorgänge an PDF-Dateien ausführen, darunter Teilen, Zusammenführen, Konvertieren, Neuorganisieren, Hinzufügen von Bildern, Drehen, Komprimieren und mehr. Diese lokal gehostete Webanwendung verfügt nun über umfassende Funktionen, die alle Ihre PDF-Anforderungen erfüllen.
Stirling-PDF initiiert keine ausgehenden Anrufe zu Aufzeichnungs- oder Nachverfolgungszwecken.
Alle Dateien und PDFs sind entweder ausschließlich auf der Clientseite vorhanden, befinden sich nur während der Aufgabenausführung im Serverspeicher oder befinden sich vorübergehend ausschließlich zur Ausführung der Aufgabe in einer Datei. Alle vom Benutzer heruntergeladenen Dateien werden zu diesem Zeitpunkt vom Server gelöscht.
Eine Übersicht über die Aufgaben und die jeweils verwendete Technologie finden Sie unter Endpoint-groups.md.
Eine Demo der App finden Sie hier.
Für Windows-Benutzer können Sie die neueste Stirling-PDF.exe aus unserem Release-Bereich herunterladen oder hier klicken.
Bitte sehen Sie sich den LocalRunGuide an.
Notiz
https://hub.docker.com/r/stirlingtools/stirling-pdf
Stirling-PDF gibt es in drei verschiedenen Versionen: einer Vollversion, einer Ultra-Lite-Version und einer „Fat“-Version. Abhängig von der Art der von Ihnen verwendeten Funktionen möchten Sie möglicherweise ein kleineres Bild, um Platz zu sparen. Um zu sehen, was die verschiedenen Versionen bieten, schauen Sie sich bitte unsere Versionszuordnung an. Für Leute, denen die Platzoptimierung nichts ausmacht, verwenden Sie einfach das neueste Tag.
Bitte beachten Sie, dass Sie in den Beispielen unten möglicherweise die Volume-Pfade nach Bedarf ändern müssen, z. B. ./extraConfigs:/configs
zu /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
Hinweis: Podman ist CLI-kompatibel mit Docker. Ersetzen Sie daher einfach „Docker“ durch „Podman“.
Sehen Sie sich hier das Kubernetes-Helmdiagramm an
Bitte sehen Sie sich HowToUseOCR.md an.
Bestimmte Funktionen wie Sign
unterstützen vorab gespeicherte Dateien, die unter /customFiles/signatures/
gespeichert sind. Hier platzierte Bilddateien können über die Web-Benutzeroberfläche verwendet werden. Derzeit werden zwei Ordnertypen unterstützt:
/customFiles/signatures/ALL_USERS
: Für alle Benutzer zugänglich, nützlich für Organisationen, in denen viele Benutzer dieselben Dateien verwenden, oder für Benutzer, die keine Authentifizierung verwenden/customFiles/signatures/{username}
: Zum Beispiel /customFiles/signatures/froodle
, zugänglich nur für den froodle
-Benutzernamen, privat für alle anderen Stirling-PDF unterstützt derzeit 36 Sprachen!
Sprache | Fortschritt |
---|---|
Arabisch (العربية) (ar_AR) | |
Baskisch (Euskara) (eu_ES) | |
Bulgarisch (Български) (bg_BG) | |
Katalanisch (Català) (ca_CA) | |
Kroatisch (Hrvatski) (hr_HR) | |
Tschechisch (Česky) (cs_CZ) | |
Dänisch (Dansk) (da_DK) | |
Niederländisch (Nederlands) (nl_NL) | |
Englisch (Englisch) (en_GB) | |
Englisch (USA) (en_US) | |
Französisch (Français) (fr_FR) | |
Deutsch (Deutsch) (de_DE) | |
Griechisch (Ελληνικά) (el_GR) | |
Hindi (हिंदी) (hi_IN) | |
Ungarisch (Magyar) (hu_HU) | |
Indonesisch (Bahasa Indonesia) (id_ID) | |
Irisch (Gaeilge) (ga_IE) | |
Italienisch (Italiano) (it_IT) | |
Japanisch (日本語) (ja_JP) | |
Koreanisch (한국어) (ko_KR) | |
Norwegisch (Norsk) (no_NB) | |
Polnisch (Polski) (pl_PL) | |
Portugiesisch (Português) (pt_PT) | |
Portugiesisch Brasilianisch (Português) (pt_BR) | |
Rumänisch (Română) (ro_RO) | |
Russisch (Русский) (ru_RU) | |
Serbisches lateinisches Alphabet (Srpski) (sr_LATN_RS) | |
Vereinfachtes Chinesisch (简体中文) (zh_CN) | |
Slowakisch (Slovensky) (sk_SK) | |
Spanisch (Español) (es_ES) | |
Schwedisch (Svenska) (sv_SE) | |
Thai (ไทย) (th_TH) | |
Traditionelles Chinesisch (繁體中文) (zh_TW) | |
Türkisch (Türkçe) (tr_TR) | |
Ukrainisch (Українська) (uk_UA) | |
Vietnamesisch (Tiếng Việt) (vi_VN) |
Bitte beachten Sie unseren Beitragsleitfaden.
Stirling PDF bietet eine Enterprise-Edition seiner Software an. Hierbei handelt es sich um dieselbe großartige Software, jedoch mit zusätzlichen Funktionen und Annehmlichkeiten
Schauen Sie sich die Dokumente hier oder auf unserer offiziellen Website an
Stirling-PDF ermöglicht eine einfache Anpassung der App, einschließlich Dinge wie:
Hierfür gibt es zwei Möglichkeiten: entweder die Verwendung der generierten Einstellungsdatei settings.yml
, die sich im Verzeichnis /configs
befindet und der standardmäßigen YAML-Formatierung folgt, oder die Verwendung von Umgebungsvariablen, die die Einstellungsdatei überschreiben würden.
Beispielsweise könnte in settings.yml
Folgendes vorhanden sein:
security :
enableLogin : ' true '
Um dies über eine Umgebungsvariable zu erreichen, würden Sie SECURITY_ENABLELOGIN
verwenden.
Die aktuelle Liste der Einstellungen lautet:
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
Es gibt eine zusätzliche Konfigurationsdatei /configs/custom_settings.yml
, in der Benutzer, die mit Java und Spring application.properties
vertraut sind, ihre eigenen Einstellungen zusätzlich zu den vorhandenen Stirling-PDF-Einstellungen eingeben können.
ENDPOINTS_TO_REMOVE
und GROUPS_TO_REMOVE
durch Kommas getrennte Listen von Endpunkten und Gruppen enthalten, die deaktiviert werden sollen. Beispielsweise würde ENDPOINTS_TO_REMOVE=img-to-pdf,remove-pages
sowohl die Bild-zu-PDF-Datei als auch das Entfernen von Seiten deaktivieren, während GROUPS_TO_REMOVE=LibreOffice
alle Dinge deaktivieren würde, die LibreOffice verwenden. Eine Liste aller Endpunkte und Gruppen finden Sie hier./customFiles/static/
platzieren. Ein Beispiel für die Anpassung des App-Logos ist das Platzieren /customFiles/static/favicon.svg
um das aktuelle SVG zu überschreiben. Dies kann verwendet werden, um alle images/icons/css/fonts/js
usw. in Stirling-PDF zu ändern.SYSTEM_ROOTURIPATH
– Legen Sie den Root-URI der Anwendung fest (z. B. /pdf-app
um den Root-URI auf localhost:8080/pdf-app
zu setzen)SYSTEM_CONNECTIONTIMEOUTMINUTES
– Legen Sie benutzerdefinierte Zeitüberschreitungswerte für Verbindungen festDOCKER_ENABLE_SECURITY
– Auf true
setzen, um das Sicherheits-JAR herunterzuladen (erforderlich für die Authentifizierungsanmeldung)INSTALL_BOOK_AND_ADVANCED_HTML_OPS
– Laden Sie Calibre auf Stirling-PDF herunter, um PDF-zu/aus-Buch- und erweiterte HTML-Konvertierung zu ermöglichenLANGS
– Definieren Sie benutzerdefinierte Schriftartenbibliotheken, die für Dokumentkonvertierungen installiert werden sollen Für diejenigen, die die Backend-API von Stirling-PDF verwenden möchten, um eine Verknüpfung mit ihrem eigenen benutzerdefinierten Skript zum Bearbeiten von PDFs herzustellen, können Sie hier die gesamte vorhandene API-Dokumentation anzeigen oder zu /swagger-ui/index.html
Ihrer Stirling-PDF-Instanz für Ihre Versionen navigieren Dokumentation (oder indem Sie dem API-Button in den Einstellungen von Stirling-PDF folgen).
./configs
in Docker verfügen, damit er bei Aktualisierungen erhalten bleibt.DOCKER_ENABLE_SECURITY
in Umgebungsvariablen auf true
setzen.settings.yml
oder setzen Sie SECURITY_ENABLE_LOGIN
auf true
.admin
und dem Passwort stirling
generiert. Beim Anmelden werden Sie gezwungen, das Passwort in ein neues zu ändern. Sie können auch die Umgebungsvariablen SECURITY_INITIALLOGIN_USERNAME
und SECURITY_INITIALLOGIN_PASSWORD
verwenden, um Ihre eigenen Anmeldeinformationen sofort festzulegen (es wird empfohlen, diese nach der Benutzererstellung zu entfernen). Sobald die oben genannten Schritte ausgeführt wurden, wird beim Neustart eine neue stirling-pdf-DB.mv.db
angezeigt, ob alles funktioniert hat.
Wenn Sie sich bei Stirling-PDF anmelden, werden Sie zur Seite /login
weitergeleitet, wo Sie sich mit diesen Standardanmeldeinformationen anmelden können. Nach der Anmeldung sollte alles wie gewohnt funktionieren.
Um auf Ihre Kontoeinstellungen zuzugreifen, gehen Sie im Zahnradmenü der Einstellungen (oben rechts in der Navigationsleiste) zu „Kontoeinstellungen“. In diesem Menü „Kontoeinstellungen“ finden Sie auch Ihren API-Schlüssel.
Um neue Benutzer hinzuzufügen, gehen Sie zum Ende der Kontoeinstellungen und klicken Sie auf „Administratoreinstellungen“. Hier können Sie neue Benutzer hinzufügen. Die darin genannten verschiedenen Rollen dienen der Ratenbegrenzung. Dies ist noch in Arbeit und wird in Zukunft noch weiter ausgebaut.
Für die API-Nutzung müssen Sie einen Header mit X-API-Key
und dem zugehörigen API-Schlüssel für diesen Benutzer bereitstellen.
Dies ist ein Problem, das häufig durch Ihre NGINX-Konfiguration verursacht wird. Die Standardgröße für den Datei-Upload für NGINX beträgt 1 MB. Sie müssen Folgendes in Ihre Nginx-Sites-verfügbare Datei einfügen: client_max_body_size SIZE;
(wobei „SIZE“ beispielsweise 50 MB für 50 MB-Dateien beträgt).
NGINX verfügt standardmäßig über Timeout-Werte. Wenn Sie also Stirling-PDF hinter NGINX ausführen, müssen Sie möglicherweise einen Timeout-Wert festlegen, z. B. durch Hinzufügen der Konfiguration „ proxy_read_timeout 3600;
.