Allow reading of TargetMode for external images
This commit is contained in:
parent
200d846f61
commit
a7a35c688d
|
|
@ -16,6 +16,7 @@ This is the last version to support PHP 5.3
|
|||
- Possiblity to hide spelling and/or grammatical errors - @troosan #542
|
||||
- Possiblity to set default document language as well as changing the language for each text element - @troosan #1108
|
||||
- Support for Comments - @troosan #1067
|
||||
- Support for paragraph textAlignment - @troosan #1165
|
||||
|
||||
### Fixed
|
||||
- Loosen dependency to Zend
|
||||
|
|
@ -30,6 +31,7 @@ This is the last version to support PHP 5.3
|
|||
- Added missing options for numbering format - @troosan #1041
|
||||
- Fixed impossibility to set a different footer for first page - @ctrlaltca #1116
|
||||
- Fixed styles not being applied by HTML writer, better pdf output - @sarke #1047 #500 #1139
|
||||
- Fixed read docx error when document contains image from remote url - @FBnil #1173 #1176
|
||||
|
||||
v0.13.0 (31 July 2016)
|
||||
-------------------
|
||||
|
|
|
|||
|
|
@ -80,6 +80,10 @@ Available Paragraph style options:
|
|||
- ``tabs``. Set of custom tab stops.
|
||||
- ``widowControl``. Allow first/last line to display on a separate page, *true* or *false*.
|
||||
- ``contextualSpacing``. Ignore Spacing Above and Below When Using Identical Styles, *true* or *false*.
|
||||
- ``bidi``. Right to Left Paragraph Layout, *true* or *false*.
|
||||
- ``shading``. Paragraph Shading.
|
||||
- ``textAlignment``. Vertical Character Alignment on Line.
|
||||
See ``\PhpOffice\PhpWord\SimpleType\TextAlignment`` class for possible values.
|
||||
|
||||
.. _table-style:
|
||||
|
||||
|
|
|
|||
|
|
@ -147,6 +147,7 @@ class Word2007 extends AbstractReader implements ReaderInterface
|
|||
$rId = $xmlReader->getAttribute('Id', $node);
|
||||
$type = $xmlReader->getAttribute('Type', $node);
|
||||
$target = $xmlReader->getAttribute('Target', $node);
|
||||
$mode = $xmlReader->getAttribute('TargetMode', $node);
|
||||
|
||||
// Remove URL prefixes from $type to make it easier to read
|
||||
$type = str_replace($metaPrefix, '', $type);
|
||||
|
|
@ -154,12 +155,12 @@ class Word2007 extends AbstractReader implements ReaderInterface
|
|||
$docPart = str_replace('.xml', '', $target);
|
||||
|
||||
// Do not add prefix to link source
|
||||
if (!in_array($type, array('hyperlink'))) {
|
||||
if ($type != 'hyperlink' && $mode != 'External') {
|
||||
$target = $targetPrefix . $target;
|
||||
}
|
||||
|
||||
// Push to return array
|
||||
$rels[$rId] = array('type' => $type, 'target' => $target, 'docPart' => $docPart);
|
||||
$rels[$rId] = array('type' => $type, 'target' => $target, 'docPart' => $docPart, 'targetMode' => $mode);
|
||||
}
|
||||
ksort($rels);
|
||||
|
||||
|
|
|
|||
|
|
@ -210,7 +210,11 @@ abstract class AbstractPart
|
|||
$rId = $xmlReader->getAttribute('r:id', $domNode, 'w:pict/v:shape/v:imagedata');
|
||||
$target = $this->getMediaTarget($docPart, $rId);
|
||||
if (!is_null($target)) {
|
||||
if ('External' == $this->getTargetMode($docPart, $rId)) {
|
||||
$imageSource = $target;
|
||||
} else {
|
||||
$imageSource = "zip://{$this->docFile}#{$target}";
|
||||
}
|
||||
$parent->addImage($imageSource);
|
||||
}
|
||||
} elseif ($xmlReader->elementExists('w:object', $domNode)) {
|
||||
|
|
@ -500,4 +504,22 @@ abstract class AbstractPart
|
|||
|
||||
return $target;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the target mode
|
||||
*
|
||||
* @param string $docPart
|
||||
* @param string $rId
|
||||
* @return string|null
|
||||
*/
|
||||
private function getTargetMode($docPart, $rId)
|
||||
{
|
||||
$mode = null;
|
||||
|
||||
if (isset($this->rels[$docPart]) && isset($this->rels[$docPart][$rId])) {
|
||||
$mode = $this->rels[$docPart][$rId]['targetMode'];
|
||||
}
|
||||
|
||||
return $mode;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue