You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

90 lines
2.1 KiB
Python

from pathlib import Path
import io
import os
from enum import Enum
from collections.abc import Generator
from typing import NamedTuple
from typing_extensions import Self # < Py 3.11
class _dvistate(Enum):
pre = ...
outer = ...
inpage = ...
post_post = ...
finale = ...
class Page(NamedTuple):
text: list[Text]
boxes: list[Box]
height: int
width: int
descent: int
class Box(NamedTuple):
x: int
y: int
height: int
width: int
class Text(NamedTuple):
x: int
y: int
font: DviFont
glyph: int
width: int
@property
def font_path(self) -> Path: ...
@property
def font_size(self) -> float: ...
@property
def font_effects(self) -> dict[str, float]: ...
@property
def glyph_name_or_index(self) -> int | str: ...
class Dvi:
file: io.BufferedReader
dpi: float | None
fonts: dict[int, DviFont]
state: _dvistate
def __init__(self, filename: str | os.PathLike, dpi: float | None) -> None: ...
def __enter__(self) -> Self: ...
def __exit__(self, etype, evalue, etrace) -> None: ...
def __iter__(self) -> Generator[Page, None, None]: ...
def close(self) -> None: ...
class DviFont:
texname: bytes
size: float
widths: list[int]
def __init__(
self, scale: float, tfm: Tfm, texname: bytes, vf: Vf | None
) -> None: ...
def __eq__(self, other: object) -> bool: ...
def __ne__(self, other: object) -> bool: ...
class Vf(Dvi):
def __init__(self, filename: str | os.PathLike) -> None: ...
def __getitem__(self, code: int) -> Page: ...
class Tfm:
checksum: int
design_size: int
width: dict[int, int]
height: dict[int, int]
depth: dict[int, int]
def __init__(self, filename: str | os.PathLike) -> None: ...
class PsFont(NamedTuple):
texname: bytes
psname: bytes
effects: dict[str, float]
encoding: None | bytes
filename: str
class PsfontsMap:
def __new__(cls, filename: str | os.PathLike) -> Self: ...
def __getitem__(self, texname: bytes) -> PsFont: ...
def find_tex_file(filename: str | os.PathLike) -> str: ...