diff --git a/src/NFe/Danfe.php b/src/NFe/Danfe.php
index b959f064..cc911964 100644
--- a/src/NFe/Danfe.php
+++ b/src/NFe/Danfe.php
@@ -612,9 +612,9 @@ public function montaDANFE(
if ($this->textoAdic != '') {
$this->textoAdic .= ". \r\n";
}
- $this->textoAdic .= !empty($this->getTagValue($this->infAdic, "infCpl")) ?
- 'Inf. Contribuinte: ' .
- $this->pAnfavea($this->getTagValue($this->infAdic, "infCpl")) : '';
+ $this->textoAdic .= !empty($this->getTagValue($this->infAdic, "infCpl"))
+ ? 'Inf. Contribuinte: ' . $this->pAnfavea($this->getTagValue($this->infAdic, "infCpl"))
+ : '';
$infPedido = $this->pGeraInformacoesDaTagCompra();
if ($infPedido != "") {
$this->textoAdic .= $infPedido;
@@ -824,12 +824,18 @@ protected function pAnfavea($cdata = '')
if ($cdata == '') {
return '';
}
+
+ // ajusta a quebra de linha para não interferir nas validações das informações complementares
+ $cdata = str_replace('
', "\n", $cdata);
+ $cdata = str_replace('
', "\n", $cdata);
+
//remove qualquer texto antes ou depois da tag CDATA
$cdata = str_replace('', $cdata);
$cdata = str_replace(']]>', '', $cdata);
$cdata = preg_replace('/\s\s+/', ' ', $cdata);
$cdata = str_replace("> <", "><", $cdata);
$len = strlen($cdata);
+
$startPos = strpos($cdata, '<');
if ($startPos === false) {
return $cdata;
@@ -851,17 +857,20 @@ protected function pAnfavea($cdata = '')
} else {
$parte3 = '';
}
+
$texto = trim($parte1) . ' ' . trim($parte3);
+
if (strpos($parte2, '') === false) {
$cdata = '' . $parte2 . '';
} else {
$cdata = $parte2;
}
+
//Retira a tag (caso existir) pois não é uma estrutura válida XML
$cdata = str_replace('', '', $cdata);
//carrega o xml CDATA em um objeto DOM
$dom = new Dom();
- $dom->loadXML($cdata, LIBXML_NOBLANKS | LIBXML_NOEMPTYTAG);
+ @$dom->loadXML($cdata, LIBXML_NOBLANKS | LIBXML_NOEMPTYTAG);
//$xml = $dom->saveXML();
//grupo CDATA infADprod
$id = $dom->getElementsByTagName('id')->item(0);
@@ -3085,6 +3094,7 @@ protected function pDadosAdicionaisDANFE($x, $y, $h)
}
$aFont = array('font' => $this->fontePadrao, 'size' => 7, 'style' => 'B');
$this->pTextBox($x, $y, $w, 8, $texto, $aFont, 'T', 'L', 0, '');
+
//INFORMAÇÕES COMPLEMENTARES
$texto = "INFORMAÇÕES COMPLEMENTARES";
$y += 3;
@@ -3098,6 +3108,7 @@ protected function pDadosAdicionaisDANFE($x, $y, $h)
$y += 1;
$aFont = array('font' => $this->fontePadrao, 'size' => 7, 'style' => '');
$this->pTextBox($x, $y + 2, $w - 2, $h - 3, $this->textoAdic, $aFont, 'T', 'L', 0, '', false);
+
//RESERVADO AO FISCO
$texto = "RESERVADO AO FISCO";
$x += $w;