2012-05-06 18:25:40 +02:00
|
|
|
<?php
|
|
|
|
|
/**
|
2014-03-26 16:33:20 +07:00
|
|
|
* PHPWord
|
2012-05-06 18:25:40 +02:00
|
|
|
*
|
2014-03-27 23:55:06 +07:00
|
|
|
* @link https://github.com/PHPOffice/PHPWord
|
|
|
|
|
* @copyright 2014 PHPWord
|
|
|
|
|
* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
|
2012-05-06 18:25:40 +02:00
|
|
|
*/
|
|
|
|
|
|
2014-03-22 10:06:08 +04:00
|
|
|
namespace PhpOffice\PhpWord\Writer\Word2007;
|
|
|
|
|
|
2014-03-23 10:32:08 +04:00
|
|
|
use PhpOffice\PhpWord\Exceptions\Exception;
|
2014-03-22 10:06:08 +04:00
|
|
|
use PhpOffice\PhpWord\Writer\IWriter;
|
2014-03-30 16:31:01 +07:00
|
|
|
use PhpOffice\PhpWord\Shared\XMLWriter;
|
2014-03-22 10:06:08 +04:00
|
|
|
|
2014-03-24 00:26:10 +07:00
|
|
|
/**
|
|
|
|
|
* Word2007 writer part abstract class
|
|
|
|
|
*/
|
2014-03-22 10:06:08 +04:00
|
|
|
abstract class WriterPart
|
2013-12-11 14:45:44 -05:00
|
|
|
{
|
2014-03-24 00:26:10 +07:00
|
|
|
/**
|
|
|
|
|
* Parent writer
|
|
|
|
|
*
|
|
|
|
|
* @var IWriter
|
|
|
|
|
*/
|
2014-03-30 16:31:01 +07:00
|
|
|
protected $parentWriter;
|
2013-12-11 14:45:44 -05:00
|
|
|
|
2014-03-24 00:26:10 +07:00
|
|
|
/**
|
|
|
|
|
* Set parent writer
|
|
|
|
|
*
|
|
|
|
|
* @param IWriter $pWriter
|
|
|
|
|
*/
|
2014-03-22 10:06:08 +04:00
|
|
|
public function setParentWriter(IWriter $pWriter = null)
|
2013-12-11 14:45:44 -05:00
|
|
|
{
|
2014-03-30 16:31:01 +07:00
|
|
|
$this->parentWriter = $pWriter;
|
2013-12-11 14:45:44 -05:00
|
|
|
}
|
|
|
|
|
|
2014-03-24 00:26:10 +07:00
|
|
|
/**
|
|
|
|
|
* Get parent writer
|
|
|
|
|
*
|
|
|
|
|
* @return IWriter
|
2014-03-30 16:31:01 +07:00
|
|
|
* @throws Exception
|
2014-03-24 00:26:10 +07:00
|
|
|
*/
|
2013-12-11 14:45:44 -05:00
|
|
|
public function getParentWriter()
|
|
|
|
|
{
|
2014-03-30 16:31:01 +07:00
|
|
|
if (!is_null($this->parentWriter)) {
|
|
|
|
|
return $this->parentWriter;
|
2013-12-11 14:45:44 -05:00
|
|
|
} else {
|
2014-03-22 10:06:08 +04:00
|
|
|
throw new Exception("No parent IWriter assigned.");
|
2013-12-11 14:45:44 -05:00
|
|
|
}
|
|
|
|
|
}
|
2014-03-30 16:31:01 +07:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get XML Writer
|
|
|
|
|
*
|
|
|
|
|
* @return XMLWriter
|
|
|
|
|
*/
|
|
|
|
|
protected function getXmlWriter()
|
|
|
|
|
{
|
|
|
|
|
$useDiskCaching = false;
|
|
|
|
|
if (!is_null($this->parentWriter)) {
|
|
|
|
|
if ($this->parentWriter->getUseDiskCaching()) {
|
|
|
|
|
$useDiskCaching = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if ($useDiskCaching) {
|
|
|
|
|
return new XMLWriter(XMLWriter::STORAGE_DISK, $this->parentWriter->getDiskCachingDirectory());
|
|
|
|
|
} else {
|
|
|
|
|
return new XMLWriter(XMLWriter::STORAGE_MEMORY);
|
|
|
|
|
}
|
|
|
|
|
}
|
2012-05-06 18:25:40 +02:00
|
|
|
}
|