php - 找不到图像或类型未知(使用 tinymce 和 dompdf 以显示存储在 pdf 中 tinymce textarea 中的 html)
问题描述
我正在使用 tinymce 使用包“laravel-tinymce-simple-imageupload”进行图像上传。当用户在 textarea 中输入一些内容并单击表单提交按钮时,我想将 textarea 中的内容放在 pdf 文件中。我有下面的代码。
问题是在 pdf 文件中,如果在 textarea 中插入图像,则图像不会出现在 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 文本区域中的图像如何更改该图像的绝对路径。
解决方案
这是一个报告的问题:https ://github.com/dompdf/dompdf/issues/1659 。
建议你:
- 将 relative_urls 设置为 true(这会将图像设置为
img/image_15zdbBr.jpeg
, 和 - 设置
$dompdf->setBasePath($base_path)
$base_path 是文件所在的位置。(https://github.com/dompdf/dompdf/wiki/Usage#setbasepath)
使用聊天中的重要信息进行编辑:
- 当您使用 Laravel 的包装器时,您需要掌握将通过的 domPDF 类的句柄
$pdf->getDomPDF()->setBasePath();
- 由于相对文件路径是
../../../image/file.jpg
,这意味着“从”基目录开始,后退一,后退一,后退一,进入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 直到获得正确的路径。
推荐阅读
- r - 使用“NLEQSLV”包求解两个非线性方程
- typescript - 将联合类型转换为条件类型
- tensorflow - 为什么分类结果集中在CNN模型中的一类?
- javascript - 实现自定义实用程序而不是`window.location.assign`
- javascript - 打字稿 - 不可分配给学生打字
- powershell - 比较 2 个大文件,用 powershell 还是其他方式?
- angular - Ionic 3 FireReader 不工作,但 Ionic 4 可以
- arrays - R 反向复位计数器到复位时间
- validation - 如何测试字符串输入?(Dyalog APL)
- soap - WSO2:流处理器