From 54e5284a8eac91d7391170f1249f7c194db0d1aa Mon Sep 17 00:00:00 2001 From: wanghe Date: Tue, 30 Jan 2024 10:51:16 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=20Stirling-PDF=20(#8?= =?UTF-8?q?39)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/stirling-pdf/0.20.0/data.yml | 10 ++++++++++ apps/stirling-pdf/0.20.0/docker-compose.yml | 20 ++++++++++++++++++++ apps/stirling-pdf/README.md | 11 +++++++++++ apps/stirling-pdf/data.yml | 20 ++++++++++++++++++++ apps/stirling-pdf/logo.png | Bin 0 -> 11297 bytes 5 files changed, 61 insertions(+) create mode 100755 apps/stirling-pdf/0.20.0/data.yml create mode 100644 apps/stirling-pdf/0.20.0/docker-compose.yml create mode 100644 apps/stirling-pdf/README.md create mode 100755 apps/stirling-pdf/data.yml create mode 100644 apps/stirling-pdf/logo.png diff --git a/apps/stirling-pdf/0.20.0/data.yml b/apps/stirling-pdf/0.20.0/data.yml new file mode 100755 index 00000000..d8b6c6cf --- /dev/null +++ b/apps/stirling-pdf/0.20.0/data.yml @@ -0,0 +1,10 @@ +additionalProperties: + formFields: + - default: 8080 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number diff --git a/apps/stirling-pdf/0.20.0/docker-compose.yml b/apps/stirling-pdf/0.20.0/docker-compose.yml new file mode 100644 index 00000000..68087d36 --- /dev/null +++ b/apps/stirling-pdf/0.20.0/docker-compose.yml @@ -0,0 +1,20 @@ +version: '3' +services: + stirling-pdf: + image: frooodle/s-pdf:0.20.0 + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - '${PANEL_APP_PORT_HTTP}:8080' + volumes: + - ./data/trainingData:/usr/share/tesseract-ocr/5/tessdata + - ./data/extraConfigs:/configs + environment: + - DOCKER_ENABLE_SECURITY=false + labels: + createdBy: "Apps" +networks: + 1panel-network: + external: true \ No newline at end of file diff --git a/apps/stirling-pdf/README.md b/apps/stirling-pdf/README.md new file mode 100644 index 00000000..60fe7006 --- /dev/null +++ b/apps/stirling-pdf/README.md @@ -0,0 +1,11 @@ +# Stirling-PDF + +**Stirling-PDF** 是一个强大的本地托管基于 Web 的 PDF 操作工具,允许您对 PDF 文件执行各种操作,例如拆分合并、转换、重新组织、添加图像、旋转、压缩等。 + +## 特征: + +- 深色模式支持。 +- 自定义下载选项(参见 [此处]((https://github.com/Stirling-Tools/Stirling-PDF/blob/main/images/settings.png)) 的示例) +- 并行文件处理和下载 +- 用于与外部脚本集成的 API +- 可选的登录和身份验证支持(请参阅 [此处](https://github.com/Stirling-Tools/Stirling-PDF/tree/main#login-authentication) 的文档) \ No newline at end of file diff --git a/apps/stirling-pdf/data.yml b/apps/stirling-pdf/data.yml new file mode 100755 index 00000000..e6b39408 --- /dev/null +++ b/apps/stirling-pdf/data.yml @@ -0,0 +1,20 @@ +name: Stirling-PDF +tags: + - 实用工具 +title: 强大的本地托管基于 Web 的 PDF 操作工具 +type: 实用工具 +description: 强大的本地托管基于 Web 的 PDF 操作工具 +additionalProperties: + key: stirling-pdf + name: Stirling-PDF + tags: + - Tool + shortDescZh: 强大的本地托管基于 Web 的 PDF 操作工具 + shortDescEn: powerful locally hosted web based PDF manipulation tool + type: tool + crossVersionUpdate: false + limit: 0 + recommend: 0 + website: https://stirlingtools.com/ + github: https://github.com/Stirling-Tools/Stirling-PDF + document: https://stirlingtools.com/docs/Overview/What%20is%20Stirling-PDF diff --git a/apps/stirling-pdf/logo.png b/apps/stirling-pdf/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..bb2d66563c633b8b159e2a0f3733bbd3c783168c GIT binary patch literal 11297 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 X;!qEHdcDx600000NkvXXu0mjf;)>@+ literal 0 KcmV+b0RR6000031