mirror of
https://github.com/PHPOffice/PhpSpreadsheet.git
synced 2026-09-10 18:16:34 +00:00
e742bf2294
* Attempt To Honor Fit to 1-Page Height for Html/Pdf Fix #3266. Each sheet in a spreadsheet can specify that it be set to fit width or height to a fixed number of pages. Mpdf and most browsers already handle the common case of fit to 1 page wide; I am unable to find a solution for Dompdf or Tcpdf. Code is added for the common case of fit to 1 page high when possible; this will usually work in Mpdf, Dompdf, and most browsers. I am not able to come up with a way to handle fit to more than 1 page wide or high. * Synchronizer Remove one unused assignment in test.
36 lines
1.4 KiB
PHP
36 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace PhpOffice\PhpSpreadsheetTests\Writer\Html;
|
|
|
|
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
|
use PhpOffice\PhpSpreadsheet\Writer\Html as Writer;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
class FixHeightTest extends TestCase
|
|
{
|
|
public function testFixHeight(): void
|
|
{
|
|
$spreadsheet = new Spreadsheet();
|
|
//$sheet0 = $spreadsheet->getActiveSheet();
|
|
$sheet1 = $spreadsheet->createSheet();
|
|
$sheet2 = $spreadsheet->createSheet();
|
|
$sheet3 = $spreadsheet->createSheet();
|
|
$sheet1->getPageSetup()->setFitToHeight(1);
|
|
$sheet2->getPageSetup()->setFitToHeight(2);
|
|
$sheet3->getPageSetup()->setFitToPage(true);
|
|
|
|
$writer = new Writer($spreadsheet);
|
|
$writer->writeAllSheets();
|
|
$header = $writer->generateHTMLHeader(true);
|
|
self::assertStringContainsString('table.sheet0', $header);
|
|
self::assertStringContainsString('table.sheet1', $header);
|
|
self::assertStringContainsString('table.sheet2', $header);
|
|
self::assertStringContainsString('table.sheet3', $header);
|
|
$count = substr_count($header, 'break-inside');
|
|
self::assertSame(4, $count); // 2 for sheet1, 2 for sheet3
|
|
self::assertStringContainsString('table.sheet1 { page-break-inside:avoid; break-inside:avoid }', $header);
|
|
self::assertStringContainsString('table.sheet3 { page-break-inside:avoid; break-inside:avoid }', $header);
|
|
$spreadsheet->disconnectWorkSheets();
|
|
}
|
|
}
|