我正在使用tinymce,并使用“ laravel-tinymce-simple-imageupload”包上传图片。当用户在文本区域中输入一些内容并单击表单提交按钮时,我想将文本区域中的内容放入pdf文件中。我有下面的代码。
问题在于,在pdf文件中,如果在文本区域中插入了图像,则该图像不会出现在pdf中,而在pdf中会显示“找不到图像或类型未知”。
您知道可能是什么问题吗?
图像以这种方式存储在证书表的内容列中:
<p>test<img src="/img/image_15zdbBr.jpeg" alt="" width="1200" height="900" /></p>
获取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文本区域中的图像,如何更改该图像的绝对路径。
答案 0 :(得分:2)
这是一个已报告的问题:https://github.com/dompdf/dompdf/issues/1659。
建议您
img/image_15zdbBr.jpeg
,并且$dompdf->setBasePath($base_path)
,其中$ base_path是文件所在的位置。 (https://github.com/dompdf/dompdf/wiki/Usage#setbasepath)使用聊天中的显着位进行编辑:
$pdf->getDomPDF()->setBasePath();
../../../image/file.jpg
,因此,这意味着“从“基本目录开始,后退一个,后退一个,后退一个,进入img /,找到文件”。目录”必须位于文件之前,以使您回想起来。工作示例:
/home/john/projects/proj/public/img/image.jpeg
../../../img/image.jpeg
/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,直到找到正确的路径。