Stirling-PDF — это надежный локально размещенный веб-инструмент для работы с PDF-файлами с использованием Docker. Он позволяет выполнять различные операции с файлами PDF, включая разделение, слияние, преобразование, реорганизацию, добавление изображений, вращение, сжатие и многое другое. Это локально размещенное веб-приложение было развито и теперь включает в себя полный набор функций, отвечающих всем вашим требованиям к PDF.
Stirling-PDF не инициирует исходящие звонки в целях ведения учета или отслеживания.
Все файлы и PDF-файлы существуют либо исключительно на стороне клиента, либо находятся в памяти сервера только во время выполнения задачи, либо временно находятся в файле исключительно для выполнения задачи. К этому моменту любой файл, загруженный пользователем, будет удален с сервера.
Для обзора задач и технологий, которые использует каждая из них, посетите Endpoint-groups.md.
Демо-версия приложения доступна здесь.
Для пользователей Windows загрузите последнюю версию Stirling-PDF.exe из нашего раздела выпусков или нажав здесь.
Пожалуйста, просмотрите LocalRunGuide.
Примечание
https://hub.docker.com/r/stirlingtools/stirling-pdf
Stirling-PDF имеет три разные версии: полную версию, ультра-облегченную версию и «толстую» версию. В зависимости от типов используемых вами функций вам может потребоваться изображение меньшего размера, чтобы сэкономить место. Чтобы узнать, что предлагают различные версии, просмотрите наше сопоставление версий. Для людей, которые не против оптимизации пространства, просто используйте последний тег.
Обратите внимание, что в приведенных ниже примерах вам может потребоваться изменить пути к томам по мере необходимости, например, с ./extraConfigs:/configs
на /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
Примечание. Podman совместим с Docker через CLI, поэтому просто замените «docker» на «podman».
См. диаграмму управления Kubernetes здесь.
Пожалуйста, просмотрите HowToUseOCR.md.
Некоторые функции, такие как Sign
, поддерживают предварительно сохраненные файлы, хранящиеся в /customFiles/signatures/
. Размещенные здесь файлы изображений будут доступны для использования через веб-интерфейс. В настоящее время поддерживается два типа папок:
/customFiles/signatures/ALL_USERS
: доступно всем пользователям, полезно для организаций, где многие пользователи используют одни и те же файлы, или для пользователей, не использующих аутентификацию./customFiles/signatures/{username}
: например, /customFiles/signatures/froodle
, доступный только для имени пользователя froodle
, личный для всех остальных. Stirling-PDF в настоящее время поддерживает 36 языков!
Язык | Прогресс |
---|---|
Арабский (العربية) (ar_AR) | |
Баскский (Эускара) (eu_ES) | |
Болгарский (Български) (bg_BG) | |
Каталанский (Català) (ca_CA) | |
Хорватский (Хрватский) (hr_HR) | |
Чешский (Česky) (cs_CZ) | |
Датский (Dansk) (da_DK) | |
Голландский (Нидерланды) (nl_NL) | |
Английский (Английский) (en_GB) | |
Английский (США) (en_US) | |
Французский (Français) (fr_FR) | |
Немецкий (Deutsch) (de_DE) | |
Греческий (Ελληνικά) (el_GR) | |
Хинди (हिंदी) (hi_IN) | |
Венгерский (мадьярский) (hu_HU) | |
Индонезийский (бахаса Индонезия) (id_ID) | |
Ирландский (Gaeilge) (ga_IE) | |
Итальянский (Italiano) (it_IT) | |
Японский (日本語) (ja_JP) | |
Корейский (한국어) (ko_KR) | |
Норвежский (Norsk) (no_NB) | |
Польский (Polski) (pl_PL) | |
Португальский (Português) (pt_PT) | |
Португальский бразильский (Português) (pt_BR) | |
Румынский (Română) (ro_RO) | |
Русский (Русский) (ru_RU) | |
Сербский латинский алфавит (Srpski) (sr_LATN_RS) | |
Упрощенный китайский (简体中文) (zh_CN) | |
Словацкий (Словенский) (sk_SK) | |
Испанский (Español) (es_ES) | |
Шведский (Свенска) (sv_SE) | |
Тайский (ไทย) (th_TH) | |
Традиционный китайский (繁體中文) (zh_TW) | |
Турецкий (Türkçe) (tr_TR) | |
Украинский (Українська) (uk_UA) | |
Вьетнамский (Tiếng Việt) (vi_VN) |
Пожалуйста, ознакомьтесь с нашим Руководством для участников.
Stirling PDF предлагает версию своего программного обеспечения Enterprise. Это то же самое великолепное программное обеспечение, но с дополнительными функциями и удобствами.
Ознакомьтесь с документацией на нем или на нашем официальном сайте.
Stirling-PDF позволяет легко настраивать приложение, включая такие функции, как:
Для этого есть два варианта: либо использовать сгенерированный файл настроек settings.yml
, который находится в каталоге /configs
и соответствует стандартному форматированию YAML, либо использовать переменные среды, которые переопределяют файл настроек.
Например, в settings.yml
у вас может быть:
security :
enableLogin : ' true '
Чтобы сделать это через переменную среды, вы должны использовать SECURITY_ENABLELOGIN
.
Текущий список настроек:
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
Существует дополнительный файл конфигурации /configs/custom_settings.yml
, в котором пользователи, знакомые с Java и Spring application.properties
могут вводить свои собственные настройки поверх существующих в Stirling-PDF.
ENDPOINTS_TO_REMOVE
и GROUPS_TO_REMOVE
могут включать разделенные запятыми списки конечных точек и групп, которые нужно отключить. Например, ENDPOINTS_TO_REMOVE=img-to-pdf,remove-pages
отключит как преобразование изображения в PDF, так и удаление страниц, а GROUPS_TO_REMOVE=LibreOffice
отключит все, что использует LibreOffice. Здесь вы можете увидеть список всех конечных точек и групп./customFiles/static/
. Примером настройки логотипа приложения является размещение /customFiles/static/favicon.svg
для переопределения текущего SVG. Это можно использовать для изменения любых images/icons/css/fonts/js
и т. д. в Stirling-PDF.SYSTEM_ROOTURIPATH
— установите корневой URI приложения (например /pdf-app
, чтобы установить корневой URI на localhost:8080/pdf-app
).SYSTEM_CONNECTIONTIMEOUTMINUTES
— установка пользовательских значений таймаута соединения.DOCKER_ENABLE_SECURITY
— установите значение true
для загрузки jar-файла безопасности (требуется для входа в систему с аутентификацией)INSTALL_BOOK_AND_ADVANCED_HTML_OPS
— загрузите Caliber в Stirling-PDF, чтобы включить PDF в/из книги и расширенное преобразование HTML.LANGS
— определение пользовательских библиотек шрифтов для установки для преобразования документов. Те, кто хочет использовать внутренний API Stirling-PDF для связи со своими собственными сценариями для редактирования PDF-файлов, могут просмотреть всю существующую документацию по API здесь или перейти к /swagger-ui/index.html
вашего экземпляра Stirling-PDF для вашей версии. документации (или нажав кнопку API в настройках Stirling-PDF).
./configs
в Docker, чтобы она сохранялась во время обновлений.DOCKER_ENABLE_SECURITY
значение true
в переменных среды.settings.yml
, либо установите для SECURITY_ENABLE_LOGIN
значение true
.admin
и паролем stirling
. При входе вам будет предложено сменить пароль на новый. Вы также можете использовать переменные среды SECURITY_INITIALLOGIN_USERNAME
и SECURITY_INITIALLOGIN_PASSWORD
, чтобы сразу установить свои собственные учетные данные (рекомендуется удалить их после создания пользователя). После того, как все вышеперечисленное будет сделано, при перезапуске новый stirling-pdf-DB.mv.db
покажет, все ли работает.
При входе в Stirling-PDF вы будете перенаправлены на страницу /login
для входа с учетными данными по умолчанию. После входа в систему все должно работать как обычно.
Чтобы получить доступ к настройкам вашей учетной записи, перейдите в «Настройки учетной записи» в шестеренке настроек (вверху справа на панели навигации). В этом меню настроек учетной записи вы также найдете свой ключ API.
Чтобы добавить новых пользователей, перейдите в нижнюю часть настроек учетной записи и нажмите «Настройки администратора». Здесь вы можете добавлять новых пользователей. Различные роли, упомянутые здесь, предназначены для ограничения скорости. Эта работа находится в стадии разработки и в будущем будет расширена.
Для использования API вы должны предоставить заголовок с X-API-Key
и связанный ключ API для этого пользователя.
Эта проблема обычно возникает из-за вашей конфигурации NGINX. Размер загружаемого файла по умолчанию для NGINX составляет 1 МБ. Вам необходимо добавить следующее в файл, доступный для сайтов Nginx: client_max_body_size SIZE;
(где «РАЗМЕР» равен 50 МБ, например, для файлов размером 50 МБ).
NGINX имеет значения таймаута по умолчанию, поэтому, если вы используете Stirling-PDF позади NGINX, вам может потребоваться установить значение таймаута, например, добавив конфигурацию proxy_read_timeout 3600;
.