这个搜一下不就有了吗,https://github.com/PHPOffice/PHPPresentation
例子也有标明了 https://github.com/PHPOffice/PHPPresentation/tree/develop/samples
这个我用过了,而且弄了一天,这里面都是怎么创建一个ppt,或者修改。没有读。里面有个reader的文件夹,但是里面函数全是load相关的,就是加载ppt文件,然后获取当前第几页。然后就是编辑了。
不把百度结果都试一遍,真不愿意来论坛问,首先不能得到及时反馈,其次问个问题也没几个人看。只能碰运气
@lippor:
不知道你要读取什么内容,读取文本等内容,自带的例子samples\Sample_12_Reader_PowerPoint2007.php 就很清楚了,我运行结果如下
Sample 12 Reader PowerPoint2007 PhpPresentation Info "PhpPresentation" Slide Info "Slide" Shape "RichText" Shape "RichText" Slide Info "Slide" Shape "RichText" Shape "RichText" HashCode a2a25f2b5ee362a8d8e8eae2e9c61cfa Offset X 0 Offset Y 0 Height 0 Width 0 Rotation 0° Hyperlink False Fill @Todo Border @Todo IsPlaceholder true # of paragraphs 1 Inset (T / R / B / L) 4.8px / 9.6px / 4.8px / 9.6px Text Paragraph Alignment Horizontal Alignment::HORIZONTAL_GENERAL Alignment Vertical Alignment::VERTICAL_BASE Alignment Margin (L / R) 0 px / 0px Alignment Indent 0 px Alignment Level 0 Bullet Style Bullet::TYPE_NONE Line Spacing 100 RichText TextElement 演示标题 Font Name Calibri Font Size 10 Font Color #FF000000 Font Transform Bold : N - Italic : N - Underline : Underline::UNDERLINE_NONE - Strikethrough : N - SubScript : N - SuperScript : N
@TCG2008:
我把那个问题解决了,贴出来,如果有人需要直接拿走。
$c=$oPHPPresentation->getSlideCount();
for ($i = 0; $i < count($c); $i++) {
$oSlide=$oPHPPresentation->getSlide($i);
$sc=$oSlide->getShapeCollection()->serialize();
preg_match_all("/[\x{4e00}-\x{9fa5}]/u", $sc, $x);
$b = join("", $x[0]);
$text=$text.$b;
}
每一页进行serialize 处理,然后用正则把汉字匹配出来。然后我就可以做自己的处理了。