Tweaked pdf export iframe replacement to fix compatibility

Was using a method that wasn't a proper available part of the
DomElement API.
This commit is contained in:
Dan Brown 2021-11-28 21:01:35 +00:00
parent 2c21850da7
commit 42703dd859
No known key found for this signature in database
GPG Key ID: 46D9F943C24A2EF9
2 changed files with 4 additions and 6 deletions

View File

@ -144,6 +144,7 @@ class ExportFormatter
{
$html = $this->containHtml($html);
$html = $this->replaceIframesWithLinks($html);
return $this->pdfGenerator->fromHtml($html);
}
@ -159,7 +160,6 @@ class ExportFormatter
$doc->loadHTML(mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8'));
$xPath = new DOMXPath($doc);
$iframes = $xPath->query('//iframe');
/** @var DOMElement $iframe */
foreach ($iframes as $iframe) {
@ -172,7 +172,7 @@ class ExportFormatter
$anchor->setAttribute('href', $link);
$paragraph = $doc->createElement('p');
$paragraph->appendChild($anchor);
$iframe->replaceWith($paragraph);
$iframe->parentNode->replaceChild($paragraph, $iframe);
}
return $doc->saveHTML();

View File

@ -2,12 +2,11 @@
namespace BookStack\Entities\Tools;
use Barryvdh\Snappy\Facades\SnappyPdf;
use Barryvdh\DomPDF\Facade as DomPDF;
use Barryvdh\Snappy\Facades\SnappyPdf;
class PdfGenerator
{
/**
* Generate PDF content from the given HTML content.
*/
@ -24,5 +23,4 @@ class PdfGenerator
return $pdf->output();
}
}
}