mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
All 181 docs markdown files translated into 20 languages (apps/docs/<locale>/**). Companion to the i18n code PR; admin-merged because the file count exceeds GitHub's per-PR CI trigger limit. Validated by pnpm i18n:check (all surfaces, 0 stale/missing) and a clean all-locale docs build.
3.2 KiB
3.2 KiB
description, i18n_source_hash, i18n_provenance, i18n_output_hash
| description | i18n_source_hash | i18n_provenance | i18n_output_hash |
|---|---|---|---|
| Normalleştirilmiş sayfa yerleşimleri kullanarak yüklenen imza görüntülerini bir PDF üzerine damgalayın. | c28f78c2e7fd | human | db85d20e93ae |
PDF İmzala
Yüklenen bir veya daha fazla imza PNG görüntüsünü bir PDF'in herhangi bir sayfasına damgalayın. Bu rota, PDF'e, bir veya daha fazla imza görüntüsüne ve yerleşim koordinatlarına ihtiyaç duyduğundan özel bir multipart sözleşmesi kullanır.
API Uç Noktası
POST /api/v1/tools/pdf/sign-pdf
multipart form verisini kabul eder. PDF file olarak gönderilir; imzalar sig0, sig1 vb. olarak gönderilir; yerleşimler bir placements JSON alanında gönderilir.
Parametreler
| Parametre | Tür | Zorunlu | Varsayılan | Açıklama |
|---|---|---|---|---|
| file | file | Evet | - | İmzalanacak PDF dosyası |
| sig0 | file | Evet | - | İlk imza görüntüsü. Ek görüntüler sig1, sig2 vb. kullanır |
| placements | JSON string | Evet | - | Yerleşim nesnelerinden oluşan dizi: { "sig": 0, "page": 0, "x": 0.2, "y": 0.7, "w": 0.25, "h": 0.08 } |
| clientJobId | string | Hayır | - | SSE üzerinden ilerleme izleme için isteğe bağlı UUID |
| fileId | string | Hayır | - | İmzalı sonucu yeni bir sürüm olarak kaydetmek için isteğe bağlı dosya kitaplığı kimliği |
Yerleşim Koordinatları
| Alan | Tür | Açıklama |
|---|---|---|
| sig | integer | İmza görüntüsü dizini. 0, sig0 ile eşlenir |
| page | integer | Sıfır tabanlı PDF sayfa dizini |
| x | number | Sayfa kesri olarak sol konum |
| y | number | Sayfa kesri olarak üst konum |
| w | number | Sayfa kesri olarak imza genişliği |
| h | number | Sayfa kesri olarak imza yüksekliği |
Koordinatlar üst-sol başlangıç noktası kullanır. Değerler sayfa kenarının biraz dışına taşabilir; PDF işleyicisi nihai damgayı sayfaya kırpar.
Örnek İstek
curl -X POST http://localhost:1349/api/v1/tools/pdf/sign-pdf \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@contract.pdf" \
-F "sig0=@signature.png" \
-F 'placements=[{"sig":0,"page":0,"x":0.64,"y":0.82,"w":0.22,"h":0.08}]'
Örnek Yanıt
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/contract_signed.pdf",
"previewUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/preview.png",
"originalSize": 245000,
"processedSize": 249000
}
İstek eşzamanlı bekleme penceresi içinde tamamlanamazsa, API şunu döndürür:
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"async": true
}
/api/v1/jobs/<jobId>/progress adresine bağlanın ve iş tamamlandığında sonucu indirin.
Notlar
- Kabul edilen PDF girdi biçimi:
.pdf. - İmza görüntüleri geçerli görüntü dosyaları olmalıdır, tipik olarak şeffaflık içeren PNG.
- En fazla 100 imza görüntüsü ve 100 yerleşim kabul edilir.
sign-pdfözel bir rotadır ve standart araçsettingsJSON alanını kullanmaz.