Compare commits
13 Commits
v0.36.5
...
Frooodle-p
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
768cb20e75 | ||
|
|
339bbbf4b1 | ||
|
|
475036d12e | ||
|
|
b1fa2246a1 | ||
|
|
abaab580be | ||
|
|
1d700ae062 | ||
|
|
bba3d65368 | ||
|
|
e3d2bd3b1b | ||
|
|
a71cb7f5d9 | ||
|
|
a9e250547a | ||
|
|
30bcdbd7be | ||
|
|
61603aebb2 | ||
|
|
26340626df |
4
.github/workflows/PR-Demo-Comment.yml
vendored
4
.github/workflows/PR-Demo-Comment.yml
vendored
@@ -3,7 +3,9 @@ name: PR Deployment via Comment
|
||||
on:
|
||||
issue_comment:
|
||||
types: [created]
|
||||
|
||||
permissions:
|
||||
pull-requests: write
|
||||
contents: write
|
||||
jobs:
|
||||
check-comment:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
3
.github/workflows/build.yml
vendored
3
.github/workflows/build.yml
vendored
@@ -54,7 +54,8 @@ jobs:
|
||||
# )
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
3
.github/workflows/check_properties.yml
vendored
3
.github/workflows/check_properties.yml
vendored
@@ -14,6 +14,9 @@ jobs:
|
||||
check-files:
|
||||
if: github.event_name == 'pull_request_target'
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
steps:
|
||||
- name: Checkout main branch first
|
||||
uses: actions/checkout@v4
|
||||
|
||||
48
.github/workflows/codeql.yml
vendored
Normal file
48
.github/workflows/codeql.yml
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
name: "CodeQL"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "main" ]
|
||||
pull_request:
|
||||
branches: [ "main" ]
|
||||
schedule:
|
||||
- cron: '30 1 * * 0' # Runs at 01:30 UTC every Sunday
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 360
|
||||
permissions:
|
||||
actions: read
|
||||
contents: read
|
||||
security-events: false
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
language: [ 'java' ]
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: '17'
|
||||
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v3
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
queries: security-extended,security-and-quality
|
||||
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v3
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v3
|
||||
with:
|
||||
category: "/language:${{matrix.language}}"
|
||||
3
.github/workflows/swagger.yml
vendored
3
.github/workflows/swagger.yml
vendored
@@ -5,7 +5,8 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
jobs:
|
||||
push:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
63
SECURITY.md
Normal file
63
SECURITY.md
Normal file
@@ -0,0 +1,63 @@
|
||||
# Security Policy
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
The Stirling-PDF team takes security vulnerabilities seriously. We appreciate your efforts to responsibly disclose your findings.
|
||||
|
||||
### How to Report
|
||||
|
||||
You can report security vulnerabilities through two channels:
|
||||
|
||||
1. **GitHub Security Advisory**:
|
||||
- Navigate to the [Security tab](https://github.com/Stirling-Tools/Stirling-PDF/security) in our repository
|
||||
- Click on "Report a vulnerability"
|
||||
- Provide a detailed description of the vulnerability
|
||||
|
||||
2. **Direct Email**:
|
||||
- Send your report to security@stirlingpdf.com
|
||||
- Please include as much information as possible about the vulnerability
|
||||
|
||||
### What to Include
|
||||
|
||||
When reporting a vulnerability, please provide:
|
||||
|
||||
- A clear description of the vulnerability
|
||||
- Steps to reproduce the issue
|
||||
- Any potential impact
|
||||
- If possible, suggestions for addressing the vulnerability
|
||||
- Your contact information for follow-up questions
|
||||
|
||||
### Response Time
|
||||
|
||||
We aim to acknowledge receipt of your vulnerability report within 48 hours
|
||||
|
||||
### Process
|
||||
|
||||
1. Submit your report through one of the channels above
|
||||
2. Receive an acknowledgment from our team
|
||||
3. Our team will investigate and validate the issue
|
||||
4. We will work on a fix and keep you updated on our progress
|
||||
5. Once resolved, we will publish the fix and acknowledge your contribution (if desired)
|
||||
|
||||
### Bug Bounty
|
||||
|
||||
At this time, we do not offer a bug bounty program. However, we greatly appreciate your efforts in making Stirling-PDF more secure and will acknowledge your contribution in our release notes (unless you prefer to remain anonymous).
|
||||
|
||||
## Supported Versions
|
||||
|
||||
Only the latest version of Stirling-PDF is supported for security updates. We do not backport security fixes to older versions.
|
||||
|
||||
| Version | Supported |
|
||||
| ------- | ------------------ |
|
||||
| Latest | :white_check_mark: |
|
||||
| Older | :x: |
|
||||
|
||||
**Please note:** Before reporting a security issue, ensure you are using the latest version of Stirling-PDF. Security reports for older versions will not be accepted.
|
||||
|
||||
## Security Best Practices
|
||||
|
||||
When deploying Stirling-PDF:
|
||||
|
||||
1. Always use the latest version
|
||||
2. Follow our deployment guidelines
|
||||
3. Regularly check for and apply updates
|
||||
@@ -38,10 +38,6 @@ java {
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven { url "https://jitpack.io" }
|
||||
maven { url "https://build.shibboleth.net/nexus/content/repositories/releases/" }
|
||||
maven {
|
||||
url 'https://build.shibboleth.net/maven/releases'
|
||||
}
|
||||
maven { url "https://build.shibboleth.net/maven/releases" }
|
||||
maven { url "https://maven.pkg.github.com/jcefmaven/jcefmaven" }
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@ page=頁面
|
||||
pages=頁面
|
||||
loading=載入中...
|
||||
addToDoc=新增至文件
|
||||
reset=Reset
|
||||
reset=重設
|
||||
|
||||
legal.privacy=隱私權政策
|
||||
legal.terms=使用條款
|
||||
@@ -142,7 +142,7 @@ navbar.language=語言
|
||||
navbar.settings=設定
|
||||
navbar.allTools=工具
|
||||
navbar.multiTool=複合工具
|
||||
navbar.search=Search
|
||||
navbar.search=搜尋
|
||||
navbar.sections.organize=整理
|
||||
navbar.sections.convertTo=轉換為 PDF
|
||||
navbar.sections.convertFrom=從 PDF 轉換
|
||||
@@ -238,13 +238,13 @@ database.creationDate=建立日期
|
||||
database.fileSize=檔案大小
|
||||
database.deleteBackupFile=刪除備份檔案
|
||||
database.importBackupFile=匯入備份檔案
|
||||
database.createBackupFile=Create Backup File
|
||||
database.createBackupFile=建立備份檔案
|
||||
database.downloadBackupFile=下載備份檔案
|
||||
database.info_1=在匯入資料時,確保正確的結構至關重要。如果您不確定自己在做什麼,請尋求專業人士的建議和支援。結構錯誤可能會導致應用程式故障,甚至完全無法執行應用程式。
|
||||
database.info_2=上傳時檔案名稱並不重要。上傳後將重新命名為 backup_user_yyyyMMddHHmm.sql 格式,以確保命名規範一致。
|
||||
database.submit=匯入備份
|
||||
database.importIntoDatabaseSuccessed=成功匯入資料庫
|
||||
database.backupCreated=Database backup successful
|
||||
database.backupCreated=資料庫備份成功
|
||||
database.fileNotFound=找不到檔案
|
||||
database.fileNullOrEmpty=檔案不得為空或空白
|
||||
database.failedImportFile=匯入檔案失敗
|
||||
@@ -255,7 +255,7 @@ session.refreshPage=重新整理頁面
|
||||
#############
|
||||
# HOME-PAGE #
|
||||
#############
|
||||
home.desc=你的本機主機一站式 PDF 需求解決方案。
|
||||
home.desc=您的本機一站式 PDF 解決方案。
|
||||
home.searchBar=搜尋功能...
|
||||
|
||||
|
||||
@@ -514,9 +514,9 @@ home.splitPdfByChapters.title=依章節分割 PDF
|
||||
home.splitPdfByChapters.desc=根據 PDF 的章節結構將其分割成多個檔案。
|
||||
splitPdfByChapters.tags=分割,章節,書籤,整理
|
||||
|
||||
home.validateSignature.title=Validate PDF Signature
|
||||
home.validateSignature.desc=Verify digital signatures and certificates in PDF documents
|
||||
validateSignature.tags=signature,verify,validate,pdf,certificate,digital signature,Validate Signature,Validate certificate
|
||||
home.validateSignature.title=驗證 PDF 簽章
|
||||
home.validateSignature.desc=驗證 PDF 文件中的數位簽章與憑證
|
||||
validateSignature.tags=簽章,驗證,確認,pdf,憑證,數位簽章,驗證簽章,驗證憑證
|
||||
|
||||
#replace-invert-color
|
||||
replace-color.title=取代-反轉顏色
|
||||
@@ -629,12 +629,12 @@ HTMLToPDF.help=接受 HTML 文件和包含所需 html/css/images 等的 ZIP
|
||||
HTMLToPDF.submit=轉換
|
||||
HTMLToPDF.credit=此服務使用 WeasyPrint 進行轉換
|
||||
HTMLToPDF.zoom=用於顯示網站的縮放級別。
|
||||
HTMLToPDF.pageWidth=頁面寬度-以釐米為單位(填空則使用預設值)
|
||||
HTMLToPDF.pageHeight=頁面高度-以釐米為單位(填空則使用預設值)
|
||||
HTMLToPDF.marginTop=頁面的上邊距-以毫米為單位(填空則使用預設值)
|
||||
HTMLToPDF.marginBottom=頁面的下邊距-以毫米為單位(填空則使用預設值)
|
||||
HTMLToPDF.marginLeft=頁面的左邊距-以毫米為單位(填空則使用預設值)
|
||||
HTMLToPDF.marginRight=頁面的右邊距-以毫米為單位(填空則使用預設值)
|
||||
HTMLToPDF.pageWidth=頁面寬度-以公分為單位(留空則使用預設值)
|
||||
HTMLToPDF.pageHeight=頁面高度-以公分為單位(留空則使用預設值)
|
||||
HTMLToPDF.marginTop=頁面的上邊距-以毫米為單位(留空則使用預設值)
|
||||
HTMLToPDF.marginBottom=頁面的下邊距-以毫米為單位(留空則使用預設值)
|
||||
HTMLToPDF.marginLeft=頁面的左邊距-以毫米為單位(留空則使用預設值)
|
||||
HTMLToPDF.marginRight=頁面的右邊距-以毫米為單位(留空則使用預設值)
|
||||
HTMLToPDF.printBackground=渲染網站的背景。
|
||||
HTMLToPDF.defaultHeader=啟用預設標頭(名稱和頁碼)
|
||||
HTMLToPDF.cssMediaType=更改頁面的 CSS 媒體類型。
|
||||
@@ -748,13 +748,13 @@ scalePages.submit=送出
|
||||
certSign.title=憑證簽章
|
||||
certSign.header=使用你的憑證簽章(進行中)
|
||||
certSign.selectPDF=選擇要簽章的 PDF 檔案:
|
||||
certSign.jksNote=注意:如果你的證書類型未在下面列出,請使用 keytool 命令列工具將其轉換為 Java Keystore (.jks) 檔。 然後,選擇下面的 .jks 文件選項。
|
||||
certSign.selectKey=選擇你的私鑰文件(PKCS#8 格式,可能是 .pem 或 .der):
|
||||
certSign.selectCert=選擇你的憑證文件(X.509 格式,可能是 .pem 或 .der):
|
||||
certSign.selectP12=選擇你的 PKCS#12 金鑰庫文件(.p12 或 .pfx)(可選,如果提供,它應包含你的私鑰和憑證):
|
||||
certSign.selectJKS=選擇你的 Java Keystore 檔 (.jks 或 .keystore):
|
||||
certSign.jksNote=注意:如果你的證書類型未被列在下方,請使用 keytool 命令列工具將其轉換為 Java Keystore (.jks) 檔案格式,然後選擇下面的 .jks 檔案選項。
|
||||
certSign.selectKey=選擇你的私鑰檔案(PKCS#8 格式,副檔名可能是 .pem 或 .der):
|
||||
certSign.selectCert=選擇你的憑證檔案(X.509 格式,副檔名可能是 .pem 或 .der):
|
||||
certSign.selectP12=選擇你的 PKCS#12 金鑰庫檔案(副檔名可能是 .p12 或 .pfx)(選填,如果有提供,則它應該包含你的私鑰和憑證):
|
||||
certSign.selectJKS=選擇你的 Java Keystore 檔案 (副檔名可能是 .jks 或 .keystore):
|
||||
certSign.certType=憑證類型
|
||||
certSign.password=輸入你的金鑰庫或私鑰密碼(如果有):
|
||||
certSign.password=輸入你的金鑰庫或私鑰密碼(如果有的話):
|
||||
certSign.showSig=顯示簽章
|
||||
certSign.reason=原因
|
||||
certSign.location=位置
|
||||
@@ -824,12 +824,12 @@ sign.save=儲存簽章
|
||||
sign.personalSigs=個人簽章
|
||||
sign.sharedSigs=共用簽章
|
||||
sign.noSavedSigs=尚未儲存任何簽章
|
||||
sign.addToAll=Add to all pages
|
||||
sign.delete=Delete
|
||||
sign.first=First page
|
||||
sign.last=Last page
|
||||
sign.next=Next page
|
||||
sign.previous=Previous page
|
||||
sign.addToAll=新增至所有頁面
|
||||
sign.delete=刪除
|
||||
sign.first=第一頁
|
||||
sign.last=最後一頁
|
||||
sign.next=下一頁
|
||||
sign.previous=上一頁
|
||||
|
||||
#repair
|
||||
repair.title=修復
|
||||
@@ -946,39 +946,39 @@ pdfOrganiser.placeholder=(例如 1,3,2 或 4-8,2,10-12 或 2n-1)
|
||||
multiTool.title=PDF 複合工具
|
||||
multiTool.header=PDF 複合工具
|
||||
multiTool.uploadPrompts=檔名
|
||||
multiTool.selectAll=Select All
|
||||
multiTool.deselectAll=Deselect All
|
||||
multiTool.selectPages=Page Select
|
||||
multiTool.selectedPages=Selected Pages
|
||||
multiTool.page=Page
|
||||
multiTool.deleteSelected=Delete Selected
|
||||
multiTool.downloadAll=Export
|
||||
multiTool.downloadSelected=Export Selected
|
||||
multiTool.selectAll=全選
|
||||
multiTool.deselectAll=取消全選
|
||||
multiTool.selectPages=選取頁面
|
||||
multiTool.selectedPages=已選取的頁面
|
||||
multiTool.page=頁面
|
||||
multiTool.deleteSelected=刪除已選取的項目
|
||||
multiTool.downloadAll=匯出
|
||||
multiTool.downloadSelected=匯出已選取的項目
|
||||
|
||||
multiTool.insertPageBreak=Insert Page Break
|
||||
multiTool.addFile=Add File
|
||||
multiTool.rotateLeft=Rotate Left
|
||||
multiTool.rotateRight=Rotate Right
|
||||
multiTool.split=Split
|
||||
multiTool.moveLeft=Move Left
|
||||
multiTool.moveRight=Move Right
|
||||
multiTool.delete=Delete
|
||||
multiTool.dragDropMessage=Page(s) Selected
|
||||
multiTool.undo=Undo
|
||||
multiTool.redo=Redo
|
||||
multiTool.insertPageBreak=插入分頁符號
|
||||
multiTool.addFile=新增檔案
|
||||
multiTool.rotateLeft=向左旋轉
|
||||
multiTool.rotateRight=向右旋轉
|
||||
multiTool.split=分割
|
||||
multiTool.moveLeft=向左移動
|
||||
multiTool.moveRight=向右移動
|
||||
multiTool.delete=刪除
|
||||
multiTool.dragDropMessage=已選取的頁面
|
||||
multiTool.undo=復原
|
||||
multiTool.redo=重做
|
||||
|
||||
#decrypt
|
||||
decrypt.passwordPrompt=This file is password-protected. Please enter the password:
|
||||
decrypt.cancelled=Operation cancelled for PDF: {0}
|
||||
decrypt.noPassword=No password provided for encrypted PDF: {0}
|
||||
decrypt.invalidPassword=Please try again with the correct password.
|
||||
decrypt.invalidPasswordHeader=Incorrect password or unsupported encryption for PDF: {0}
|
||||
decrypt.unexpectedError=There was an error processing the file. Please try again.
|
||||
decrypt.serverError=Server error while decrypting: {0}
|
||||
decrypt.success=File decrypted successfully.
|
||||
decrypt.passwordPrompt=此檔案已受密碼保護。請輸入密碼:
|
||||
decrypt.cancelled=已取消處理 PDF:{0}
|
||||
decrypt.noPassword=未提供加密 PDF 的密碼:{0}
|
||||
decrypt.invalidPassword=請重新輸入正確的密碼。
|
||||
decrypt.invalidPasswordHeader=密碼錯誤或不支援的加密方式,PDF:{0}
|
||||
decrypt.unexpectedError=處理檔案時發生錯誤。請再試一次。
|
||||
decrypt.serverError=解密時發生伺服器錯誤:{0}
|
||||
decrypt.success=檔案已成功解密。
|
||||
|
||||
#multiTool-advert
|
||||
multiTool-advert.message=This feature is also available in our <a href="{0}">multi-tool page</a>. Check it out for enhanced page-by-page UI and additional features!
|
||||
multiTool-advert.message=此功能也可以在我們的<a href="{0}">複合工具頁面</a>中使用。前往查看並體驗更強大的逐頁操作介面及其他進階功能!
|
||||
|
||||
#view pdf
|
||||
viewPdf.title=檢視 PDF
|
||||
@@ -1195,7 +1195,7 @@ split-by-size-or-count.submit=送出
|
||||
|
||||
#overlay-pdfs
|
||||
overlay-pdfs.header=覆蓋 PDF 檔案
|
||||
overlay-pdfs.baseFile.label=選擇基礎 PDF 檔案
|
||||
overlay-pdfs.baseFile.label=選擇基底 PDF 檔案
|
||||
overlay-pdfs.overlayFiles.label=選擇覆蓋 PDF 檔案
|
||||
overlay-pdfs.mode.label=選擇覆蓋模式
|
||||
overlay-pdfs.mode.sequential=序列覆蓋
|
||||
@@ -1281,49 +1281,49 @@ splitByChapters.desc.4=允許重複:如果勾選,允許同一頁面上的多
|
||||
splitByChapters.submit=分割 PDF
|
||||
|
||||
#File Chooser
|
||||
fileChooser.click=Click
|
||||
fileChooser.or=or
|
||||
fileChooser.dragAndDrop=Drag & Drop
|
||||
fileChooser.hoveredDragAndDrop=Drag & Drop file(s) here
|
||||
fileChooser.click=點選
|
||||
fileChooser.or=或
|
||||
fileChooser.dragAndDrop=拖放檔案
|
||||
fileChooser.hoveredDragAndDrop=將檔案拖放至此
|
||||
|
||||
#release notes
|
||||
releases.footer=Releases
|
||||
releases.title=Release Notes
|
||||
releases.header=Release Notes
|
||||
releases.current.version=Current Release
|
||||
releases.note=Release notes are only available in English
|
||||
releases.footer=版本資訊
|
||||
releases.title=版本資訊
|
||||
releases.header=版本資訊
|
||||
releases.current.version=目前版本
|
||||
releases.note=版本資訊僅提供英文版本
|
||||
|
||||
#Validate Signature
|
||||
validateSignature.title=Validate PDF Signatures
|
||||
validateSignature.header=Validate Digital Signatures
|
||||
validateSignature.selectPDF=Select signed PDF file
|
||||
validateSignature.submit=Validate Signatures
|
||||
validateSignature.results=Validation Results
|
||||
validateSignature.status=Status
|
||||
validateSignature.signer=Signer
|
||||
validateSignature.date=Date
|
||||
validateSignature.reason=Reason
|
||||
validateSignature.location=Location
|
||||
validateSignature.noSignatures=No digital signatures found in this document
|
||||
validateSignature.status.valid=Valid
|
||||
validateSignature.status.invalid=Invalid
|
||||
validateSignature.chain.invalid=Certificate chain validation failed - cannot verify signer's identity
|
||||
validateSignature.trust.invalid=Certificate not in trust store - source cannot be verified
|
||||
validateSignature.cert.expired=Certificate has expired
|
||||
validateSignature.cert.revoked=Certificate has been revoked
|
||||
validateSignature.signature.info=Signature Information
|
||||
validateSignature.signature=Signature
|
||||
validateSignature.signature.mathValid=Signature is mathematically valid BUT:
|
||||
validateSignature.selectCustomCert=Custom Certificate File X.509 (Optional)
|
||||
validateSignature.cert.info=Certificate Details
|
||||
validateSignature.cert.issuer=Issuer
|
||||
validateSignature.cert.subject=Subject
|
||||
validateSignature.cert.serialNumber=Serial Number
|
||||
validateSignature.cert.validFrom=Valid From
|
||||
validateSignature.cert.validUntil=Valid Until
|
||||
validateSignature.cert.algorithm=Algorithm
|
||||
validateSignature.cert.keySize=Key Size
|
||||
validateSignature.cert.version=Version
|
||||
validateSignature.cert.keyUsage=Key Usage
|
||||
validateSignature.cert.selfSigned=Self-Signed
|
||||
validateSignature.cert.bits=bits
|
||||
validateSignature.title=驗證 PDF 簽章
|
||||
validateSignature.header=驗證數位簽章
|
||||
validateSignature.selectPDF=選擇已簽章的 PDF 檔案
|
||||
validateSignature.submit=驗證簽章
|
||||
validateSignature.results=驗證結果
|
||||
validateSignature.status=狀態
|
||||
validateSignature.signer=簽署者
|
||||
validateSignature.date=日期
|
||||
validateSignature.reason=原因
|
||||
validateSignature.location=位置
|
||||
validateSignature.noSignatures=此文件中未找到數位簽章
|
||||
validateSignature.status.valid=有效
|
||||
validateSignature.status.invalid=無效
|
||||
validateSignature.chain.invalid=憑證鏈驗證失敗 - 無法驗證簽署者身份
|
||||
validateSignature.trust.invalid=憑證不在信任儲存區中 - 無法驗證來源
|
||||
validateSignature.cert.expired=憑證已過期
|
||||
validateSignature.cert.revoked=憑證已被撤銷
|
||||
validateSignature.signature.info=簽章資訊
|
||||
validateSignature.signature=簽章
|
||||
validateSignature.signature.mathValid=簽章在數學上有效,但:
|
||||
validateSignature.selectCustomCert=自訂 X.509 憑證檔案(選填)
|
||||
validateSignature.cert.info=憑證詳細資訊
|
||||
validateSignature.cert.issuer=發行者
|
||||
validateSignature.cert.subject=主旨
|
||||
validateSignature.cert.serialNumber=序號
|
||||
validateSignature.cert.validFrom=有效期自
|
||||
validateSignature.cert.validUntil=有效期至
|
||||
validateSignature.cert.algorithm=演算法
|
||||
validateSignature.cert.keySize=金鑰長度
|
||||
validateSignature.cert.version=版本
|
||||
validateSignature.cert.keyUsage=金鑰用途
|
||||
validateSignature.cert.selfSigned=自我簽署
|
||||
validateSignature.cert.bits=位元
|
||||
|
||||
@@ -89,10 +89,10 @@
|
||||
<td style="align-content: center;">
|
||||
<form th:action="@{'/api/v1/user/admin/changeUserEnabled/' + ${user.username}}" method="post" onsubmit="return confirmChangeUserStatus()">
|
||||
<input type="hidden" name="enabled" th:value="!${user.enabled}" />
|
||||
<button th:if="${user.enabled}" th:title="#{adminUserSettings.enabledUser}" type="submit" class="btn btn-success btn-sm">
|
||||
<button type="submit" th:if="${user.enabled}" th:title="#{adminUserSettings.enabledUser}" class="btn btn-success btn-sm">
|
||||
<span class="material-symbols-rounded">person</span>
|
||||
</button>
|
||||
<button th:unless="${user.enabled}" th:title="#{adminUserSettings.disabledUser}" type="submit" class="btn btn-danger btn-sm">
|
||||
<button type="submit" th:unless="${user.enabled}" th:title="#{adminUserSettings.disabledUser}" class="btn btn-danger btn-sm">
|
||||
<span class="material-symbols-rounded">person_off</span>
|
||||
</button>
|
||||
</form>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<form id="PDFToCSVForm" th:action="@{'/api/v1/convert/pdf/csv'}" method="post" enctype="multipart/form-data">
|
||||
<input id="pageId" type="hidden" name="pageId">
|
||||
<div th:replace="~{fragments/common :: fileSelector(name='fileInput', multipleInputsForSingleRequest=false, accept='application/pdf')}"></div>
|
||||
<button type="submit" class="btn btn-primary" th:text="#{PDFToCSV.submit}" id="submitBtn"></button>
|
||||
<button type="submit" id="submitBtn" class="btn btn-primary" th:text="#{PDFToCSV.submit}"></button>
|
||||
</form>
|
||||
<p id="instruction-text" style="margin: 0; display: none" th:text="#{PDFToCSV.prompt}"></p>
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
<input id="y" type="hidden" name="y">
|
||||
<input id="width" type="hidden" name="width">
|
||||
<input id="height" type="hidden" name="height">
|
||||
<button id="submitBtn" type="submit" class="btn btn-primary" th:text="#{crop.submit}"></button>
|
||||
<button type="submit" id="submitBtn" class="btn btn-primary" th:text="#{crop.submit}"></button>
|
||||
</form>
|
||||
<div id="canvasesContainer" style="position: relative; margin: 20px 0; width: auto;">
|
||||
<canvas id="cropPdfCanvas" style="width: 100%"></canvas>
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
<input type="checkbox" name="remember-me" id="remember-me">
|
||||
<label for="remember-me" th:text="#{login.rememberme}"></label>
|
||||
</div>
|
||||
<button class="w-100 btn btn-lg btn-primary" type="submit" th:text="#{login.signin}">Sign in</button>
|
||||
<button type="submit" class="w-100 btn btn-lg btn-primary" th:text="#{login.signin}">Sign in</button>
|
||||
</form>
|
||||
<div class="mt-3"> <!-- Added a margin-top for spacing -->
|
||||
<div class="dropdown text-center">
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
<button type="button" class="btn btn-secondary" id="addMetadataBtn" th:text="#{changeMetadata.selectText.5}"></button>
|
||||
<br>
|
||||
<br>
|
||||
<button class="btn btn-primary" type="submit" id="submitBtn" th:text="#{changeMetadata.submit}"></button>
|
||||
<button type="submit" id="submitBtn" class="btn btn-primary" th:text="#{changeMetadata.submit}"></button>
|
||||
<script type="module" th:src="@{'/pdfjs-legacy/pdf.mjs'}"></script>
|
||||
<script type="module" th:src="@{'/js/pages/change-metadata.js'}">
|
||||
</script>
|
||||
|
||||
@@ -2,8 +2,7 @@
|
||||
<html th:lang="${#locale.language}" th:dir="#{language.direction}" th:data-language="${#locale.toString()}"
|
||||
xmlns:th="https://www.thymeleaf.org">
|
||||
<head>
|
||||
<th:block
|
||||
th:insert="~{fragments/common :: head(title=#{removeImage.title}, header=#{removeImage.header})}"></th:block>
|
||||
<th:block th:insert="~{fragments/common :: head(title=#{removeImage.title}, header=#{removeImage.header})}"></th:block>
|
||||
<link rel="stylesheet" th:href="@{'/css/removeImage.css'}">
|
||||
</head>
|
||||
|
||||
@@ -20,7 +19,7 @@
|
||||
<span class="material-symbols-rounded tool-header-icon word">remove_selection</span>
|
||||
<span class="tool-header-text" th:text="#{removeImage.header}"></span>
|
||||
</div>
|
||||
<form th:action="@{'api/v1/general/remove-image-pdf'}" method="post" enctype="multipart/form-data">
|
||||
<form th:action="@{'api/v1/general/remove-image-pdf'}" method="post" enctype="multipart/form-data">
|
||||
<div th:replace="~{fragments/common :: fileSelector(name='fileInput', multipleInputsForSingleRequest=false, accept='application/pdf')}"></div>
|
||||
|
||||
<br>
|
||||
|
||||
@@ -131,7 +131,7 @@
|
||||
<label for="convertPDFToImage" th:text="#{watermark.selectText.10}"></label>
|
||||
</div>
|
||||
<div class="mb-3 text-left">
|
||||
<input type="submit" id="submitBtn" th:value="#{watermark.submit}" class="btn btn-primary">
|
||||
<button type="submit" id="submitBtn" class="btn btn-primary" th:text="#{watermark.submit}"></button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
<label for="convertPDFToImage" th:text="#{autoRedact.convertPDFToImageLabel}"></label>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-primary" th:text="#{autoRedact.submitButton}"></button>
|
||||
<button type="submit" id="submitBtn" class="btn btn-primary" th:text="#{autoRedact.submitButton}"></button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
<input type="text" id="watermarkText" name="watermarkText" class="form-control" placeholder="Stirling-PDF" required />
|
||||
</div>
|
||||
<div class="mb-3 text-center">
|
||||
<input type="submit" id="submitBtn" th:value="#{remove-watermark.submit}" class="btn btn-primary" />
|
||||
<button type="submit" id="submitBtn" class="btn btn-primary" th:text="#{remove-watermark.submit}"></button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user