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 متوافق مع CLI مع Docker، لذلك ببساطة استبدل "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) | |
البلغارية (Бълgarски) (bg_BG) | |
الكاتالونية (كاتالا) (ca_CA) | |
الكرواتية (هرفاتسكي) (hr_HR) | |
التشيكية (تشيسكي) (cs_CZ) | |
الدنماركية (دانسك) (da_DK) | |
الهولندية (هولندا) (nl_NL) | |
الإنجليزية (الإنجليزية) (en_GB) | |
الإنجليزية (الولايات المتحدة) (ar_US) | |
الفرنسية (Français) (fr_FR) | |
الألمانية (الألمانية) (de_DE) | |
اليونانية (Ενικά) (el_GR) | |
الهندية (हिंдी) (hi_IN) | |
المجرية (المجرية) (hu_HU) | |
الإندونيسية (البهاسا الإندونيسية) (id_ID) | |
الأيرلندية (جايلجي) (ga_IE) | |
الإيطالية (الإيطالية) (it_IT) | |
اليابانية (日本語) (ja_JP) | |
الكورية (한국어) (ko_KR) | |
النرويجية (نورسك) (no_NB) | |
البولندية (بولسكي) (pl_PL) | |
البرتغالية (البرتغالية) (pt_PT) | |
البرتغالية البرازيلية (Português) (pt_BR) | |
الرومانية (Română) (ro_RO) | |
الروسية (Русский) (ru_RU) | |
الأبجدية اللاتينية الصربية (صربسكي) (sr_LATN_RS) | |
الصينية المبسطة (简体中文) (zh_CN) | |
السلوفاكية (سلوفينسكي) (sk_SK) | |
الإسبانية (الإسبانية) (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
لتنزيل جرة الأمان (مطلوب لتسجيل الدخول للمصادقة)INSTALL_BOOK_AND_ADVANCED_HTML_OPS
- قم بتنزيل Caliber على Stirling-PDF لتمكين PDF من/إلى الكتاب وتحويل HTML المتقدمLANGS
- تحديد مكتبات الخطوط المخصصة لتثبيتها لتحويلات المستندات بالنسبة لأولئك الذين يريدون استخدام واجهة برمجة تطبيقات الواجهة الخلفية لـ Stirling-PDF للربط مع البرمجة النصية المخصصة الخاصة بهم لتحرير ملفات PDF، يمكنك عرض جميع وثائق واجهة برمجة التطبيقات الموجودة هنا، أو الانتقال إلى /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;
(حيث يكون "SIZE" 50 ميجابايت على سبيل المثال لملفات بحجم 50 ميجابايت).
يحتوي NGINX على قيم المهلة افتراضيًا، لذلك إذا كنت تقوم بتشغيل Stirling-PDF خلف NGINX، فقد تحتاج إلى تعيين قيمة المهلة، مثل إضافة config proxy_read_timeout 3600;
.