60 lines
1.0 KiB
Python
60 lines
1.0 KiB
Python
from pydantic import BaseModel
|
|
|
|
|
|
class GlyphModel(BaseModel):
|
|
text: str
|
|
unicode: int
|
|
font_name: str
|
|
flags: int
|
|
font_size: float
|
|
origin_x: float
|
|
origin_y: float
|
|
bbox_x: float
|
|
bbox_y: float
|
|
bbox_w: float
|
|
bbox_h: float
|
|
angle: float
|
|
page_object_index: int = -1
|
|
|
|
|
|
class TextRunModel(BaseModel):
|
|
text: str
|
|
font_name: str
|
|
flags: int
|
|
font_size: float
|
|
internal_font_id: str
|
|
is_embedded: bool
|
|
type: str
|
|
glyphs: list[GlyphModel]
|
|
x: float
|
|
y: float
|
|
w: float
|
|
h: float
|
|
object_indices: list[int] = []
|
|
color: str = "#000000"
|
|
font_fidelity: str = "exact"
|
|
|
|
|
|
class TextLineModel(BaseModel):
|
|
runs: list[TextRunModel]
|
|
baseline_y: float
|
|
x: float
|
|
y: float
|
|
w: float
|
|
h: float
|
|
|
|
|
|
class ParagraphModel(BaseModel):
|
|
lines: list[TextLineModel]
|
|
x: float
|
|
y: float
|
|
w: float
|
|
h: float
|
|
|
|
|
|
class PageModelResponse(BaseModel):
|
|
paragraphs: list[ParagraphModel]
|
|
width: float
|
|
height: float
|
|
page_index: int
|