未找到图像或未知类型(使用带有dompdf的tinymce来显示以pdf格式存储在tinymce textarea中的html)
我正在使用“laravel-tinymce-simple-imageupload”包中的图像上传。 当用户在textarea中输入一些内容并单击表单提交按钮时,我想将内容放在textarea中的pdf文件中。 我有下面的代码。
问题是在pdf文件中,如果在textarea中插入图像,则图像不会出现在pdf中,并且在pdf中出现“未找到图像或未知类型”。
你知道这可能是什么问题吗?
图像存储在证书表的内容列中:
test![](https://stackoverflow.com/img/image_15zdbBr.jpeg)
获取pdf的代码:
$certificateContent = RegistrationType::with('certificate')->where('id', $request->registrationType)->first(); $pdf = app()->make('dompdf.wrapper'); $pdf->loadHTML($certificateContent->certificate->content); return $pdf->download('test.pdf');
Tinymce代码将relative_urls视为false:
tinymce.init({ selector:'textarea', plugins: 'image code link', relative_urls: false, file_browser_callback: function(field_name, url, type, win) { // trigger file upload form if (type == 'image') $('#formUpload input').click(); } });
我已经使用“setOptions([‘isHtml5ParserEnabled’=> true,’isRemoteEnabled’=> true])”但也不能使用它,它显示相同的错误。
似乎问题可能是因为需要更改图像的url路径。 但我不明白如何做到这一点,因为用户只选择tinymce textarea中的图像如何更改该图像的绝对路径。
这是一个报道的问题: https : //github.com/dompdf/dompdf/issues/1659 。
建议你:
- 将relative_urls设置为true(这会将图像设置为
img/image_15zdbBr.jpeg
,并且 - set
$dompdf->setBasePath($base_path)
其中$ base_path是文件所在的位置。 ( http://sofzh.miximages.com/php/Usage ,这意味着“从”基本目录开始,返回一个,返回一个,返回一个,进入img /,查找文件“所以”基础目录“需要先于文件,才能为你回归的事实做好准备。
工作范例:
- 您的实际文件位于
/home/john/projects/proj/public/img/image.jpeg
(真实的) - 相对文件路径(已提供)=
../../../img/image.jpeg
- 所以你配置你的setBasedirectory =
/home/john/projects/proj/public/a/b/c/
- 结合这个给你
/home/john/projects/proj/public/a/b/c/../../../img/image.jpeg
- 与
/home/john/projects/proj/public/a/b/../../img/image.jpeg
相同 - 与
/home/john/projects/proj/public/a/../img/image.jpeg
相同 - 与
/home/john/projects/proj/public/img/image.jpeg
= Bingo相同。
如果这不起作用,请调整setBaseDirectory,直到找到正确的路径。