���� JFIF �� � ( %"1"%)+...383,7(-.-
![]() Server : Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.20 System : Linux st2.domain.com 3.10.0-1127.10.1.el7.x86_64 #1 SMP Wed Jun 3 14:28:03 UTC 2020 x86_64 User : apache ( 48) PHP Version : 7.4.20 Disable Function : NONE Directory : /var/www/html/img.123vid.top/vendor/phpoffice/phpword/src/PhpWord/Writer/Word2007/Style/ |
<?php /** * This file is part of PHPWord - A pure PHP library for reading and writing * word processing documents. * * PHPWord is free software distributed under the terms of the GNU Lesser * General Public License version 3 as published by the Free Software Foundation. * * For the full copyright and license information, please read the LICENSE * file that was distributed with this source code. For the full list of * contributors, visit https://github.com/PHPOffice/PHPWord/contributors. * * @see https://github.com/PHPOffice/PHPWord * @copyright 2010-2018 PHPWord contributors * @license http://www.gnu.org/licenses/lgpl.txt LGPL version 3 */ namespace PhpOffice\PhpWord\Writer\Word2007\Style; use PhpOffice\Common\XMLWriter; use PhpOffice\PhpWord\Style\Frame as FrameStyle; use PhpOffice\PhpWord\Writer\Word2007\Element\ParagraphAlignment; /** * Frame style writer * * @since 0.12.0 */ class Frame extends AbstractStyle { const PHP_32BIT_INT_MAX = 2147483647; /** * Write style. */ public function write() { $style = $this->getStyle(); if (!$style instanceof FrameStyle) { return; } $xmlWriter = $this->getXmlWriter(); $maxZIndex = min(PHP_INT_MAX, self::PHP_32BIT_INT_MAX); $zIndices = array(FrameStyle::WRAP_INFRONT => $maxZIndex, FrameStyle::WRAP_BEHIND => -$maxZIndex); $properties = array( 'width' => 'width', 'height' => 'height', 'left' => 'margin-left', 'top' => 'margin-top', 'wrapDistanceTop' => 'mso-wrap-distance-top', 'wrapDistanceBottom' => 'mso-wrap-distance-bottom', 'wrapDistanceLeft' => 'mso-wrap-distance-left', 'wrapDistanceRight' => 'mso-wrap-distance-right', ); $sizeStyles = $this->getStyles($style, $properties, $style->getUnit()); $properties = array( 'pos' => 'position', 'hPos' => 'mso-position-horizontal', 'vPos' => 'mso-position-vertical', 'hPosRelTo' => 'mso-position-horizontal-relative', 'vPosRelTo' => 'mso-position-vertical-relative', ); $posStyles = $this->getStyles($style, $properties); $styles = array_merge($sizeStyles, $posStyles); // zIndex for infront & behind wrap $wrap = $style->getWrap(); if ($wrap !== null && isset($zIndices[$wrap])) { $styles['z-index'] = $zIndices[$wrap]; $wrap = null; } // Style attribute $xmlWriter->writeAttribute('style', $this->assembleStyle($styles)); $this->writeWrap($xmlWriter, $style, $wrap); } /** * Write alignment. */ public function writeAlignment() { $style = $this->getStyle(); if (!$style instanceof FrameStyle) { return; } $xmlWriter = $this->getXmlWriter(); $xmlWriter->startElement('w:pPr'); if ('' !== $style->getAlignment()) { $paragraphAlignment = new ParagraphAlignment($style->getAlignment()); $xmlWriter->startElement($paragraphAlignment->getName()); foreach ($paragraphAlignment->getAttributes() as $attributeName => $attributeValue) { $xmlWriter->writeAttribute($attributeName, $attributeValue); } $xmlWriter->endElement(); } $xmlWriter->endElement(); } /** * Write wrap. * * @param \PhpOffice\Common\XMLWriter $xmlWriter * @param \PhpOffice\PhpWord\Style\Frame $style * @param string $wrap */ private function writeWrap(XMLWriter $xmlWriter, FrameStyle $style, $wrap) { if ($wrap !== null) { $xmlWriter->startElement('w10:wrap'); $xmlWriter->writeAttribute('type', $wrap); $relativePositions = array( FrameStyle::POS_RELTO_MARGIN => 'margin', FrameStyle::POS_RELTO_PAGE => 'page', FrameStyle::POS_RELTO_TMARGIN => 'margin', FrameStyle::POS_RELTO_BMARGIN => 'page', FrameStyle::POS_RELTO_LMARGIN => 'margin', FrameStyle::POS_RELTO_RMARGIN => 'page', ); $pos = $style->getPos(); $hPos = $style->getHPosRelTo(); $vPos = $style->getVPosRelTo(); if ($pos == FrameStyle::POS_ABSOLUTE) { $xmlWriter->writeAttribute('anchorx', 'page'); $xmlWriter->writeAttribute('anchory', 'page'); } elseif ($pos == FrameStyle::POS_RELATIVE) { if (isset($relativePositions[$hPos])) { $xmlWriter->writeAttribute('anchorx', $relativePositions[$hPos]); } if (isset($relativePositions[$vPos])) { $xmlWriter->writeAttribute('anchory', $relativePositions[$vPos]); } } $xmlWriter->endElement(); // w10:wrap } } /** * Get style values in associative array * * @param \PhpOffice\PhpWord\Style\Frame $style * @param array $properties * @param string $suffix * @return array */ private function getStyles(FrameStyle $style, $properties, $suffix = '') { $styles = array(); foreach ($properties as $key => $property) { $method = "get{$key}"; $value = $style->$method(); if ($value !== null) { $styles[$property] = $style->$method() . $suffix; } } return $styles; } }