PHP рдореЗрдВ DOCX рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдИрдорд╛рдирджрд╛рд░ рдкреАрдврд╝реАред рднрд╛рдЧ реи

рдЫрд╡рд┐ рдирдорд╕реНрдХрд╛рд░, рдкреНрд░рд┐рдп рдкреНрд░рднрд╛рдордВрдбрд▓!
рд╣рдо PHP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ DOCX рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╣рд╛рдиреА рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред

рдЖрдЬ рд╣рдореЗрдВ рдХреНрдпрд╛ рдЗрдВрддрдЬрд╛рд░ рд╣реИ:

рдЬрд┐рди рд▓реЛрдЧреЛрдВ рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рднрд╛рдЧ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИред рдЦреИрд░, рдЬреЛ рд╡рд┐рд╖рдп рдореЗрдВ - рдореИрдВ рдПрдХ рдХрдЯреМрддреА рдХреЗ рд▓рд┐рдП рдкреВрдЫрдирд╛ ред

рдПрдХ рдмрд╛рд░ рдФрд░


рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ, рдкрд╣рд▓реА рдЪреАрдЬреЗрдВ рдкрд╣рд▓реЗред рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдХреЗ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рдмрд╛рдж рд╕реЗ, рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрдЦреНрдпрд╛ рд▓рд┐рдЦреА рдЧрдИ рд╣реИ: рднрд╛рд╡рдирд╛рддреНрдордХ рдФрд░ рдорд╛рдорд▓реЗ рдкрд░; Github рдкрд░ PHPDocx рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХрдИ рдХрд╛рдВрдЯреЗ рд╣реИрдВред рдпрд╣ рд╕рдм рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рд╖рдп рдХрд╛рдлреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИред рд▓реЗрдХрд┐рди рдХреБрдЫ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдореЗрд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмрд╣реБрдд рд╕рд╛рд░ рдХреЛ рдирд╣реАрдВ рд╕рдордЭрддреЗ рд╣реИрдВред рдФрд░ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╡рд┐рд░рд╛рд╕рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ: рдЬреЗрдирд░реЗрдЯрд░ рдХреНрд▓рд╛рд╕ рдХреЛ рдЬрд╝рд┐рдкрдЕрд░реНрдЪрд┐рд╡ рдХрд╛ рд╡рдВрд╢рдЬ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕реБрдиреЛ, рдареАрдХ рд╣реИ, рдЕрдЧрд░ рдЖрдк рд╡рд┐рд░рд╛рд╕рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ PHP 5.4 рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЕрдВрдд рдореЗрдВ рд▓рдХреНрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ ! рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рдЧрд╛рддрд╛рд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрддреБрд▓рдиреАрдп рд░реВрдк рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ:

$this->archive->open( тАж ); $this->archive->addFile( тАж ); $this->archive->close( .. ); 

рдореБрдЭреЗ PHP рдореЗрдВ DOCX рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рдХреБрдЫ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдпрд╣ рдирд╣реАрдВ рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдХреНрдпреЛрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдореИрдВрдиреЗ рд╡рд░реНрдб рдлреЙрд░реНрдореЗрдЯ рдореЗрдВ рд╡реЗрдм рдкреЗрдЬ рдХреЛ рд╕реЗрд╡ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ DOCX рдкреНрд░рд╛рд░реВрдк рдореЗрдВ Yandex.Metrica рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред SeriyPS рдиреЗ рдкреВрдЫрд╛ рдХрд┐ рдореИрдВрдиреЗ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдХреНрдпреЛрдВ рддреЛрдбрд╝ рджрд┐рдпрд╛? рдореИрдВрдиреЗ рдРрд╕рд╛ рдХрд┐рдпрд╛, рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдкрд╛рда рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдПрдХ рдХреНрд╖реЗрддреНрд░ рд╣реИ, рдФрд░ рд▓рд╛рдЗрди рдмреНрд░реЗрдХ рдПрдХ рдирдпрд╛ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдо рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЯреВрдЯрдиреЗ рдмрдирд╛рдУред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдорд╛рд░реЗ рдЬрдирд░реЗрдЯрд░ рдореЗрдВ рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдПрдкреАрдЖрдИ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред рдПрдкреАрдЖрдИ рдореЗрдВ рдХреЗрд╡рд▓ рддреАрди рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реЛрддреА рд╣реИрдВ: рдирд┐рд░реНрдорд╛рддрд╛, рдЕрд╕рд╛рдЗрди рдХрд░рдирд╛, рдмрдирд╛рдирд╛ред
рдЦреИрд░, рдмрд╛рдд рдХреА, рдФрд░ рдпрд╣ рдХрд╛рдлреА рд╣реИред рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

рдирдпрд╛ рдХреНрдпрд╛ рд╣реИ


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдЙрд╕ рд▓реЗрдЦ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ рд╕рднреА рдХреЛ рдПрдХ рдкреВрд░реНрдг-рдУрдкрди рдУрдкрди рд╕реЛрд░реНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛ред рдЕрдВрдд рдореЗрдВ рд▓рд┐рдВрдХред рдФрд░ рдЕрдм рдЕрдВрдХ рдХреЗ рд▓рд┐рдП:

1. OfficeDocument рдФрд░ WordDocument рд╡рд░реНрдЧ


рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рд╣реА рд╕рдордЭ рдЪреБрдХреЗ рд╣реИрдВ, рдкреБрд░рд╛рд▓реЗрдЦ рдореЗрдВ рдореВрд▓ рд░реВрдк рд╕реЗ MS Office рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВред рд╢рдмреНрдж / рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдордПрд╕ рдСрдлрд┐рд╕ рд╡рд░реНрдб рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ рд╕реАрдзреЗ рдЖрд╡рд╢реНрдпрдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реЛрддреЗ рд╣реИрдВред рд╕рдорд╛рдзрд╛рди рд╕реНрд╡рдпрдВ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ: рдПрдордПрд╕ рдСрдлрд┐рд╕ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЧ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рд╕реАрдзреЗ рд╡рд░реНрдб рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА рд╡рд░реНрдЧред
рдореИрдВ рддреБрд░рдВрдд рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛:

 //      MS Office  class OfficeDocument extends ZipArchive{ __construct($filename, $template_path = '/template/' ); protected function add_rels( $filename, $rels, $path = '' ); protected function pparse( $replace, $content ); } //     MS Word class WordDocument extends OfficeDocument{ public function __construct( $filename, $template_path = '/template/' ) //  ,   API public function assign( $content = '', $return = false ); public function create(); } 

рдореИрдВрдиреЗ рдРрд╕рд╛ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ред рдпрд╣ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд░рдХреНрд╖рд┐рдд рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо XlsxDocument рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдПрдордПрд╕ рдПрдХреНрд╕реЗрд▓ рдлрд╛рдЗрд▓ рдЬреЗрдирд░реЗрдЯ рдХрд░реЗрдВрдЧреЗред
рдЖрдЗрдП рдЗрдирд╕рд╛рдЗрдб рдХреЛ рджреЗрдЦреЗрдВред

2. рдбрд╛рдпрдиреЗрдорд┐рдХ рд▓рд┐рдВрдХрд┐рдВрдЧ


рдбреЙрдХреНрд╕ рдлрд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ _rels / .xml рдФрд░ рд╢рдмреНрдж / _rels / document.xml.rels рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрддреА рд╣реИрдВред рд╡реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЗрди рд╕рдВрд░рдЪрдирд╛рдУрдВ рдореЗрдВ рдХрд┐рд╕реА рднреА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдбреЙрдХреНрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдмрд╕ рдЕрдзрд┐рдХ рд╡рдЬрди рд╣реЛрдЧрд╛ред рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЖрдк рдмрд╕ docx рдХреЗ рдЕрдВрджрд░ рдЬрд╛рдирдХрд╛рд░реА рдЫрд┐рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдореЗрдВ XML рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЗ рдмреАрдЪ рдЖрдВрддрд░рд┐рдХ рд▓рд┐рдВрдХ рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВрдЧреЗред рдпрд╣рд╛рдБ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдордПрд╕ рдСрдлрд┐рд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рд╣реИрдВ:

  //     MS Office $this->rels = array_merge( $this->rels, array( 'rId3' => array( 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties', 'docProps/app.xml' ), 'rId2' => array( 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties', 'docProps/core.xml' ), ) ); 

рд╢рд╛рдорд┐рд▓ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд░рд┐рдХреЙрд░реНрдб "rIdN" рд╣реИред App.xml рдФрд░ core.xml рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕реНрдерд┐рд░ рд╣реИрдВред XML_rels.xml рд▓рд┐рдВрдХ рд╡рд┐рд╡рд░рдг XML рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╕рдордп, рд╣рдо рдЙрдиреНрд╣реЗрдВ add_rels рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдкреИрдХ рдХрд░реЗрдВрдЧреЗ:

  //   protected function add_rels( $filename, $rels, $path = '' ){ //  XML $xmlstring = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">'; //      foreach( $rels as $rId => $params ){ //     , .  ,     $pathfile = empty( $params[2] ) ? $this->path . $path . $params[1] : $params[2]; //     if( $this->addFile( $pathfile , $path . $params[1] ) === false ) die('     ' . $path . $params[1] ); //    $xmlstring .= '<Relationship Id="' . $rId . '" Type="' . $params[0] . '" Target="' . $params[1] . '"/>'; } $xmlstring .= '</Relationships>'; //    $this->addFromString( $path . $filename, $xmlstring ); } 

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ Add_rels рдХреЛ OfficeDocument рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рджреЛрдиреЛрдВ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: OfficeDocument рдФрд░ WordDocument, рдЪреВрдВрдХрд┐ docx рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ рджреЛ _rels.xml рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╣реИрдВ рдЬреЛ рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдУрдУрдкреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рдЬреАрдд рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдерд╛, рдФрд░ рдпрд╣рд╛рдВ VolCh рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд╛рд░реНрдпрдкреНрд░рдгрд╛рд▓реА рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧреАред
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ _rels рдорд┐рд▓рддрд╛ рд╣реИ:

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"> <Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/> <Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/> <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/> </Relationships> 

рд╣рдо рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд╢рдмреНрдж / document.xml рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЙрддреНрдкрдиреНрди рдФрд░ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВрдЧреЗред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдбрд╛рдпрдирд╛рдорд┐рдХ рд▓рд┐рдВрдХрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдЕрдм рдЫрд╡рд┐ рдХреЗ рд╕рдореНрдорд┐рд▓рди рдХреЗ рд╕рд╛рдеред

рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдирд╛ рд╕реАрдЦрдирд╛


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдПрдХ рдПрдХреНрд╕рдПрдордПрд▓ рдЯреБрдХрдбрд╝рд╛ рдПрдХ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП document.xml рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛рдПрдЧрд╛ рдПрдХ рд╢рдмреНрдж рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдПрдХ рдЫрд╡рд┐ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП:

 <w:pw:rsidR="000E3348" w:rsidRDefault="00CD6FED"> <w:r> <w:rPr> <w:noProof/> <w:lang w:eastAsia="ru-RU"/> </w:rPr> <w:drawing> <wp:inline distT="0" distB="0" distL="0" distR="0"> <wp:extent cx="{WIDTH}" cy="{HEIGHT}"/> <wp:effectExtent l="19050" t="0" r="0" b="0"/> <wp:docPr id="2" name=" 2"/> <wp:cNvGraphicFramePr> <a:graphicFrameLocks xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" noChangeAspect="1"/> </wp:cNvGraphicFramePr> <a:graphic xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"> <a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/picture"> <pic:pic xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture"> <pic:nvPicPr> <pic:cNvPr id="0" name="image.jpg"/> <pic:cNvPicPr/> </pic:nvPicPr> <pic:blipFill> <a:blip r:embed="{RID}"> <a:extLst> <a:ext uri="{28A0092B-C50C-407E-A947-70E740481C1C}"> <a14:useLocalDpi xmlns:a14="http://schemas.microsoft.com/office/drawing/2010/main" val="0"/> </a:ext> </a:extLst> </a:blip> <a:stretch> <a:fillRect/> </a:stretch> </pic:blipFill> <pic:spPr> <a:xfrm> <a:off x="0" y="0"/> <a:ext cx="{WIDTH}" cy="{HEIGHT}"/> </a:xfrm> <a:prstGeom prst="rect"> <a:avLst/> </a:prstGeom> <a:noFill/> <a:ln> <a:noFill/> </a:ln> </pic:spPr> </pic:pic> </a:graphicData> </a:graphic> </wp:inline> </w:drawing> </w:r> </w:p> 

рд╣рдореЗрдВ рдХрдиреЗрдХреНрдЯ рдХреА рдЧрдИ рдЫрд╡рд┐ рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде {RID} рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛, рд╕рд╛рде рд╣реА {WIDTH} рдФрд░ {HEIGHT} рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдПрдХ рдЫрд╡рд┐ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╛рде рд╣реА рдкрд╛рда рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдПрдкреАрдЖрдИ рд╡рд┐рдзрд┐ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ - рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ:

  public function assign( $content = '', $return = false ){ // ,   $text .  ,    if( is_file( $content ) ){ //    $block = file_get_contents( $this->path . 'image.xml' ); list( $width, $height ) = getimagesize( $content ); $rid = "rId" . count( $this->word_rels ) . 'i'; $this->word_rels[$rid] = array( "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image", "media/" . $content, //      $content ); $xml = $this->pparse( array( '{WIDTH}' => $width * $this->px_emu, '{HEIGHT}' => $height * $this->px_emu, '{RID}' => $rid, ), $block ); } else{ //    $block = file_get_contents( $this->path . 'p.xml' ); $xml = $this->pparse( array( '{TEXT}' => $content, ), $block ); } //   ,    XML,  if( $return ) return $xml; else $this->content .= $xml; } 

рдЬреЛ рд▓реЛрдЧ рдХреЛрдб рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рд╡реЗ рдиреЛрдЯрд┐рд╕ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╡рд┐рдзрд┐ рдПрдХ рдореБрд╢реНрдХрд┐рд▓ рдореАрдЯреНрд░рд┐рдХ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред рдЗрд╕реЗ рдЕрдВрдЧреНрд░реЗрдЬреА рдореАрдЯреНрд░рд┐рдХ рдЗрдХрд╛рдЗрдпрд╛рдБ (EMU) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдВрдЧреНрд░реЗрдЬрд╝реА рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкрд░ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ: рдЖрдк рдПрдХ рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЧреБрдгрд╛ рдХрд░рдХреЗ px рд╕реЗ EMU рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреЗрд╡рд▓ рдпрд╣рд╛рдБ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкрд░ рдпрд╣ рд▓рд┐рдЦрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрдЦреНрдпрд╛ 12,700 рд╣реИред рдореБрдЭреЗ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рддреМрд░ рдкрд░ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ 8625 рд╣реИред рдЗрд╕ рдХрд╛рд░рдХ рдХреЗ рд╕рд╛рде, рдЪрд┐рддреНрд░ рдХреЛ рдкрд┐рдХреНрд╕реЗрд▓ рджреНрд╡рд╛рд░рд╛ рдкрд┐рдХреНрд╕реЗрд▓ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдФрд░ рд╣рд╛рдВ, рд╣рдо рдЫрд╡рд┐ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реАрдзреЗ рд▓рд┐рдВрдХ рд╕рдВрд░рдЪрдирд╛ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:

  $rid = "rId" . count( $this->word_rels ) . 'i'; $this->word_rels[$rid] = array( "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image", "media/" . $content, //      $content ); 


рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк


рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдПрдХ рдкреВрд░реНрдг рдкреБрд╕реНрддрдХрд╛рд▓рдп рдорд┐рд▓рд╛ред рдЕрдм рд╣рдо рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 //   include 'PHPDocx_0.9.2.php'; //     .   $w = new WordDocument( ".docx" ); //   assign /****************************** / / $w->assign( 'text' ); / $w->assign( 'image.png' ); / $xml = $w->assign( 'image.png', true ); / $w->assign( $w->assign( 'image.png', true ) ); / /******************************/ $w->assign('image.jpg'); $w->assign('    -     .'); $w->create(); 

рд╡рд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдпрд╣ рд╣реИред
рдпреЛрдЬрдирд╛рдПрдВ: рдЯреЗрдмрд▓ рдкреАрдврд╝реАред
рд╕рдВрджрд░реНрдн:
Github рдкрд░ PHPDocx ред
PHPDocx рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреГрд╖реНрда ред
рд╕реНрд░реЛрдд рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ ред

Source: https://habr.com/ru/post/In140012/


All Articles