From 5544df92084a54f6f6441b4cba87433ccc0ff837 Mon Sep 17 00:00:00 2001 From: Miura Toshitaka Date: Wed, 16 Oct 2024 09:52:48 +0900 Subject: [PATCH] Closing #798 --- src/PhpPresentation/Style/Font.php | 4 -- .../Tests/Reader/PowerPoint2007Test.php | 66 ++++++++++++++++++ tests/resources/files/issue_00798.pptx | Bin 0 -> 32984 bytes 3 files changed, 66 insertions(+), 4 deletions(-) create mode 100644 tests/resources/files/issue_00798.pptx diff --git a/src/PhpPresentation/Style/Font.php b/src/PhpPresentation/Style/Font.php index 2975df4ef..a18a9923f 100644 --- a/src/PhpPresentation/Style/Font.php +++ b/src/PhpPresentation/Style/Font.php @@ -214,10 +214,6 @@ public function getPanose(): string */ public function setPanose(string $pValue): self { - if (mb_strlen($pValue) !== 10) { - throw new InvalidParameterException('pValue', $pValue, 'The length is not equals to 10'); - } - $allowedChars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F']; foreach (mb_str_split($pValue) as $char) { if (!in_array($char, $allowedChars)) { diff --git a/tests/PhpPresentation/Tests/Reader/PowerPoint2007Test.php b/tests/PhpPresentation/Tests/Reader/PowerPoint2007Test.php index 51b6ac3bf..3c6cc23e8 100644 --- a/tests/PhpPresentation/Tests/Reader/PowerPoint2007Test.php +++ b/tests/PhpPresentation/Tests/Reader/PowerPoint2007Test.php @@ -1,4 +1,5 @@ getFont()->getCapitalization()); } + public function testLoadFile02(): void + { + $file = PHPPRESENTATION_TESTS_BASE_DIR . '/resources/files/issue_00798.pptx'; + $object = new PowerPoint2007(); + $oPhpPresentation = $object->load($file); + self::assertInstanceOf('PhpOffice\\PhpPresentation\\PhpPresentation', $oPhpPresentation); + // Document Properties + self::assertEquals('Elja van Tol', $oPhpPresentation->getDocumentProperties()->getCreator()); + self::assertEquals('Elja van Tol', $oPhpPresentation->getDocumentProperties()->getLastModifiedBy()); + self::assertEquals('', $oPhpPresentation->getDocumentProperties()->getTitle()); + self::assertEquals('', $oPhpPresentation->getDocumentProperties()->getSubject()); + self::assertEquals('', $oPhpPresentation->getDocumentProperties()->getDescription()); + self::assertEquals('', $oPhpPresentation->getDocumentProperties()->getKeywords()); + self::assertEquals('', $oPhpPresentation->getDocumentProperties()->getCategory()); + self::assertEquals('10', $oPhpPresentation->getDocumentProperties()->getRevision()); + self::assertEquals('', $oPhpPresentation->getDocumentProperties()->getStatus()); + self::assertIsArray($oPhpPresentation->getDocumentProperties()->getCustomProperties()); + self::assertCount(0, $oPhpPresentation->getDocumentProperties()->getCustomProperties()); + + // Presentation Properties + self::assertEquals(PresentationProperties::SLIDESHOW_TYPE_PRESENT, $oPhpPresentation->getPresentationProperties()->getSlideshowType()); + // Document Layout + self::assertEquals('', $oPhpPresentation->getLayout()->getDocumentLayout()); + self::assertEquals(338.6666666666667, $oPhpPresentation->getLayout()->getCX(DocumentLayout::UNIT_MILLIMETER)); + self::assertEquals(190.5, $oPhpPresentation->getLayout()->getCY(DocumentLayout::UNIT_MILLIMETER)); + + // Slides + self::assertCount(1, $oPhpPresentation->getAllSlides()); + + // Slide 1 + $oSlide1 = $oPhpPresentation->getSlide(0); + $arrayShape = (array) $oSlide1->getShapeCollection(); + self::assertCount(1, $arrayShape); + // Slide 1 : Shape 1 + /** @var Gd $oShape */ + $oShape = $arrayShape[0]; + self::assertInstanceOf(RichText::class, $oShape); + self::assertEquals('TextBox 8', $oShape->getName()); + self::assertEquals(16, $oShape->getHeight()); + self::assertEquals(122, $oShape->getWidth()); + self::assertEquals(573, $oShape->getOffsetX()); + self::assertEquals(454, $oShape->getOffsetY()); + $arrayParagraphs = $oShape->getParagraphs(); + $oParagraph = $arrayParagraphs[0]; + self::assertEquals(Alignment::HORIZONTAL_LEFT, $oParagraph->getAlignment()->getHorizontal()); + self::assertFalse($oParagraph->getAlignment()->isRTL()); + self::assertEquals(0, $oParagraph->getSpacingAfter()); + self::assertEquals(0, $oParagraph->getSpacingBefore()); + self::assertEquals(Paragraph::LINE_SPACING_MODE_PERCENT, $oParagraph->getLineSpacingMode()); + self::assertEquals(100, $oParagraph->getLineSpacing()); + $arrayRichText = $oParagraph->getRichTextElements(); + self::assertCount(1, $arrayRichText); + // Slide 1 : Shape 2 : Paragraph 1 + $oRichText = $arrayRichText[0]; + self::assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\RichText\\Run', $oRichText); + self::assertEquals('Classification: Internal', $oRichText->getText()); + self::assertFalse($oRichText->getFont()->isBold()); + self::assertEquals(10, $oRichText->getFont()->getSize()); + self::assertEquals('FF000000', $oRichText->getFont()->getColor()->getARGB()); + self::assertEquals('Calibri', $oRichText->getFont()->getName()); + self::assertEquals(Font::FORMAT_COMPLEX_SCRIPT, $oRichText->getFont()->getFormat()); + self::assertEquals(Font::CAPITALIZATION_NONE, $oRichText->getFont()->getCapitalization()); + self::assertCount(1, $arrayParagraphs); + } + public function testMarkAsFinal(): void { $file = PHPPRESENTATION_TESTS_BASE_DIR . '/resources/files/Sample_12.pptx'; diff --git a/tests/resources/files/issue_00798.pptx b/tests/resources/files/issue_00798.pptx new file mode 100644 index 0000000000000000000000000000000000000000..1bc6106040818e3bd98324f1aa3eae638eb8c463 GIT binary patch literal 32984 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 qenu`JhyVKe^5$@A>l?%Wc(p0_2o_u#6P!T