ODT рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХрд╛ рдЧрдардиред рдкреАрдбреАрдПрдл рдХреЗ рд▓рд┐рдП рдУрдбреАрдЯреА

рдирдорд╕реНрдХрд╛рд░, рдкреНрдпрд╛рд░реЗ рдЦрд╝рдмрд░реЛрд╡реАрд╕!

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

рддреЛ, рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдХрд╛рд░реНрдп:

  1. рдкреНрд░рдХреНрд░рд┐рдпрд╛ ODT рдЯреЗрдореНрдкрд▓реЗрдЯред рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░реНрд╕ рдХреЛ рдХрд╕реНрдЯрдо рдорд╛рдиреЛрдВ рд╕реЗ рдмрджрд▓реЗрдВ
  2. рдкреАрдбреАрдПрдл рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рджрд┐рдЦрд╛рдПрдВ



STEP 1. ODT рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░реЗрдВред рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░реНрд╕ рдмрджрд▓реЗрдВ

рдпрд╣ рдХреЛрдИ рд░рд╣рд╕реНрдп рдирд╣реАрдВ рд╣реИ рдХрд┐ ODT рдмреЛрд░реНрдб рдкрд░ xml рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рдпрдорд┐рдд рд╕рдВрдЧреНрд░рд╣ рд╣реИред рд╕рднреА рдЪрд┐рддреНрд░ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЫрд┐рдкреЗ рд╣реБрдП рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдмрд╕ рд╡рд┐рд╡рд░рдг рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред рд╣рдо рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдПрдВрдЧреЗ: рдпрд╣ рдХрд╣рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдХрд┐ рд╕рд╛рдордЧреНрд░реАред Xml рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рдореБрдЦреНрдп рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдФрд░ "рд╡рд░реНрдгрдирд╛рддреНрдордХ" рднрд╛рдЧ рдХреЗ рд▓рд┐рдП "ред" рдореИрдВ рдЗрд╕ рддрдереНрдп рдкрд░ рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдореЗрдВ рдкрд╛рда рд╢реИрд▓рд┐рдпреЛрдВ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реИ (рдХрдо рд╕реЗ рдХрдо рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ)ред рдЗрди xml'ki рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдереЛрдбрд╝рд╛ рдЧрд╣рд░рд╛ рдЦреЛрджрддреЗ рд╣реБрдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдВ:

  1. рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЕрдирдЬрд╝рд┐рдк рдХрд░реЗрдВ
  2. рдкрд╛рда рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП: рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкрд╛рд░реНрдХреНрд╕ рдХрд░реЗрдВред рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░реНрд╕ рдХреЛ рд╡рд╛рдВрдЫрд┐рдд рдорд╛рдиреЛрдВ рд╕реЗ рдмрджрд▓реЗрдВ
  3. рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП: рдЕрдкрдиреА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ (рдЗрд╕реЗ рдХрд┐рд╕реА рдЕрдирдХреИрдкреНрдб .odt рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рдХреЗ рдЕрдВрджрд░ рдмрдирд╛рдПрдВ), рдкрд╛рд░реНрд╕ content.xml, рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░реНрд╕ рдХреЛ рдлреЙрд░реНрдо рдХреЗ рдлреНрд░реЗрдо рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВ

    <draw:frame draw:style-name="a0" draw:name="'.$file_name.'" text:anchor-type="as-char" svg:x="0in" svg:y="0in" svg:width="'.$width.'in" svg:height="'.$height.'in" style:rel-width="scale" style:rel-height="scale"> <draw:image xlink:href="'.self::_ImgDir.DIRECTORY_SEPARATOR.$file_name.'" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/> <svg:title/> <svg:desc/> </draw:frame> 


    рдЕрдЧрд▓рд╛, рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рдмреНрд▓реЙрдХ рдХреЛ рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред xml

     <manifest:file-entry manifest:full-path="'.self::_ImgDir.DIRECTORY_SEPARATOR.$file_name.'" manifest:media-type="image/'.$ext.'"/> 

  4. рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╡рд╛рдкрд╕ ODT рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВред


рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрд╢рд▓ рдФрд░ рдЖрд╕рд╛рди рд╣реИред рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, odtFormat рд╡рд░реНрдЧ (рдШреБрдЯрдиреЛрдВ рдкрд░) рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ рдкрд░ рдереЛрдбрд╝реА рдорджрдж:

рдкреНрд░рд╛рд░рдВрдн
 $odtformat = new odtFormat(тАЬ$doc_pathтАЭ, "$temp_dir"); 

$ doc_path - .odt рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдкрде
$ temp_dir - рд╡рд╣ рдлрд╝реЛрд▓реНрдбрд░ рдЬрд┐рд╕рдореЗрдВ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рдПрдВрдЧреАред

рдкрд╛рда рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐
 $odtformat->SetText(тАЬ$nameтАЭ, тАЬ$valueтАЭ); 

$ рдирд╛рдо - рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХрд╛ рдирд╛рдо
$ рдореВрд▓реНрдп - рдХрд╕реНрдЯрдо рдореВрд▓реНрдп

рдЫрд╡рд┐ рдбрд╛рд▓реЗрдВ
 $odtformat->SetImage(тАЬ$nameтАЭ, тАЬ$img_pathтАЭ ,$width, $height); 

$ рдирд╛рдо - рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХрд╛ рдирд╛рдо
$ img_path - рдЫрд╡рд┐ рдХрд╛ рдкрде
$ рдЪреМрдбрд╝рд╛рдИ - рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЫрд╡рд┐ рдХреА рд╡рд╛рдВрдЫрд┐рдд рдЪреМрдбрд╝рд╛рдИ (рдпрджрд┐ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдореВрд▓ рдХреА рдЪреМрдбрд╝рд╛рдИ)
$ рдКрдВрдЪрд╛рдИ - рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЫрд╡рд┐ рдХреА рд╡рд╛рдВрдЫрд┐рдд рд▓рдВрдмрд╛рдИ (рдпрджрд┐ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдореВрд▓ рдХреА рд▓рдВрдмрд╛рдИ)

рдХрд┐рд╕реА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд╕рд╣реЗрдЬрдирд╛
 $odtformat->SaveToDisk(тАЬ$path_to_saveтАЭ); 

$ path_to_save - рдЬрд╣рд╛рдВ рд╣рдо рд╕рд╣реЗрдЬреЗрдВрдЧреЗ (рдкрде + рдлрд╝рд╛рдЗрд▓ рдирд╛рдо)

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

 const _SeporatorLeft = '{{'; 

рдмрд╛рдИрдВ рдУрд░ рдкрд╛рда рд╕реЗ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХреЛ рдЕрд▓рдЧ рдХрд░рддрд╛ рд╣реИред

 const _SeporatorRight = '}}'; 

рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХреЛ рдЯреЗрдХреНрд╕реНрдЯ рд╕реЗ рджрд╛рдИрдВ рдУрд░ рдЕрд▓рдЧ рдХрд░рддрд╛ рд╣реИ

 const _ImgDir = 'media'; 

рдХрд╕реНрдЯрдо рдЫрд╡рд┐ рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдирд╛рдо
рд╡реИрд╕реЗ, рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ .odt рдлрд╝рд╛рдЗрд▓ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рд╕реЗ рднрд░реА рд╣реБрдИ рд╣реИред рджреВрд╕рд░реЗ рдЪрд░рдг рдХреЗ рд▓рд┐рдП рд╕рдордпред

рдЪреЗрддрд╛рд╡рдиреА! рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░реНрд╕ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрдм рдЙрдиреНрд╣реЗрдВ рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ "рд╕реНрдкрд╖реНрдЯ рдкреНрд░рд╛рд░реВрдк" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдПрдордПрд╕ рд╡рд░реНрд▓реНрдб 2013 рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╡рд░реНрдЧред рд▓реЗрдХрд┐рди рдХреБрдЫ рдореБрдЭреЗ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЕрдиреНрдп рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдУрдбрд┐рдЯ рдХреА рд╕рд╛рдордЧреНрд░реА рд╕рдорд╛рди рд╣реИред

STEP 2. рдкреАрдбреАрдПрдл рдореЗрдВ рдХрдиреНрд╡рд░реНрдЯ рдХрд░реЗрдВред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рджрд┐рдЦрд╛рдПрдВ

рдореБрдЭреЗ рддреБрд░рдВрдд рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдореБрдЭреЗ рдЖрджрд░реНрд╢ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛ред рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИрдВред "рдЗрдВрдЯрд░рдиреЗрдЯ" рдХреЛ рддреЛрдбрд╝реЛ, рдореБрдЯреНрдареА рднрд░ рд╣реИрд╡реАрд╡реЗрдЯ, рдЬреЗрдВрдб рд▓реЛрд╢рди рдФрд░ рд╕рд┐рд░реНрдл рдмрдХрд╡рд╛рд╕ рдХреЗ рд╕рд╛рде рдЖрдпрд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЖрдкрдХреЛ рд╕рдм рдХреБрдЫ рдмрддрд╛ рджреВрдВрдЧрд╛ рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдерд╛
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдСрдирд▓рд╛рдЗрди рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдкрд╣рд▓реЗ Google рдбреЙрдХреНрд╕ рдерд╛ред рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдХреЗрд╡рд▓ рдкреГрд╖реНрда рдкрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдПрдХ iframe рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджрд┐рдЦрд╛ рд░рд╣рд╛ рд╣реИ, рд░реВрдкрд╛рдВрддрд░рдг рд╕реЗ рдмрдЪрдиреЗ рд╕реЗред
рдПрдХ рдЙрджрд╛рд╣рд░рдг:
 <iframe src="http://docs.google.com/viewer?url=http%3A%2F%2F127.0.0.1%2Fa.odt&embedded=true" width="600" height="780" style="border: none;"></iframe> 

рд╡рд┐рдкрдХреНрд╖:

рдкреЗрд╢реЗрд╡рд░реЛрдВ:


рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рдирд┐рд░реНрдгрдп рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдирд╣реАрдВ рд░рд╣рд╛ред рдпрд╣ Microsoft рдХреЛ рдЙрдирдХреЗ Office Apps рдХреЗ рд╕рд╛рде рджреЗрдЦрдиреЗ рд▓рд╛рдпрдХ рд╣реИред рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕рдВрдХреЗрдд рдПрдХ рдкреНрд░рд┐рдВрдЯ рд╕рдВрд╕реНрдХрд░рдг (рдСрдирд▓рд╛рдЗрди рд╕реЗрд╡рд╛ рдХрд╛ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдлрд╝рдВрдХреНрд╢рди) рдХреЗ рд░реВрдк рдореЗрдВ рдкреАрдбреАрдПрдл рдХрд╛ рд░реВрдкрд╛рдВрддрд░рдг рдерд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдФрд░ рддреБрд░рдВрдд рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП Microsoft рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рдЙрджрд╛рд╣рд░рдг:
 <iframe src="http://co1-word-view.officeapps.live.com/wv/WordViewer/request.pdf?WOPIsrc=http%3A%2F%2Fco1%2D15%2Dview%2Dwopi%2Ewopi%2Elive%2Enet%3A808%2Foh%2Fwopi%2Ffiles%2F%40%2FwFileId%3FwFileId%3Dhttp://127.0.0.1/a.odt&type=printpdf" width="600" height="780" style="border: none;"></iframe> 

рд╡рд┐рдкрдХреНрд╖

рдЖрдХрд░реНрд╖рдг рдЖрддреЗ рд╣реИрдВ


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

 exec(тАЬlibreoffice --headless --invisible --convert-to pdf $full_path_to_file --outdir $full_path_to_dirтАЭ); 

$ full_path_to_file - рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдкреВрд░реНрдг рдкрде (/var/www/*.odt)
$ full_path_to_dir - рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдкрде (/ var / www / рдкрд░рд┐рдгрд╛рдо /)

рдЖрдЗрдлреНрд░реЗрдо рдореЗрдВ рдкреАрдбреАрдПрдл рдХреИрд╕реЗ рджрд┐рдЦрд╛рдПрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЦреБрдж рдЬрд╛рдирддреЗ рд╣реИрдВред

рд╡рд┐рдкрдХреНрд╖

рдЖрдХрд░реНрд╖рдг рдЖрддреЗ рд╣реИрдВ


рдирд┐рд╖реНрдХрд░реНрд╖
рд╕рдорд╛рдзрд╛рди рдХреА рд╕рднреА рдХрдорд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде, рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рдХрдард┐рдирд╛рдЗрдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред рд╕рднреА рдХреЛ рд╢реБрднрдХрд╛рдордирд╛рдПрдБ!

рд╕рдВрджрд░реНрдн
OdtFormat рдкреБрд╕реНрддрдХрд╛рд▓рдп
рд▓рд┐рдмрд░рдСрдлрд┐рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ

PS рдореИрдВ рдШреГрдгрд┐рдд рд╕реНрд╡рд░реВрдкрдг рдХреЗ рд▓рд┐рдП рдорд╛рдлреА рдорд╛рдБрдЧрддрд╛ рд╣реВрдБред

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


All Articles