Перейти к содержимому

Pdf Op

POST
/v1/objects/{object_id}/pdf/{op}
curl --request POST \
--url https://api.cloud.agentums.ru/v1/objects/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/pdf/example \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "angle": 1, "annotations": [ { "color": "#FDE047", "page": 1, "text": "", "type": "highlight", "x0": 1, "x1": 1, "y0": 1, "y1": 1 } ], "at": 1, "author": "", "boxes": [ { "page": 1, "x0": 1, "x1": 1, "y0": 1, "y1": 1 } ], "font_size": 1, "keywords": "", "opacity": 1, "order": [ 1 ], "pages": "", "password": "", "ranges": [ [ "example" ] ], "size": 1, "source_object_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "subject": "", "text": "", "title": "" }'

PDF-операция над объектом: compress|split|delete|rotate|reorder|protect|unlock.

Параметры — в теле (pages/angle/password/size/order/ranges, нужны по операции). Доступно только для PDF. Ставит Celery-задачу pdf_ops.run; результат появится НОВЫМ объектом(-ами) и пройдёт обычный ingest (как /convert). Валидацию параметров делает pdf_ops.build_params (понятная 422-ошибка при нехватке/некорректности).

object_id
required
Object Id
string format: uuid
op
required
Op
string
x-hidden-token
Any of:
string
Media typeapplication/json
PdfOpRequest

Параметры PDF-операции (сама операция — в пути /pdf/{op}). Поля опциональны, нужны по операции: pages — delete/rotate/replace («5-7,2»); angle — rotate (90/180/270) или наклон watermark; password — protect/unlock; size/ranges — split; order — reorder; text/opacity/font_size — watermark; source_object_id/at — insert (at — позиция вставки, 1-индексная); source_object_id/pages — replace; title/author/subject/keywords — properties.

object
angle
Any of:
integer
annotations
Any of:
Array<object>
<= 500 items
PdfAnnotation

Аннотация на странице PDF в нормализованных [0..1] координатах (0,0 — верхний левый). typehighlight (заливка), rect (рамка) или text (текст в рамке); color — hex (#RRGGBB); text — для type='text'.

object
color
Color
string
default: #FDE047 <= 9 characters
page
required
Page
integer
>= 1 <= 5001
text
Text
string
"" <= 500 characters
type
Type
string
default: highlight
Allowed values: highlight rect text
x0
required
X0
number
<= 1
x1
required
X1
number
<= 1
y0
required
Y0
number
<= 1
y1
required
Y1
number
<= 1
at
Any of:
integer
>= 1 <= 5001
author
Author
string
"" <= 255 characters
boxes
Any of:
Array<object>
<= 1000 items
RedactBox

Область для скрытия (redact) в нормализованных [0..1] координатах от размера страницы (0,0 — верхний левый угол). page — 1-индексный номер страницы.

object
page
required
Page
integer
>= 1 <= 5001
x0
required
X0
number
<= 1
x1
required
X1
number
<= 1
y0
required
Y0
number
<= 1
y1
required
Y1
number
<= 1
font_size
Any of:
integer
>= 6 <= 200
keywords
Keywords
string
"" <= 255 characters
opacity
Any of:
number
<= 1
order
Any of:
Array<integer>
<= 5000 items
pages
Pages
string
"" <= 200 characters
password
Password
string
"" <= 256 characters
ranges
Any of:
Array<array>
<= 1000 items
size
Size
integer
default: 1 >= 1 <= 1000
source_object_id
Any of:
string format: uuid
subject
Subject
string
"" <= 255 characters
text
Text
string
"" <= 120 characters
title
Title
string
"" <= 255 characters

Successful Response

Media typeapplication/json
PdfOpAccepted

PDF-операция принята: результат появится НОВЫМ объектом(-ами) (Celery). task_id — для опроса /pdf-status.

object
op
Op
string
""
status
Status
string
default: accepted
task_id
Any of:
string
Example
{
"op": "",
"status": "accepted"
}

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
ctx
Context
object
input
Input
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
Examplegenerated
{
"detail": [
{
"ctx": {},
"input": "example",
"loc": [
"example"
],
"msg": "example",
"type": "example"
}
]
}