- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试使用 PhpPresentation 阅读一个 sample.pptx
文件,使用他们文档中针对读者的简单说明,我得到:
imagecreatefromstring():数据不是可识别的格式
我已检查我是否安装了 PHP7.2-gd 和所有其他依赖项。
我的代码:
require_once 'vendor/autoload.php';
use \PhpOffice\PhpPresentation\PhpPresentation;
use \PhpOffice\PhpPresentation\IOFactory;
use \PhpOffice\PhpPresentation\Style\Color;
use \PhpOffice\PhpPresentation\Style\Alignment;
$oReader = IOFactory::createReader('PowerPoint2007');
$data = $oReader->load(__DIR__ . '/sample.pptx');
var_dump($data);
谁能帮我理解这个问题?
最佳答案
窥视the PHP source code后,为了对“imagecreatefromstring”函数有一些了解,我发现它只处理以下图像格式:
PHP 通过检查图像签名来识别包含在“imagecreatefromstring”函数参数中的图像格式,如 here 所解释的那样.
当检测到未知签名时,会发出警告“数据不是可识别的格式”。
因此,对于您遇到的错误,唯一合理的解释是您的 PPTX 文件包含不是上述格式之一的图像。
您可以通过将扩展名从“.pptx”更改为“.zip”然后打开它来查看 PPTX 文件中图像的格式。
你应该看到这样的东西:
Archive: sample.pptx
Length Date Time Name
--------- ---------- ----- ----
5207 1980-01-01 00:00 [Content_Types].xml
...
6979 1980-01-01 00:00 ppt/media/image1.jpeg
6528 1980-01-01 00:00 ppt/media/image2.jpeg
178037 1980-01-01 00:00 ppt/media/image3.jpeg
229685 1980-01-01 00:00 ppt/media/image4.jpeg
164476 1980-01-01 00:00 ppt/media/image5.jpeg
6802 1980-01-01 00:00 ppt/media/image6.png
19012 1980-01-01 00:00 ppt/media/image7.png
32146 1980-01-01 00:00 ppt/media/image8.png
...
--------- -------
795623 74 files
如您所见,我的 sample.pptx 文件包含一些 JPEG 和 PNG 格式的图像。
也许您的示例文件包含一些带有矢量格式(WMF 或 EMF)图像的幻灯片;我不清楚(因为我没有在 the docs 中找到任何引用)这些格式是否受支持。最终您应该尝试使用其他 PPTX 文件,以确保问题与特定文件无关(您可以在“test/resources/files”下找到一些文件)。
我搜索了 PowerPoint 文件支持的图像格式列表,但未能找到准确的答复。
我找到的唯一相关链接如下:
这意味着在 PPTX 文件中存在 TIFF 或 PICT (QuickDraw) 格式的图像也可能导致所考虑的错误。
关于PhpPresentation imagecreatefromstring() : Data is not in a recognized format - PHP7. 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51634838/
我正在尝试格式化 y 轴上的标签 $axis->setFormatCode('#.0\%'); 这没有提供任何更改,但我已通过在编写器类中添加 getFormatCode(); 的回显来确认格式代码设
我有一个简单的代码: 加载模板 pptx (*) 复制几张幻灯片 用值来润色这些幻灯片(只是替换占位符文本) 保存结果到新文件 不幸的是,PHPOffice 的 PHPPresentation 无法保
我正在尝试使用 PhpPresentation 阅读一个 sample.pptx 文件,使用他们文档中针对读者的简单说明,我得到: imagecreatefromstring():数据不是可识别的格式
我是一名优秀的程序员,十分优秀!