name file | size | edit | permission | action |
---|---|---|---|---|
.env | 2733 KB | December 22 2024 06:20:07 | 0644 | |
404.html | 58370 KB | November 20 2024 15:32:22 | 0644 | |
502.html | 58368 KB | November 20 2024 15:32:22 | 0644 | |
Modules | - | December 11 2024 21:02:56 | 0755 | |
README.md | 4158 KB | February 14 2023 12:31:56 | 0644 | |
app | - | December 11 2024 17:57:48 | 0755 | |
artisan | 1686 KB | February 14 2023 12:31:56 | 0644 | |
bootstrap | - | December 11 2024 20:23:36 | 0755 | |
composer.json | 3761 KB | December 11 2024 22:15:00 | 0644 | |
composer.lock | 512048 KB | December 11 2024 22:13:28 | 0644 | |
config | - | June 15 2025 02:09:36 | 0755 | |
database | - | December 05 2024 20:18:12 | 0755 | |
dfsdf dfds fd fds findex.html | 1420 KB | November 20 2024 15:32:24 | 0644 | |
error_log | 19441985 KB | July 18 2025 20:21:50 | 0644 | |
firoz | - | December 23 2024 13:24:46 | 0755 | |
index.php | 1667 KB | December 14 2024 05:20:36 | 0644 | |
lang | - | December 11 2024 21:02:48 | 0755 | |
modules_statuses.json | 472 KB | November 20 2024 15:32:24 | 0644 | |
mpos | - | March 31 2025 02:36:31 | 0755 | |
package.json | 226 KB | February 14 2023 12:31:56 | 0644 | |
phpunit.xml | 1146 KB | February 14 2023 12:31:56 | 0644 | |
public | - | March 31 2025 02:36:31 | 0755 | |
resources | - | December 11 2024 21:10:22 | 0755 | |
routes | - | June 15 2025 02:09:31 | 0755 | |
storage | - | December 11 2024 21:12:44 | 0755 | |
tests | - | December 05 2024 20:18:12 | 0755 | |
vendor | - | December 11 2024 22:13:30 | 0755 | |
vite.config.js | 263 KB | February 14 2023 12:31:56 | 0644 |
' . $lContent . ' | '; $html .= '' . $cContent . ' | '; $html .= '' . $rContent . ' | '; $html .= '
' . $hdet[0] . ' | '; $oddhtml .= '' . $hdet[1] . ' | '; $oddhtml .= '' . $hdet[2] . ' | '; $oddhtml .= '
' . $hdet[2] . ' | '; $evenhtml .= '' . $hdet[1] . ' | '; $evenhtml .= '' . $hdet[0] . ' | '; $evenhtml .= '
' . $hdet[0] . ' | '; $oddhtml .= '' . $hdet[1] . ' | '; $oddhtml .= '' . $hdet[2] . ' | '; $oddhtml .= '
' . $hdet[2] . ' | '; $evenhtml .= '' . $hdet[1] . ' | '; $evenhtml .= '' . $hdet[0] . ' | '; $evenhtml .= '
did not output top margins/padding for 1st/2nd div
if ($array_size == 0) {
$this->finishFlowingBlock(true);
} // true = END of flowing block
// mPDF 6
// ALL the chunks of textbuffer need to have at least basic OTLdata set
// First make sure each element/chunk has the OTLdata for Bidi set.
for ($i = 0; $i < $array_size; $i++) {
if (empty($arrayaux[$i][18])) {
if (substr($arrayaux[$i][0], 0, 3) == Mpdf::OBJECT_IDENTIFIER) { // object identifier has been identified!
$unicode = [0xFFFC]; // Object replacement character
} else {
$unicode = $this->UTF8StringToArray($arrayaux[$i][0], false);
}
$is_strong = false;
$this->getBasicOTLdata($arrayaux[$i][18], $unicode, $is_strong);
}
// Gets messed up if try and use core fonts inside a paragraph of text which needs to be BiDi re-ordered or OTLdata set
if (($blockdir == 'rtl' || $this->biDirectional) && isset($arrayaux[$i][4]) && in_array($arrayaux[$i][4], ['ccourier', 'ctimes', 'chelvetica', 'csymbol', 'czapfdingbats'])) {
throw new \Mpdf\MpdfException("You cannot use core fonts in a document which contains RTL text.");
}
}
// mPDF 6
// Process bidirectional text ready for bidi-re-ordering (which is done after line-breaks are established in WriteFlowingBlock etc.)
if (($blockdir == 'rtl' || $this->biDirectional) && !$table_draft) {
if (empty($this->otl)) {
$this->otl = new Otl($this, $this->fontCache);
}
$this->otl->bidiPrepare($arrayaux, $blockdir);
$array_size = count($arrayaux);
}
// Remove empty items // mPDF 6
for ($i = $array_size - 1; $i > 0; $i--) {
if ('' === $arrayaux[$i][0] && (isset($arrayaux[$i][16]) && $arrayaux[$i][16] !== '0') && empty($arrayaux[$i][7])) {
unset($arrayaux[$i]);
}
}
// Correct adjoining borders for inline elements
if (isset($arrayaux[0][16])) {
$lastspanborder = $arrayaux[0][16];
} else {
$lastspanborder = false;
}
for ($i = 1; $i < $array_size; $i++) {
if (isset($arrayaux[$i][16]) && $arrayaux[$i][16] == $lastspanborder &&
((!isset($arrayaux[$i][9]['bord-decoration']) && !isset($arrayaux[$i - 1][9]['bord-decoration'])) ||
(isset($arrayaux[$i][9]['bord-decoration']) && isset($arrayaux[$i - 1][9]['bord-decoration']) && $arrayaux[$i][9]['bord-decoration'] == $arrayaux[$i - 1][9]['bord-decoration'])
)
) {
if (isset($arrayaux[$i][16]['R'])) {
$lastspanborder = $arrayaux[$i][16];
} else {
$lastspanborder = false;
}
$arrayaux[$i][16]['L']['s'] = 0;
$arrayaux[$i][16]['L']['w'] = 0;
$arrayaux[$i - 1][16]['R']['s'] = 0;
$arrayaux[$i - 1][16]['R']['w'] = 0;
} else {
if (isset($arrayaux[$i][16]['R'])) {
$lastspanborder = $arrayaux[$i][16];
} else {
$lastspanborder = false;
}
}
}
for ($i = 0; $i < $array_size; $i++) {
// COLS
$oldcolumn = $this->CurrCol;
$vetor = isset($arrayaux[$i]) ? $arrayaux[$i] : null;
if ($i == 0 && $vetor[0] != "\n" && ! $this->ispre) {
$vetor[0] = ltrim($vetor[0]);
if (!empty($vetor[18])) {
$this->otl->trimOTLdata($vetor[18], true, false);
} // *OTL*
}
// FIXED TO ALLOW IT TO SHOW '0'
if (empty($vetor[0]) && !($vetor[0] === '0') && empty($vetor[7])) {
// Ignore empty text and not carrying an internal link
// Check if it is the last element. If so then finish printing the block
if ($i == ($array_size - 1)) {
$this->finishFlowingBlock(true);
} // true = END of flowing block
continue;
}
// Activating buffer properties
if (isset($vetor[11]) && $vetor[11] != '') { // Font Size
if ($is_table && $this->shrin_k) {
$this->SetFontSize($vetor[11] / $this->shrin_k, false);
} else {
$this->SetFontSize($vetor[11], false);
}
}
if (isset($vetor[17]) && !empty($vetor[17])) { // TextShadow
$this->textshadow = $vetor[17];
}
if (isset($vetor[16]) && !empty($vetor[16])) { // Border
$this->spanborddet = $vetor[16];
$this->spanborder = true;
}
if (isset($vetor[15])) { // Word spacing
$this->wSpacingCSS = $vetor[15];
if ($this->wSpacingCSS && strtoupper($this->wSpacingCSS) != 'NORMAL') {
$this->minwSpacing = $this->sizeConverter->convert($this->wSpacingCSS, $this->FontSize) / $this->shrin_k; // mPDF 5.7.3
}
}
if (isset($vetor[14])) { // Letter spacing
$this->lSpacingCSS = $vetor[14];
if (($this->lSpacingCSS || $this->lSpacingCSS === '0') && strtoupper($this->lSpacingCSS) != 'NORMAL') {
$this->fixedlSpacing = $this->sizeConverter->convert($this->lSpacingCSS, $this->FontSize) / $this->shrin_k; // mPDF 5.7.3
}
}
if (isset($vetor[10]) and ! empty($vetor[10])) { // Background color
$this->spanbgcolorarray = $vetor[10];
$this->spanbgcolor = true;
}
if (isset($vetor[9]) and ! empty($vetor[9])) { // Text parameters - Outline + hyphens
$this->textparam = $vetor[9];
$this->SetTextOutline($this->textparam);
// mPDF 5.7.3 inline text-decoration parameters
if ($is_table && $this->shrin_k) {
if (isset($this->textparam['text-baseline'])) {
$this->textparam['text-baseline'] /= $this->shrin_k;
}
if (isset($this->textparam['decoration-baseline'])) {
$this->textparam['decoration-baseline'] /= $this->shrin_k;
}
if (isset($this->textparam['decoration-fontsize'])) {
$this->textparam['decoration-fontsize'] /= $this->shrin_k;
}
}
}
if (isset($vetor[8])) { // mPDF 5.7.1
$this->textvar = $vetor[8];
}
if (isset($vetor[7]) and $vetor[7] != '') { // internal target:
$ily = $this->y;
if ($this->table_rotate) {
$this->internallink[$vetor[7]] = ["Y" => $ily, "PAGE" => $this->page, "tbrot" => true];
} elseif ($this->kwt) {
$this->internallink[$vetor[7]] = ["Y" => $ily, "PAGE" => $this->page, "kwt" => true];
} elseif ($this->ColActive) {
$this->internallink[$vetor[7]] = ["Y" => $ily, "PAGE" => $this->page, "col" => $this->CurrCol];
} elseif (!$this->keep_block_together) {
$this->internallink[$vetor[7]] = ["Y" => $ily, "PAGE" => $this->page];
}
if (empty($vetor[0])) { // Ignore empty text
// Check if it is the last element. If so then finish printing the block
if ($i == ($array_size - 1)) {
$this->finishFlowingBlock(true);
} // true = END of flowing block
continue;
}
}
if (isset($vetor[5]) and $vetor[5] != '') { // Language // mPDF 6
$this->currentLang = $vetor[5];
}
if (isset($vetor[4]) and $vetor[4] != '') { // Font Family
$font = $this->SetFont($vetor[4], $this->FontStyle, 0, false);
}
if (!empty($vetor[3])) { // Font Color
$cor = $vetor[3];
$this->SetTColor($cor);
}
if (isset($vetor[2]) and $vetor[2] != '') { // Bold,Italic styles
$this->SetStyles($vetor[2]);
}
if (isset($vetor[12]) and $vetor[12] != '') { // Requested Bold,Italic
$this->ReqFontStyle = $vetor[12];
}
if (isset($vetor[1]) and $vetor[1] != '') { // LINK
if (strpos($vetor[1], ".") === false && strpos($vetor[1], "@") !== 0) { // assuming every external link has a dot indicating extension (e.g: .html .txt .zip www.somewhere.com etc.)
// Repeated reference to same anchor?
while (array_key_exists($vetor[1], $this->internallink)) {
$vetor[1] = "#" . $vetor[1];
}
$this->internallink[$vetor[1]] = $this->AddLink();
$vetor[1] = $this->internallink[$vetor[1]];
}
$this->HREF = $vetor[1]; // HREF link style set here ******
}
// SPECIAL CONTENT - IMAGES & FORM OBJECTS
// Print-out special content
if (substr($vetor[0], 0, 3) == Mpdf::OBJECT_IDENTIFIER) { // identifier has been identified!
$objattr = $this->_getObjAttr($vetor[0]);
/* -- TABLES -- */
if ($objattr['type'] == 'nestedtable') {
if ($objattr['nestedcontent']) {
$level = $objattr['level'];
$table = &$this->table[$level][$objattr['table']];
if ($table_draft) {
$this->y += $this->table[($level + 1)][$objattr['nestedcontent']]['h']; // nested table height
$this->finishFlowingBlock(false, 'nestedtable');
} else {
$cell = &$table['cells'][$objattr['row']][$objattr['col']];
$this->finishFlowingBlock(false, 'nestedtable');
$save_dw = $this->divwidth;
$save_buffer = $this->cellBorderBuffer;
$this->cellBorderBuffer = [];
$ncx = $this->x;
list($dummyx, $w) = $this->_tableGetWidth($table, $objattr['row'], $objattr['col']);
$ntw = $this->table[($level + 1)][$objattr['nestedcontent']]['w']; // nested table width
if (!$this->simpleTables) {
if ($this->packTableData) {
list($bt, $br, $bb, $bl) = $this->_getBorderWidths($cell['borderbin']);
} else {
$br = $cell['border_details']['R']['w'];
$bl = $cell['border_details']['L']['w'];
}
if ($table['borders_separate']) {
$innerw = $w - $bl - $br - $cell['padding']['L'] - $cell['padding']['R'] - $table['border_spacing_H'];
} else {
$innerw = $w - $bl / 2 - $br / 2 - $cell['padding']['L'] - $cell['padding']['R'];
}
} elseif ($this->simpleTables) {
if ($table['borders_separate']) {
$innerw = $w - $table['simple']['border_details']['L']['w'] - $table['simple']['border_details']['R']['w'] - $cell['padding']['L'] - $cell['padding']['R'] - $table['border_spacing_H'];
} else {
$innerw = $w - $table['simple']['border_details']['L']['w'] / 2 - $table['simple']['border_details']['R']['w'] / 2 - $cell['padding']['L'] - $cell['padding']['R'];
}
}
if ($cell['a'] == 'C' || $this->table[($level + 1)][$objattr['nestedcontent']]['a'] == 'C') {
$ncx += ($innerw - $ntw) / 2;
} elseif ($cell['a'] == 'R' || $this->table[($level + 1)][$objattr['nestedcontent']]['a'] == 'R') {
$ncx += $innerw - $ntw;
}
$this->x = $ncx;
$this->_tableWrite($this->table[($level + 1)][$objattr['nestedcontent']]);
$this->cellBorderBuffer = $save_buffer;
$this->x = $bak_x;
$this->divwidth = $save_dw;
}
$this->newFlowingBlock($this->divwidth, $this->divheight, $align, $is_table, $blockstate, false, $blockdir, $table_draft);
}
} else {
/* -- END TABLES -- */
if ($is_table) { // *TABLES*
$maxWidth = $this->divwidth; // *TABLES*
} // *TABLES*
else { // *TABLES*
$maxWidth = $this->divwidth - ($this->blk[$this->blklvl]['padding_left'] + $this->blk[$this->blklvl]['border_left']['w'] + $this->blk[$this->blklvl]['padding_right'] + $this->blk[$this->blklvl]['border_right']['w']);
} // *TABLES*
/* -- CSS-IMAGE-FLOAT -- */
// If float (already) exists at this level
if (isset($this->floatmargins['R']) && $this->y <= $this->floatmargins['R']['y1'] && $this->y >= $this->floatmargins['R']['y0']) {
$maxWidth -= $this->floatmargins['R']['w'];
}
if (isset($this->floatmargins['L']) && $this->y <= $this->floatmargins['L']['y1'] && $this->y >= $this->floatmargins['L']['y0']) {
$maxWidth -= $this->floatmargins['L']['w'];
}
/* -- END CSS-IMAGE-FLOAT -- */
list($skipln) = $this->inlineObject($objattr['type'], '', $this->y, $objattr, $this->lMargin, ($this->flowingBlockAttr['contentWidth'] / Mpdf::SCALE), $maxWidth, $this->flowingBlockAttr['height'], false, $is_table);
// 1 -> New line needed because of width
// -1 -> Will fit width on line but NEW PAGE REQUIRED because of height
// -2 -> Will not fit on line therefore needs new line but thus NEW PAGE REQUIRED
$iby = $this->y;
$oldpage = $this->page;
$oldcol = $this->CurrCol;
if (($skipln == 1 || $skipln == -2) && !isset($objattr['float'])) {
$this->finishFlowingBlock(false, $objattr['type']);
$this->newFlowingBlock($this->divwidth, $this->divheight, $align, $is_table, $blockstate, false, $blockdir, $table_draft);
}
if (!$table_draft) {
$thispage = $this->page;
if ($this->CurrCol != $oldcol) {
$changedcol = true;
} else {
$changedcol = false;
}
// the previous lines can already have triggered page break or column change
if (!$changedcol && $skipln < 0 && $this->AcceptPageBreak() && $thispage == $oldpage) {
$this->AddPage($this->CurOrientation);
// Added to correct Images already set on line before page advanced
// i.e. if second inline image on line is higher than first and forces new page
if (count($this->objectbuffer)) {
$yadj = $iby - $this->y;
foreach ($this->objectbuffer as $ib => $val) {
if ($this->objectbuffer[$ib]['OUTER-Y']) {
$this->objectbuffer[$ib]['OUTER-Y'] -= $yadj;
}
if ($this->objectbuffer[$ib]['BORDER-Y']) {
$this->objectbuffer[$ib]['BORDER-Y'] -= $yadj;
}
if ($this->objectbuffer[$ib]['INNER-Y']) {
$this->objectbuffer[$ib]['INNER-Y'] -= $yadj;
}
}
}
}
// Added to correct for OddEven Margins
if ($this->page != $oldpage) {
if (($this->page - $oldpage) % 2 == 1) {
$bak_x += $this->MarginCorrection;
}
$oldpage = $this->page;
$y = $this->tMargin - $paint_ht_corr;
$this->oldy = $this->tMargin - $paint_ht_corr;
$old_height = 0;
}
$this->x = $bak_x;
/* -- COLUMNS -- */
// COLS
// OR COLUMN CHANGE
if ($this->CurrCol != $oldcolumn) {
if ($this->directionality == 'rtl') { // *OTL*
$bak_x -= ($this->CurrCol - $oldcolumn) * ($this->ColWidth + $this->ColGap); // *OTL*
} // *OTL*
else { // *OTL*
$bak_x += ($this->CurrCol - $oldcolumn) * ($this->ColWidth + $this->ColGap);
} // *OTL*
$this->x = $bak_x;
$oldcolumn = $this->CurrCol;
$y = $this->y0 - $paint_ht_corr;
$this->oldy = $this->y0 - $paint_ht_corr;
$old_height = 0;
}
/* -- END COLUMNS -- */
}
/* -- CSS-IMAGE-FLOAT -- */
if ($objattr['type'] == 'image' && isset($objattr['float'])) {
$fy = $this->y;
// DIV TOP MARGIN/BORDER/PADDING
if ($this->flowingBlockAttr['newblock'] && ($this->flowingBlockAttr['blockstate'] == 1 || $this->flowingBlockAttr['blockstate'] == 3) && $this->flowingBlockAttr['lineCount'] == 0) {
$fy += $this->blk[$this->blklvl]['margin_top'] + $this->blk[$this->blklvl]['padding_top'] + $this->blk[$this->blklvl]['border_top']['w'];
}
if ($objattr['float'] == 'R') {
$fx = $this->w - $this->rMargin - $objattr['width'] - ($this->blk[$this->blklvl]['outer_right_margin'] + $this->blk[$this->blklvl]['border_right']['w'] + $this->blk[$this->blklvl]['padding_right']);
} elseif ($objattr['float'] == 'L') {
$fx = $this->lMargin + ($this->blk[$this->blklvl]['outer_left_margin'] + $this->blk[$this->blklvl]['border_left']['w'] + $this->blk[$this->blklvl]['padding_left']);
}
$w = $objattr['width'];
$h = abs($objattr['height']);
$widthLeft = $maxWidth - ($this->flowingBlockAttr['contentWidth'] / Mpdf::SCALE);
$maxHeight = $this->h - ($this->tMargin + $this->margin_header + $this->bMargin + 10);
// For Images
$extraWidth = ($objattr['border_left']['w'] + $objattr['border_right']['w'] + $objattr['margin_left'] + $objattr['margin_right']);
$extraHeight = ($objattr['border_top']['w'] + $objattr['border_bottom']['w'] + $objattr['margin_top'] + $objattr['margin_bottom']);
if ($objattr['itype'] == 'wmf' || $objattr['itype'] == 'svg') {
$file = $objattr['file'];
$info = $this->formobjects[$file];
} else {
$file = $objattr['file'];
$info = $this->images[$file];
}
$img_w = $w - $extraWidth;
$img_h = $h - $extraHeight;
if ($objattr['border_left']['w']) {
$objattr['BORDER-WIDTH'] = $img_w + (($objattr['border_left']['w'] + $objattr['border_right']['w']) / 2);
$objattr['BORDER-HEIGHT'] = $img_h + (($objattr['border_top']['w'] + $objattr['border_bottom']['w']) / 2);
$objattr['BORDER-X'] = $fx + $objattr['margin_left'] + (($objattr['border_left']['w']) / 2);
$objattr['BORDER-Y'] = $fy + $objattr['margin_top'] + (($objattr['border_top']['w']) / 2);
}
$objattr['INNER-WIDTH'] = $img_w;
$objattr['INNER-HEIGHT'] = $img_h;
$objattr['INNER-X'] = $fx + $objattr['margin_left'] + ($objattr['border_left']['w']);
$objattr['INNER-Y'] = $fy + $objattr['margin_top'] + ($objattr['border_top']['w']);
$objattr['ID'] = $info['i'];
$objattr['OUTER-WIDTH'] = $w;
$objattr['OUTER-HEIGHT'] = $h;
$objattr['OUTER-X'] = $fx;
$objattr['OUTER-Y'] = $fy;
if ($objattr['float'] == 'R') {
// If R float already exists at this level
$this->floatmargins['R']['skipline'] = false;
if (isset($this->floatmargins['R']['y1']) && $this->floatmargins['R']['y1'] > 0 && $fy < $this->floatmargins['R']['y1']) {
$this->WriteFlowingBlock($vetor[0], $vetor[18]); // mPDF 5.7.1
} // If L float already exists at this level
elseif (isset($this->floatmargins['L']['y1']) && $this->floatmargins['L']['y1'] > 0 && $fy < $this->floatmargins['L']['y1']) {
// Final check distance between floats is not now too narrow to fit text
$mw = 2 * $this->GetCharWidth('W', false);
if (($this->blk[$this->blklvl]['inner_width'] - $w - $this->floatmargins['L']['w']) < $mw) {
$this->WriteFlowingBlock($vetor[0], $vetor[18]); // mPDF 5.7.1
} else {
$this->floatmargins['R']['x'] = $fx;
$this->floatmargins['R']['w'] = $w;
$this->floatmargins['R']['y0'] = $fy;
$this->floatmargins['R']['y1'] = $fy + $h;
if ($skipln == 1) {
$this->floatmargins['R']['skipline'] = true;
$this->floatmargins['R']['id'] = count($this->floatbuffer) + 0;
$objattr['skipline'] = true;
}
$this->floatbuffer[] = $objattr;
}
} else {
$this->floatmargins['R']['x'] = $fx;
$this->floatmargins['R']['w'] = $w;
$this->floatmargins['R']['y0'] = $fy;
$this->floatmargins['R']['y1'] = $fy + $h;
if ($skipln == 1) {
$this->floatmargins['R']['skipline'] = true;
$this->floatmargins['R']['id'] = count($this->floatbuffer) + 0;
$objattr['skipline'] = true;
}
$this->floatbuffer[] = $objattr;
}
} elseif ($objattr['float'] == 'L') {
// If L float already exists at this level
$this->floatmargins['L']['skipline'] = false;
if (isset($this->floatmargins['L']['y1']) && $this->floatmargins['L']['y1'] > 0 && $fy < $this->floatmargins['L']['y1']) {
$this->floatmargins['L']['skipline'] = false;
$this->WriteFlowingBlock($vetor[0], $vetor[18]); // mPDF 5.7.1
} // If R float already exists at this level
elseif (isset($this->floatmargins['R']['y1']) && $this->floatmargins['R']['y1'] > 0 && $fy < $this->floatmargins['R']['y1']) {
// Final check distance between floats is not now too narrow to fit text
$mw = 2 * $this->GetCharWidth('W', false);
if (($this->blk[$this->blklvl]['inner_width'] - $w - $this->floatmargins['R']['w']) < $mw) {
$this->WriteFlowingBlock($vetor[0], $vetor[18]); // mPDF 5.7.1
} else {
$this->floatmargins['L']['x'] = $fx + $w;
$this->floatmargins['L']['w'] = $w;
$this->floatmargins['L']['y0'] = $fy;
$this->floatmargins['L']['y1'] = $fy + $h;
if ($skipln == 1) {
$this->floatmargins['L']['skipline'] = true;
$this->floatmargins['L']['id'] = count($this->floatbuffer) + 0;
$objattr['skipline'] = true;
}
$this->floatbuffer[] = $objattr;
}
} else {
$this->floatmargins['L']['x'] = $fx + $w;
$this->floatmargins['L']['w'] = $w;
$this->floatmargins['L']['y0'] = $fy;
$this->floatmargins['L']['y1'] = $fy + $h;
if ($skipln == 1) {
$this->floatmargins['L']['skipline'] = true;
$this->floatmargins['L']['id'] = count($this->floatbuffer) + 0;
$objattr['skipline'] = true;
}
$this->floatbuffer[] = $objattr;
}
}
} else {
/* -- END CSS-IMAGE-FLOAT -- */
$this->WriteFlowingBlock($vetor[0], (isset($vetor[18]) ? $vetor[18] : null)); // mPDF 5.7.1
/* -- CSS-IMAGE-FLOAT -- */
}
/* -- END CSS-IMAGE-FLOAT -- */
} // *TABLES*
} // END If special content
else { // THE text
if ($this->tableLevel) {
$paint_ht_corr = 0;
} // To move the y up when new column/page started if div border needed
else {
$paint_ht_corr = $this->blk[$this->blklvl]['border_top']['w'];
}
if ($vetor[0] == "\n") { // We are reading a
now turned into newline ("\n")
if ($this->flowingBlockAttr['content']) {
$this->finishFlowingBlock(false, 'br');
} elseif ($is_table) {
$this->y+= $this->_computeLineheight($this->cellLineHeight);
} elseif (!$is_table) {
$this->DivLn($this->lineheight);
if ($this->ColActive) {
$this->breakpoints[$this->CurrCol][] = $this->y;
} // *COLUMNS*
}
// Added to correct for OddEven Margins
if ($this->page != $oldpage) {
if (($this->page - $oldpage) % 2 == 1) {
$bak_x += $this->MarginCorrection;
}
$oldpage = $this->page;
$y = $this->tMargin - $paint_ht_corr;
$this->oldy = $this->tMargin - $paint_ht_corr;
$old_height = 0;
}
$this->x = $bak_x;
/* -- COLUMNS -- */
// COLS
// OR COLUMN CHANGE
if ($this->CurrCol != $oldcolumn) {
if ($this->directionality == 'rtl') { // *OTL*
$bak_x -= ($this->CurrCol - $oldcolumn) * ($this->ColWidth + $this->ColGap); // *OTL*
} // *OTL*
else { // *OTL*
$bak_x += ($this->CurrCol - $oldcolumn) * ($this->ColWidth + $this->ColGap);
} // *OTL*
$this->x = $bak_x;
$oldcolumn = $this->CurrCol;
$y = $this->y0 - $paint_ht_corr;
$this->oldy = $this->y0 - $paint_ht_corr;
$old_height = 0;
}
/* -- END COLUMNS -- */
$this->newFlowingBlock($this->divwidth, $this->divheight, $align, $is_table, $blockstate, false, $blockdir, $table_draft);
} else {
$this->WriteFlowingBlock($vetor[0], $vetor[18]); // mPDF 5.7.1
// Added to correct for OddEven Margins
if ($this->page != $oldpage) {
if (($this->page - $oldpage) % 2 == 1) {
$bak_x += $this->MarginCorrection;
$this->x = $bak_x;
}
$oldpage = $this->page;
$y = $this->tMargin - $paint_ht_corr;
$this->oldy = $this->tMargin - $paint_ht_corr;
$old_height = 0;
}
/* -- COLUMNS -- */
// COLS
// OR COLUMN CHANGE
if ($this->CurrCol != $oldcolumn) {
if ($this->directionality == 'rtl') { // *OTL*
$bak_x -= ($this->CurrCol - $oldcolumn) * ($this->ColWidth + $this->ColGap); // *OTL*
} // *OTL*
else { // *OTL*
$bak_x += ($this->CurrCol - $oldcolumn) * ($this->ColWidth + $this->ColGap);
} // *OTL*
$this->x = $bak_x;
$oldcolumn = $this->CurrCol;
$y = $this->y0 - $paint_ht_corr;
$this->oldy = $this->y0 - $paint_ht_corr;
$old_height = 0;
}
/* -- END COLUMNS -- */
}
}
// Check if it is the last element. If so then finish printing the block
if ($i == ($array_size - 1)) {
$this->finishFlowingBlock(true); // true = END of flowing block
// Added to correct for OddEven Margins
if ($this->page != $oldpage) {
if (($this->page - $oldpage) % 2 == 1) {
$bak_x += $this->MarginCorrection;
$this->x = $bak_x;
}
$oldpage = $this->page;
$y = $this->tMargin - $paint_ht_corr;
$this->oldy = $this->tMargin - $paint_ht_corr;
$old_height = 0;
}
/* -- COLUMNS -- */
// COLS
// OR COLUMN CHANGE
if ($this->CurrCol != $oldcolumn) {
if ($this->directionality == 'rtl') { // *OTL*
$bak_x -= ($this->CurrCol - $oldcolumn) * ($this->ColWidth + $this->ColGap); // *OTL*
} // *OTL*
else { // *OTL*
$bak_x += ($this->CurrCol - $oldcolumn) * ($this->ColWidth + $this->ColGap);
} // *OTL*
$this->x = $bak_x;
$oldcolumn = $this->CurrCol;
$y = $this->y0 - $paint_ht_corr;
$this->oldy = $this->y0 - $paint_ht_corr;
$old_height = 0;
}
/* -- END COLUMNS -- */
}
// RESETTING VALUES
$this->SetTColor($this->colorConverter->convert(0, $this->PDFAXwarnings));
$this->SetDColor($this->colorConverter->convert(0, $this->PDFAXwarnings));
$this->SetFColor($this->colorConverter->convert(255, $this->PDFAXwarnings));
$this->colorarray = '';
$this->spanbgcolorarray = '';
$this->spanbgcolor = false;
$this->spanborder = false;
$this->spanborddet = [];
$this->HREF = '';
$this->textparam = [];
$this->SetTextOutline();
$this->textvar = 0x00; // mPDF 5.7.1
$this->OTLtags = [];
$this->textshadow = '';
$this->currentfontfamily = '';
$this->currentfontsize = '';
$this->currentfontstyle = '';
$this->currentLang = $this->default_lang; // mPDF 6
$this->RestrictUnicodeFonts($this->default_available_fonts); // mPDF 6
/* -- TABLES -- */
if ($this->tableLevel) {
$this->SetLineHeight('', $this->table[1][1]['cellLineHeight']); // *TABLES*
} else { /* -- END TABLES -- */
if (isset($this->blk[$this->blklvl]['line_height']) && $this->blk[$this->blklvl]['line_height']) {
$this->SetLineHeight('', $this->blk[$this->blklvl]['line_height']); // sets default line height
}
}
$this->ResetStyles();
$this->lSpacingCSS = '';
$this->wSpacingCSS = '';
$this->fixedlSpacing = false;
$this->minwSpacing = 0;
$this->SetDash();
$this->dash_on = false;
$this->dotted_on = false;
}//end of for(i=0;i