generated from jric11/baseProject
669 lines
18 KiB
PHP
669 lines
18 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
/**
|
||
|
|
* TestableText.php
|
||
|
|
*
|
||
|
|
* @since 2002-08-03
|
||
|
|
* @category Library
|
||
|
|
* @package Pdf
|
||
|
|
* @author Nicola Asuni <info@tecnick.com>
|
||
|
|
* @copyright 2002-2026 Nicola Asuni - Tecnick.com LTD
|
||
|
|
* @license https://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE)
|
||
|
|
* @link https://github.com/tecnickcom/tc-lib-pdf
|
||
|
|
*
|
||
|
|
* This file is part of tc-lib-pdf software library.
|
||
|
|
*/
|
||
|
|
|
||
|
|
namespace Test;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @phpstan-import-type TTextDims from \Com\Tecnick\Pdf\Font\Stack
|
||
|
|
* @phpstan-import-type TTMatrix from \Com\Tecnick\Pdf\Graph\Base
|
||
|
|
* @phpstan-import-type TextShadow from \Com\Tecnick\Pdf\Text
|
||
|
|
* @phpstan-import-type TextLinePos from \Com\Tecnick\Pdf\Text
|
||
|
|
*/
|
||
|
|
class TestableText extends \Com\Tecnick\Pdf\Tcpdf
|
||
|
|
{
|
||
|
|
public function exposeGetOutUTOLine(float $pntx, float $pnty, float $pwidth, float $psize): string
|
||
|
|
{
|
||
|
|
return $this->getOutUTOLine($pntx, $pnty, $pwidth, $psize);
|
||
|
|
}
|
||
|
|
|
||
|
|
/** @throws \Throwable */
|
||
|
|
public function exposeCleanupText(string $txt): string
|
||
|
|
{
|
||
|
|
return $this->cleanupText($txt);
|
||
|
|
}
|
||
|
|
|
||
|
|
/** @throws \Throwable */
|
||
|
|
public function exposeGetOutTextPosXY(string $raw, float $posx = 0, float $posy = 0, string $mode = 'Td'): string
|
||
|
|
{
|
||
|
|
return $this->getOutTextPosXY($raw, $posx, $posy, $mode);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function exposeGetTextRenderingMode(bool $fill = true, bool $stroke = false, bool $clip = false): int
|
||
|
|
{
|
||
|
|
return $this->getTextRenderingMode($fill, $stroke, $clip);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @phpstan-param array<int, int> $ordarr
|
||
|
|
* @phpstan-return array{fontchanged: bool, fontout: string, dim: TTextDims, layout: array{lines: array<int, TextLinePos>, maxwidth: float, txtheight: float}}
|
||
|
|
* @throws \Throwable
|
||
|
|
*/
|
||
|
|
public function exposeFitTextCellByFontSize(
|
||
|
|
array $ordarr,
|
||
|
|
float $maxWidth,
|
||
|
|
float $maxHeight,
|
||
|
|
float $offsetPoints,
|
||
|
|
float $lineSpacePoints,
|
||
|
|
): array {
|
||
|
|
return $this->fitTextCellByFontSize($ordarr, $maxWidth, $maxHeight, $offsetPoints, $lineSpacePoints);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @phpstan-param array<int, int> $ordarr
|
||
|
|
* @phpstan-param TTextDims $dim
|
||
|
|
* @phpstan-return array{fontchanged: bool, linewidth: float, layout: array{lines: array<int, TextLinePos>, maxwidth: float, txtheight: float}}
|
||
|
|
* @throws \Throwable
|
||
|
|
*/
|
||
|
|
public function exposeFitTextCellByStretch(
|
||
|
|
array $ordarr,
|
||
|
|
array $dim,
|
||
|
|
float $maxWidth,
|
||
|
|
float $maxHeight,
|
||
|
|
float $offsetPoints,
|
||
|
|
float $lineSpacePoints,
|
||
|
|
): array {
|
||
|
|
return $this->fitTextCellByStretch($ordarr, $dim, $maxWidth, $maxHeight, $offsetPoints, $lineSpacePoints);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function exposeGetOutTextStateOperatorTc(string $raw, int|float $value = 0): string
|
||
|
|
{
|
||
|
|
return $this->getOutTextStateOperatorTc($raw, $value);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function exposeGetOutTextStateOperatorTw(string $raw, int|float $value = 0): string
|
||
|
|
{
|
||
|
|
return $this->getOutTextStateOperatorTw($raw, $value);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function exposeGetOutTextStateOperatorTz(string $raw, int|float $value = 0): string
|
||
|
|
{
|
||
|
|
return $this->getOutTextStateOperatorTz($raw, $value);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function exposeGetOutTextStateOperatorTL(string $raw, int|float $value = 0): string
|
||
|
|
{
|
||
|
|
return $this->getOutTextStateOperatorTL($raw, $value);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function exposeGetOutTextStateOperatorTr(string $raw, int|float $value = 0): string
|
||
|
|
{
|
||
|
|
return $this->getOutTextStateOperatorTr($raw, $value);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function exposeGetOutTextStateOperatorTs(string $raw, int|float $value = 0): string
|
||
|
|
{
|
||
|
|
return $this->getOutTextStateOperatorTs($raw, $value);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function exposeGetOutTextStateOperatorw(string $raw, int|float $value = 0): string
|
||
|
|
{
|
||
|
|
return $this->getOutTextStateOperatorw($raw, $value);
|
||
|
|
}
|
||
|
|
|
||
|
|
/** @phpstan-param array<int, int|float> $matrix */
|
||
|
|
public function exposeGetOutTextPosMatrix(string $raw, array $matrix = [1, 0, 0, 1, 0, 0]): string
|
||
|
|
{
|
||
|
|
if (\count($matrix) !== 6) {
|
||
|
|
return '';
|
||
|
|
}
|
||
|
|
assert(isset($matrix[0]), "\$matrix[0] must be set");
|
||
|
|
assert(isset($matrix[1]), "\$matrix[1] must be set");
|
||
|
|
assert(isset($matrix[2]), "\$matrix[2] must be set");
|
||
|
|
assert(isset($matrix[3]), "\$matrix[3] must be set");
|
||
|
|
assert(isset($matrix[4]), "\$matrix[4] must be set");
|
||
|
|
assert(isset($matrix[5]), "\$matrix[5] must be set");
|
||
|
|
$textMatrix = [
|
||
|
|
(float) $matrix[0],
|
||
|
|
(float) $matrix[1],
|
||
|
|
(float) $matrix[2],
|
||
|
|
(float) $matrix[3],
|
||
|
|
(float) $matrix[4],
|
||
|
|
(float) $matrix[5],
|
||
|
|
];
|
||
|
|
return $this->getOutTextPosMatrix($raw, $textMatrix);
|
||
|
|
}
|
||
|
|
|
||
|
|
/** @phpstan-param array<int, int|float> $matrix */
|
||
|
|
public function exposeRawGetOutTextPosMatrix(string $raw, array $matrix): string
|
||
|
|
{
|
||
|
|
if (\count($matrix) !== 6) {
|
||
|
|
return '';
|
||
|
|
}
|
||
|
|
if (!isset($matrix[0], $matrix[1], $matrix[2], $matrix[3], $matrix[4], $matrix[5])) {
|
||
|
|
return '';
|
||
|
|
}
|
||
|
|
|
||
|
|
$textMatrix = [
|
||
|
|
(float) $matrix[0],
|
||
|
|
(float) $matrix[1],
|
||
|
|
(float) $matrix[2],
|
||
|
|
(float) $matrix[3],
|
||
|
|
(float) $matrix[4],
|
||
|
|
(float) $matrix[5],
|
||
|
|
];
|
||
|
|
|
||
|
|
return $this->getOutTextPosMatrix($raw, $textMatrix);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function exposeGetOutTextShowing(string $str, string $mode = 'Tj'): string
|
||
|
|
{
|
||
|
|
return $this->getOutTextShowing($str, $mode);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function exposeGetOutTextObject(string $raw = ''): string
|
||
|
|
{
|
||
|
|
return $this->getOutTextObject($raw);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @phpstan-param array<int, int> $ordarr
|
||
|
|
* @phpstan-return array<int, int>
|
||
|
|
*/
|
||
|
|
public function exposeReplaceUnicodeChars(array $ordarr): array
|
||
|
|
{
|
||
|
|
return $this->replaceUnicodeChars($ordarr);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @phpstan-param array<int, int> $ordarr
|
||
|
|
* @phpstan-return array<int, int>
|
||
|
|
*/
|
||
|
|
public function exposeRemoveOrdArrSoftHyphens(array $ordarr): array
|
||
|
|
{
|
||
|
|
return $this->removeOrdArrSoftHyphens($ordarr);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @phpstan-param array<int, int> $ordarr
|
||
|
|
* @phpstan-return array<int, int>
|
||
|
|
*/
|
||
|
|
public function exposeAddOrdArrBreakPoints(array $ordarr): array
|
||
|
|
{
|
||
|
|
return $this->addOrdArrBreakPoints($ordarr);
|
||
|
|
}
|
||
|
|
|
||
|
|
/** @throws \Throwable */
|
||
|
|
public function exposeSetPageContext(int $pid = -1): void
|
||
|
|
{
|
||
|
|
$this->setPageContext($pid);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function exposeEscapePerc(string $str): string
|
||
|
|
{
|
||
|
|
return $this->escapePerc($str);
|
||
|
|
}
|
||
|
|
|
||
|
|
/** @throws \Throwable */
|
||
|
|
public function exposeGetStringWidth(string $str): float
|
||
|
|
{
|
||
|
|
return $this->getStringWidth($str);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @phpstan-return array{0: string, 1: array<int, int>, 2: TTextDims}
|
||
|
|
* @throws \Throwable
|
||
|
|
*/
|
||
|
|
public function exposePrepareText(string $txt, string $forcedir = ''): array
|
||
|
|
{
|
||
|
|
$ordarr = [];
|
||
|
|
$dim = self::DIM_DEFAULT;
|
||
|
|
$this->prepareText($txt, $ordarr, $dim, $forcedir);
|
||
|
|
return [$txt, $ordarr, $dim];
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @phpstan-return array{0: string, 1: array<int, int>, 2: TTextDims, 3: bool}
|
||
|
|
* @throws \Throwable
|
||
|
|
*/
|
||
|
|
public function exposePrepareTextWithDir(string $txt, string $forcedir = ''): array
|
||
|
|
{
|
||
|
|
$ordarr = [];
|
||
|
|
$dim = self::DIM_DEFAULT;
|
||
|
|
$baseRtl = false;
|
||
|
|
$this->prepareText($txt, $ordarr, $dim, $forcedir, $baseRtl);
|
||
|
|
return [$txt, $ordarr, $dim, $baseRtl];
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @phpstan-param array<int, int> $logicalOrdArr
|
||
|
|
* @throws \Throwable
|
||
|
|
*/
|
||
|
|
public function exposeIsOrdArrBaseRtl(array $logicalOrdArr, string $forcedir = ''): bool
|
||
|
|
{
|
||
|
|
return $this->isOrdArrBaseRtl($logicalOrdArr, $forcedir);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @phpstan-param array<int, int> $ordarr
|
||
|
|
* @phpstan-param TTextDims $dim
|
||
|
|
* @phpstan-return array<int, TextLinePos>
|
||
|
|
* @throws \Throwable
|
||
|
|
*/
|
||
|
|
public function exposeSplitLines(
|
||
|
|
array $ordarr,
|
||
|
|
array $dim,
|
||
|
|
float $pwidth,
|
||
|
|
float $poffset = 0,
|
||
|
|
bool $rtl = false,
|
||
|
|
): array {
|
||
|
|
return $this->splitLines($ordarr, $dim, $pwidth, $poffset, $rtl);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @phpstan-param array<int, int> $ordarr
|
||
|
|
* @phpstan-param TTextDims|array{} $dim
|
||
|
|
* @phpstan-param TextShadow|null $shadow
|
||
|
|
* @throws \Throwable
|
||
|
|
*/
|
||
|
|
public function exposeGetOutTextLine(
|
||
|
|
string $txt,
|
||
|
|
array $ordarr,
|
||
|
|
array $dim,
|
||
|
|
float $posx = 0,
|
||
|
|
float $posy = 0,
|
||
|
|
float $width = 0,
|
||
|
|
float $strokewidth = 0,
|
||
|
|
float $wordspacing = 0,
|
||
|
|
float $leading = 0,
|
||
|
|
float $rise = 0,
|
||
|
|
bool $fill = true,
|
||
|
|
bool $stroke = false,
|
||
|
|
bool $underline = false,
|
||
|
|
bool $linethrough = false,
|
||
|
|
bool $overline = false,
|
||
|
|
bool $clip = false,
|
||
|
|
?array $shadow = null,
|
||
|
|
): string {
|
||
|
|
if ($txt === '' || $dim === []) {
|
||
|
|
return '';
|
||
|
|
}
|
||
|
|
/** @var TTextDims $lineDim */
|
||
|
|
$lineDim = \array_replace(self::DIM_DEFAULT, $dim);
|
||
|
|
return $this->getOutTextLine(
|
||
|
|
$txt,
|
||
|
|
$ordarr,
|
||
|
|
$lineDim,
|
||
|
|
$posx,
|
||
|
|
$posy,
|
||
|
|
$width,
|
||
|
|
$strokewidth,
|
||
|
|
$wordspacing,
|
||
|
|
$leading,
|
||
|
|
$rise,
|
||
|
|
$fill,
|
||
|
|
$stroke,
|
||
|
|
$underline,
|
||
|
|
$linethrough,
|
||
|
|
$overline,
|
||
|
|
$clip,
|
||
|
|
$shadow,
|
||
|
|
);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @phpstan-param array<int, int> $ordarr
|
||
|
|
* @phpstan-param TTextDims|array{} $dim
|
||
|
|
* @phpstan-param TextShadow|null $shadow
|
||
|
|
* @throws \Throwable
|
||
|
|
*/
|
||
|
|
public function exposeRawGetOutTextLine(
|
||
|
|
string $txt,
|
||
|
|
array $ordarr,
|
||
|
|
array $dim,
|
||
|
|
float $posx = 0,
|
||
|
|
float $posy = 0,
|
||
|
|
float $width = 0,
|
||
|
|
float $strokewidth = 0,
|
||
|
|
float $wordspacing = 0,
|
||
|
|
float $leading = 0,
|
||
|
|
float $rise = 0,
|
||
|
|
bool $fill = true,
|
||
|
|
bool $stroke = false,
|
||
|
|
bool $underline = false,
|
||
|
|
bool $linethrough = false,
|
||
|
|
bool $overline = false,
|
||
|
|
bool $clip = false,
|
||
|
|
?array $shadow = null,
|
||
|
|
): string {
|
||
|
|
if ($txt === '' || $dim === []) {
|
||
|
|
return '';
|
||
|
|
}
|
||
|
|
/** @var TTextDims $lineDim */
|
||
|
|
$lineDim = \array_replace(self::DIM_DEFAULT, $dim);
|
||
|
|
return $this->getOutTextLine(
|
||
|
|
$txt,
|
||
|
|
$ordarr,
|
||
|
|
$lineDim,
|
||
|
|
$posx,
|
||
|
|
$posy,
|
||
|
|
$width,
|
||
|
|
$strokewidth,
|
||
|
|
$wordspacing,
|
||
|
|
$leading,
|
||
|
|
$rise,
|
||
|
|
$fill,
|
||
|
|
$stroke,
|
||
|
|
$underline,
|
||
|
|
$linethrough,
|
||
|
|
$overline,
|
||
|
|
$clip,
|
||
|
|
$shadow,
|
||
|
|
);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @phpstan-param array<int, int> $ordarr
|
||
|
|
* @phpstan-param TTextDims|array{} $dim
|
||
|
|
* @throws \Throwable
|
||
|
|
*/
|
||
|
|
public function exposeOutTextLine(
|
||
|
|
string $txt,
|
||
|
|
array $ordarr,
|
||
|
|
array $dim,
|
||
|
|
float $posx = 0,
|
||
|
|
float $posy = 0,
|
||
|
|
float $width = 0,
|
||
|
|
float $strokewidth = 0,
|
||
|
|
float $wordspacing = 0,
|
||
|
|
float $leading = 0,
|
||
|
|
float $rise = 0,
|
||
|
|
bool $fill = true,
|
||
|
|
bool $stroke = false,
|
||
|
|
bool $underline = false,
|
||
|
|
bool $linethrough = false,
|
||
|
|
bool $overline = false,
|
||
|
|
bool $clip = false,
|
||
|
|
): string {
|
||
|
|
if ($txt === '' || $dim === []) {
|
||
|
|
return '';
|
||
|
|
}
|
||
|
|
/** @var TTextDims $lineDim */
|
||
|
|
$lineDim = \array_replace(self::DIM_DEFAULT, $dim);
|
||
|
|
return $this->outTextLine(
|
||
|
|
$txt,
|
||
|
|
$ordarr,
|
||
|
|
$lineDim,
|
||
|
|
$posx,
|
||
|
|
$posy,
|
||
|
|
$width,
|
||
|
|
$strokewidth,
|
||
|
|
$wordspacing,
|
||
|
|
$leading,
|
||
|
|
$rise,
|
||
|
|
$fill,
|
||
|
|
$stroke,
|
||
|
|
$underline,
|
||
|
|
$linethrough,
|
||
|
|
$overline,
|
||
|
|
$clip,
|
||
|
|
);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @phpstan-param array<int, int> $ordarr
|
||
|
|
* @phpstan-param TTextDims|array{} $dim
|
||
|
|
* @throws \Throwable
|
||
|
|
*/
|
||
|
|
public function exposeRawOutTextLine(
|
||
|
|
string $txt,
|
||
|
|
array $ordarr,
|
||
|
|
array $dim,
|
||
|
|
float $posx = 0,
|
||
|
|
float $posy = 0,
|
||
|
|
float $width = 0,
|
||
|
|
float $strokewidth = 0,
|
||
|
|
float $wordspacing = 0,
|
||
|
|
float $leading = 0,
|
||
|
|
float $rise = 0,
|
||
|
|
bool $fill = true,
|
||
|
|
bool $stroke = false,
|
||
|
|
bool $underline = false,
|
||
|
|
bool $linethrough = false,
|
||
|
|
bool $overline = false,
|
||
|
|
bool $clip = false,
|
||
|
|
): string {
|
||
|
|
if ($txt === '' || $dim === []) {
|
||
|
|
return '';
|
||
|
|
}
|
||
|
|
/** @var TTextDims $lineDim */
|
||
|
|
$lineDim = \array_replace(self::DIM_DEFAULT, $dim);
|
||
|
|
return $this->outTextLine(
|
||
|
|
$txt,
|
||
|
|
$ordarr,
|
||
|
|
$lineDim,
|
||
|
|
$posx,
|
||
|
|
$posy,
|
||
|
|
$width,
|
||
|
|
$strokewidth,
|
||
|
|
$wordspacing,
|
||
|
|
$leading,
|
||
|
|
$rise,
|
||
|
|
$fill,
|
||
|
|
$stroke,
|
||
|
|
$underline,
|
||
|
|
$linethrough,
|
||
|
|
$overline,
|
||
|
|
$clip,
|
||
|
|
);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @phpstan-param array<int, int> $ordarr
|
||
|
|
* @phpstan-param array<int, TextLinePos> $lines
|
||
|
|
* @phpstan-param TextShadow|null $shadow
|
||
|
|
* @throws \Throwable
|
||
|
|
*/
|
||
|
|
public function exposeOutTextLines(
|
||
|
|
array $ordarr,
|
||
|
|
array $lines,
|
||
|
|
float $posx,
|
||
|
|
float $posy,
|
||
|
|
float $width,
|
||
|
|
float $offset,
|
||
|
|
float $fontascent,
|
||
|
|
float $linespace = 0,
|
||
|
|
float $strokewidth = 0,
|
||
|
|
float $wordspacing = 0,
|
||
|
|
float $leading = 0,
|
||
|
|
float $rise = 0,
|
||
|
|
string $halign = '',
|
||
|
|
bool $jlast = true,
|
||
|
|
bool $fill = true,
|
||
|
|
bool $stroke = false,
|
||
|
|
bool $underline = false,
|
||
|
|
bool $linethrough = false,
|
||
|
|
bool $overline = false,
|
||
|
|
bool $clip = false,
|
||
|
|
?array $shadow = null,
|
||
|
|
): string {
|
||
|
|
if ($ordarr === [] || $lines === []) {
|
||
|
|
return '';
|
||
|
|
}
|
||
|
|
return $this->outTextLines(
|
||
|
|
$ordarr,
|
||
|
|
$lines,
|
||
|
|
$posx,
|
||
|
|
$posy,
|
||
|
|
$width,
|
||
|
|
$offset,
|
||
|
|
$fontascent,
|
||
|
|
$linespace,
|
||
|
|
$strokewidth,
|
||
|
|
$wordspacing,
|
||
|
|
$leading,
|
||
|
|
$rise,
|
||
|
|
$halign,
|
||
|
|
$jlast,
|
||
|
|
$fill,
|
||
|
|
$stroke,
|
||
|
|
$underline,
|
||
|
|
$linethrough,
|
||
|
|
$overline,
|
||
|
|
$clip,
|
||
|
|
$shadow,
|
||
|
|
);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @phpstan-param array<int, int> $ordarr
|
||
|
|
* @phpstan-param array<int, TextLinePos> $lines
|
||
|
|
* @phpstan-param TextShadow|null $shadow
|
||
|
|
* @throws \Throwable
|
||
|
|
*/
|
||
|
|
public function exposeRawOutTextLines(
|
||
|
|
array $ordarr,
|
||
|
|
array $lines,
|
||
|
|
float $posx,
|
||
|
|
float $posy,
|
||
|
|
float $width,
|
||
|
|
float $offset,
|
||
|
|
float $fontascent,
|
||
|
|
float $linespace = 0,
|
||
|
|
float $strokewidth = 0,
|
||
|
|
float $wordspacing = 0,
|
||
|
|
float $leading = 0,
|
||
|
|
float $rise = 0,
|
||
|
|
string $halign = '',
|
||
|
|
bool $jlast = true,
|
||
|
|
bool $fill = true,
|
||
|
|
bool $stroke = false,
|
||
|
|
bool $underline = false,
|
||
|
|
bool $linethrough = false,
|
||
|
|
bool $overline = false,
|
||
|
|
bool $clip = false,
|
||
|
|
?array $shadow = null,
|
||
|
|
): string {
|
||
|
|
return $this->outTextLines(
|
||
|
|
$ordarr,
|
||
|
|
$lines,
|
||
|
|
$posx,
|
||
|
|
$posy,
|
||
|
|
$width,
|
||
|
|
$offset,
|
||
|
|
$fontascent,
|
||
|
|
$linespace,
|
||
|
|
$strokewidth,
|
||
|
|
$wordspacing,
|
||
|
|
$leading,
|
||
|
|
$rise,
|
||
|
|
$halign,
|
||
|
|
$jlast,
|
||
|
|
$fill,
|
||
|
|
$stroke,
|
||
|
|
$underline,
|
||
|
|
$linethrough,
|
||
|
|
$overline,
|
||
|
|
$clip,
|
||
|
|
$shadow,
|
||
|
|
);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @phpstan-param array<int, int> $ordarr
|
||
|
|
* @phpstan-param TTextDims $dim
|
||
|
|
* @throws \Throwable
|
||
|
|
*/
|
||
|
|
public function exposeGetJustifiedString(string $txt, array $ordarr, array $dim, float $width = 0): string
|
||
|
|
{
|
||
|
|
return $this->getJustifiedString($txt, $ordarr, $dim, $width);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @phpstan-param array<int, int> $ordarr
|
||
|
|
* @phpstan-return TTextDims
|
||
|
|
* @throws \Throwable
|
||
|
|
*/
|
||
|
|
public function exposeGetOrdArrDims(array $ordarr): array
|
||
|
|
{
|
||
|
|
return $this->font->getOrdArrDims($ordarr);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @phpstan-param array<string, string> $phyphens
|
||
|
|
* @phpstan-param array<int, int> $ordarr
|
||
|
|
* @phpstan-return array<int, int>
|
||
|
|
* @throws \Throwable
|
||
|
|
*/
|
||
|
|
public function exposeHyphenateTextOrdArr(array $phyphens, array $ordarr): array
|
||
|
|
{
|
||
|
|
return $this->hyphenateTextOrdArr($phyphens, $ordarr);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @phpstan-param array<string, string> $phyphens
|
||
|
|
* @phpstan-param array<int, int> $ordarr
|
||
|
|
* @phpstan-return array<int, int>
|
||
|
|
* @throws \Throwable
|
||
|
|
*/
|
||
|
|
public function exposeHyphenateWordOrdArr(
|
||
|
|
array $phyphens,
|
||
|
|
array $ordarr,
|
||
|
|
int $leftmin = 1,
|
||
|
|
int $rightmin = 2,
|
||
|
|
int $charmin = 1,
|
||
|
|
int $charmax = 8,
|
||
|
|
): array {
|
||
|
|
return $this->hyphenateWordOrdArr($phyphens, $ordarr, $leftmin, $rightmin, $charmin, $charmax);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @phpstan-return array<int, int>
|
||
|
|
* @throws \Throwable
|
||
|
|
*/
|
||
|
|
public function exposeStrToOrdArr(string $txt): array
|
||
|
|
{
|
||
|
|
$ords = [];
|
||
|
|
foreach ($this->uniconv->strToOrdArr($txt) as $key => $ord) {
|
||
|
|
$ords[$key] = (int) $ord;
|
||
|
|
}
|
||
|
|
|
||
|
|
/** @var array<int, int> $ords */
|
||
|
|
return $ords;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @phpstan-param array<int, int> $ordarr
|
||
|
|
* @throws \Throwable
|
||
|
|
*/
|
||
|
|
public function exposeGetActualTextForOrdarr(array $ordarr): string
|
||
|
|
{
|
||
|
|
return $this->getActualTextForOrdarr($ordarr);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function exposeFormatPdfUaActualText(string $txt): string
|
||
|
|
{
|
||
|
|
return $this->formatPdfUaActualText($txt);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function exposeTagPdfUaTextContent(string $content, int $pid, string $actualText = ''): string
|
||
|
|
{
|
||
|
|
return $this->tagPdfUaTextContent($content, $pid, $actualText);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function exposeRegisterPdfUaAnnotation(int $oid, int $pid): void
|
||
|
|
{
|
||
|
|
$this->registerPdfUaAnnotation($oid, $pid);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @param array{float, float, float, float}|array{} $bbox Figure bounding box in points.
|
||
|
|
*/
|
||
|
|
public function exposeTagPdfUaFigureContent(string $content, int $pid, string $alt = '', array $bbox = []): string
|
||
|
|
{
|
||
|
|
return $this->tagPdfUaFigureContent($content, $pid, $alt, $bbox);
|
||
|
|
}
|
||
|
|
}
|