second commit
This commit is contained in:
2
vendor/phpoffice/phpword/bootstrap.php
vendored
2
vendor/phpoffice/phpword/bootstrap.php
vendored
@@ -15,7 +15,7 @@
|
||||
* @license http://www.gnu.org/licenses/lgpl.txt LGPL version 3
|
||||
*/
|
||||
|
||||
$vendorDirPath = '../vendor';
|
||||
$vendorDirPath = '../../vendor';
|
||||
if (file_exists($vendorDirPath . '/autoload.php')) {
|
||||
require $vendorDirPath . '/autoload.php';
|
||||
} else {
|
||||
|
||||
@@ -129,6 +129,8 @@ class TemplateProcessor
|
||||
$this->tempDocumentMainPart = $this->readPartWithRels($this->getMainPartName());
|
||||
$this->tempDocumentSettingsPart = $this->readPartWithRels($this->getSettingsPartName());
|
||||
$this->tempDocumentContentTypes = $this->zipClass->getFromName($this->getDocumentContentTypesName());
|
||||
|
||||
$this->_countRels=100; //start id for relationship between image and document.xml
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -839,6 +841,15 @@ class TemplateProcessor
|
||||
|
||||
$this->zipClass->addFromString($this->getDocumentContentTypesName(), $this->tempDocumentContentTypes);
|
||||
|
||||
if($this->_rels!="")
|
||||
{
|
||||
$this->zipClass->addFromString('word/_rels/document.xml.rels', $this->_rels);
|
||||
}
|
||||
if($this->_types!="")
|
||||
{
|
||||
$this->zipClass->addFromString('[Content_Types].xml', $this->_types);
|
||||
}
|
||||
|
||||
// Close zip file
|
||||
if (false === $this->zipClass->close()) {
|
||||
throw new Exception('Could not close zip file.'); // @codeCoverageIgnore
|
||||
@@ -1249,4 +1260,91 @@ class TemplateProcessor
|
||||
{
|
||||
return preg_match('/[^>]\${|}[^<]/i', $text) == 1;
|
||||
}
|
||||
|
||||
public function setImg( $strKey, $img){
|
||||
$strKey = '${'.$strKey.'}';
|
||||
$relationTmpl = '<Relationship Id="RID" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="media/IMG"/>';
|
||||
|
||||
$imgTmpl = '<w:pict><v:shape type="#_x0000_t75" style="width:WIDpx;height:HEIpx"><v:imagedata r:id="RID" o:title=""/></v:shape></w:pict>';
|
||||
|
||||
$toAdd = $toAddImg = $toAddType = '';
|
||||
$aSearch = array('RID', 'IMG');
|
||||
$aSearchType = array('IMG', 'EXT');
|
||||
$countrels=$this->_countRels++;
|
||||
//I'm work for jpg files, if you are working with other images types -> Write conditions here
|
||||
$imgExt = 'jpg';
|
||||
$imgName = 'img' . $countrels . '.' . $imgExt;
|
||||
|
||||
$this->zipClass->deleteName('word/media/' . $imgName);
|
||||
$this->zipClass->addFile($img['src'], 'word/media/' . $imgName);
|
||||
|
||||
$typeTmpl = '<Override PartName="/word/media/'.$imgName.'" ContentType="image/EXT"/>';
|
||||
|
||||
|
||||
$rid = 'rId' . $countrels;
|
||||
$countrels++;
|
||||
list($w,$h) = getimagesize($img['src']);
|
||||
|
||||
if(isset($img['swh'])) //Image proportionally larger side
|
||||
{
|
||||
if($w<=$h)
|
||||
{
|
||||
$ht=(int)$img['swh'];
|
||||
$ot=$w/$h;
|
||||
$wh=(int)$img['swh']*$ot;
|
||||
$wh=round($wh);
|
||||
}
|
||||
if($w>=$h)
|
||||
{
|
||||
$wh=(int)$img['swh'];
|
||||
$ot=$h/$w;
|
||||
$ht=(int)$img['swh']*$ot;
|
||||
$ht=round($ht);
|
||||
}
|
||||
$w=$wh;
|
||||
$h=$ht;
|
||||
}
|
||||
|
||||
if(isset($img['size']))
|
||||
{
|
||||
$w = $img['size'][0];
|
||||
$h = $img['size'][1];
|
||||
}
|
||||
|
||||
|
||||
$toAddImg .= str_replace(array('RID', 'WID', 'HEI'), array($rid, $w, $h), $imgTmpl) ;
|
||||
if(isset($img['dataImg']))
|
||||
{
|
||||
$toAddImg.='<w:br/><w:t>'.$this->limpiarString($img['dataImg']).'</w:t><w:br/>';
|
||||
}
|
||||
|
||||
$aReplace = array($imgName, $imgExt);
|
||||
$toAddType .= str_replace($aSearchType, $aReplace, $typeTmpl) ;
|
||||
|
||||
$aReplace = array($rid, $imgName);
|
||||
$toAdd .= str_replace($aSearch, $aReplace, $relationTmpl);
|
||||
|
||||
|
||||
$this->tempDocumentMainPart=str_replace('<w:t>' . $strKey . '</w:t>', $toAddImg, $this->tempDocumentMainPart);
|
||||
//print $this->tempDocumentMainPart;
|
||||
|
||||
|
||||
|
||||
if($this->_rels=="")
|
||||
{
|
||||
$this->_rels=$this->zipClass->getFromName('word/_rels/document.xml.rels');
|
||||
$this->_types=$this->zipClass->getFromName('[Content_Types].xml');
|
||||
}
|
||||
|
||||
$this->_types = str_replace('</Types>', $toAddType, $this->_types) . '</Types>';
|
||||
$this->_rels = str_replace('</Relationships>', $toAdd, $this->_rels) . '</Relationships>';
|
||||
}
|
||||
|
||||
function limpiarString($str) {
|
||||
return str_replace(
|
||||
array('&', '<', '>', "\n"),
|
||||
array('&', '<', '>', "\n" . '<w:br/>'),
|
||||
$str
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
1252
vendor/phpoffice/phpword/src/PhpWord/TemplateProcessor.php.bak
vendored
Normal file
1252
vendor/phpoffice/phpword/src/PhpWord/TemplateProcessor.php.bak
vendored
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user