PHP + рд╡рд░реНрдб

рдЫрд╡рд┐

рдпрджрд┐ рдЖрдкрдХреЛ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреА рдХрдИ рд╡рд░реНрдб рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреА? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлреЙрд░реНрдо, рд░рд╕реАрджреЗрдВ рднрд░реЗрдВред

3 рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:
1) рд╡рд░реНрдб рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
2) рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ dxx рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВ, рдЗрд╕реЗ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдЦреЛрд▓реЗрдВ рдФрд░ рдЕрдВрджрд░ рд╣рдо "\ word \ document.xml" рджреЗрдЦреЗрдВрдЧреЗ - рд╢реБрджреНрдз xml рдЬрд┐рд╕реЗ str_replace рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдорджрдж рдХреЗ рд▓рд┐рдП Enuriru рдзрдиреНрдпрд╡рд╛рдж)
3) рдПрдХ рддреГрддреАрдп-рдкрдХреНрд╖ рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬреЛ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рдо рдХрд░реЗрдЧреА

рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рддреБрд░рдВрдд рдЧрд┐рд░рд╛ рджрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЬрдЯрд┐рд▓ рд╕реНрд╡рд░реВрдкрдг рдХреЗ рд╕рд╛рде рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдФрд░ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдХрдИ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реБрдП, рдХреЛрдИ рд╕рдордп рдФрд░ рдЗрдЪреНрдЫрд╛ рдирд╣реАрдВ рдереАред

рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рдЕрдЪреНрдЫрд╛ рдФрд░ рд╕рд░рд▓ рд╣реИ рдЬрдм рд╣рдо .docx рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╢рдмреНрдж рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ рдкреНрд░рд╛рд░реВрдк рдкреНрд░рд╛рд░реВрдк рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рддреАрд╕рд░реЗ рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдореИрдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕рдорд╛рдзрд╛рди LiveDocx рдкрд░ рдЖрдпрд╛

рдлрд╛рдпрджреЗ:
- рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╡рд░реНрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
- рдкреНрд░рд╛рд░реВрдк, рдбреЙрдХ, рдЖрд░рдЯреАрдПрдл, рдкреАрдбреАрдПрдл рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рдкреНрд░рд╕реНрддреБрддрд┐
- HTML рдпрд╛ XML рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рд╕реА Word рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рд╕реЗ рдкрд░реЗрд╢рд╛рди рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
- рдХрдиреЗрдХреНрд╢рди рдореЗрдВ рдЖрд╕рд╛рдиреА
- рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ - рд╕реЗрд╡рд╛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдореМрдЬреВрдж рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП Zend рд╕реЗ рддреИрдпрд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рднреА рд╣реИ
рдиреБрдХрд╕рд╛рди:
- рдирд┐: рд╢реБрд▓реНрдХ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдкреНрд░рддрд┐ рджрд┐рди 250 рдЙрддреНрдкрдиреНрди рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреА рдПрдХ рд╕реАрдорд╛
- рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдмрджрд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ)



рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдЧреНрд░рд╛рд╣рдХ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХреА рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИред



рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

1) рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖ рдорд░реНрдЬрдлрд╛рдЗрд▓реНрдб рд╡рд░реНрдб рдЪрд░ рдХреЗ рд╕рд╛рде рдЖрд╡рд╢реНрдпрдХ рдлрд╝реАрд▓реНрдб рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВ, рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд░реНрдб 2007 рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
- рдбрд╛рд▓реЗрдВ => рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдмреНрд▓реЙрдХ => рдлрд╝реАрд▓реНрдб
рдПрдХ рдЦрд┐рдбрд╝рдХреА рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред

рдлрд╝реАрд▓реНрдб рдХрд╛ рдкреНрд░рдХрд╛рд░ рдЪреБрдиреЗрдВ: MergeField => рдлрд╝реАрд▓реНрдб рдирд╛рдо рдореЗрдВ рд╣рдо рдЪрд░ рдХрд╛ рдирд╛рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ => рдУрдХреЗ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ

рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣рдо рдкреВрд░реЗ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рдХреБрдЫ рд╕рдорд╛рди рдорд┐рд▓рддрд╛ рд╣реИ:



рд╣рдо рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВред

2) рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ

рд╣рдо LiveDocx рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рдПрдХ рд▓реЙрдЧрд┐рди рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдорд┐рд▓рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк Zend рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдПрдХ рдЦреБрд╢ / рджреБрдЦреА рдорд╛рд▓рд┐рдХ рд╣реИрдВ, рддреЛ рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, LiveDocx рд╕рдорд░реНрдерди рд╕рд╣реА рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдЖрддрд╛ рд╣реИ:

//             $livDoc = new Zend_Service_LiveDocx_MailMerge(array( 'username' => 'yourusername', 'password' => 'yourpassword' )); //     mergeFields  Word  $livDoc->assign('orderNum',' '); $livDoc->assign('orderDay',date('d', ' ')); //          $documentPath = 'contract_bid_for_customer.doc'; $livDoc->setLocalTemplate($documentPath); //      $livDoc->createDocument(); $doc = $livDoc->retrieveDocument('doc'); //      header("Cache-Control: public"); header("Content-Description: File Transfer"); $fileName = ".doc"; header("Content-Disposition: attachment; filename=$fileName"); header("Content-Type: application/msword"); header("Content-Transfer-Encoding: binary"); echo $doc; die; 


рдпрджрд┐ рдЖрдк рд╕рд╛рджреЗ php рдХреЛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рднреВрдЦреЗ рднреА рдирд╣реАрдВ рд░рд╣реЗрдВрдЧреЗред

рдХрд╛рдо рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╢рд╛рдорд┐рд▓ рд╕рд╛рдмреБрди рдореЙрдбреНрдпреВрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЪрд╛рд▓реВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдЪреАрдЬреЗрдВ рдЖрдкрдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рд╣реИрдВ:
phpinfo ();
рд╕рд╛рдмреБрди рдЕрдиреБрднрд╛рдЧ
рдЖрдкрдХреЛ Soap рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╕рдХреНрд╖рдо рдФрд░ Soap рд╕рд░реНрд╡рд░ рдХреЛ рд╕рдХреНрд╖рдо рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред

  //  WSDL  ini_set ('soap.wsdl_cache_enabled', 0); //    date_default_timezone_set('Europe/Moscow'); //    Soap       $soap = new SoapClient('https://api.livedocx.com/1.2/mailmerge.asmx?WSDL'); $soap->LogIn( array( 'username' => 'yourusername', 'password' => 'yourpassword' ) ); //     $data = file_get_contents('contract_bid_for_customer.doc'); //    .doc    $soap->SetLocalTemplate( array( 'template' => base64_encode($data), 'format' => 'doc' ) ); //    $fieldValues = array ( 'orderNum' => ' ', 'orderDay' => ' ' ); //      c      SOAP function assocArrayToArrayOfArrayOfString ($assoc) { $arrayKeys = array_keys($assoc); $arrayValues = array_values($assoc); return array ($arrayKeys, $arrayValues); } //     LiveDocx  $soap->SetFieldValues( array ( 'fieldValues' => assocArrayToArrayOfArrayOfString($fieldValues) ) ); //   $soap->CreateDocument(); $result = $soap->RetrieveDocument( array( 'format' => 'doc' ) ); $doc = base64_decode($result->RetrieveDocumentResult); //    SOAP $soap->LogOut(); //    header("Cache-Control: public"); header("Content-Description: File Transfer"); $fileName = ".doc"; header("Content-Disposition: attachment; filename=$fileName"); header("Content-Type: application/msword"); header("Content-Transfer-Encoding: binary"); echo $doc; die; 


3) рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдРрд╕реА рдлрд╛рдЗрд▓ рд╣реИ



LiveDocx рдЕрдиреНрдп рд╕реНрд╡рд░реВрдкреЛрдВ рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ: DOCX, RTF рдФрд░ PDFред

рдЖрдк рдпрд╣рд╛рдБ рдФрд░ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ:
livedocx.com
phplivedocx.org/articles/getting-started-with-phplivedocx
blog.zendguru.com/2010/02/13/creating-word-processing-document-using-zend_service_livedocx

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


All Articles