PHP读取PPT文件的方法

2025-05-29 0 44

本文实例讲述了PHP读取PPT文件的方法。分享给大家供大家参考,具体如下:

最近做一个和FLASH有关的东西,其中就要用到在网站上看PPT就像百度,豆丁网那样可以直接在网站上读,在网上搜了半天没搜到,都是些什么安装个软件什么的,PHP网站放到空间上,谁能让你在哪装软件呢?不是在瞎扯么?不过还好,最后在国外一个网站上搜到了一个解决思路,就是一个PHP操作PPT的类,当然这个网站还提供了操作OFFICES软件的其他类,不过是2007版的OFFICES,现把网址贴出来奉献给大家:http://phppowerpoint.codeplex.com/。

这个类可以实现 PPT2007格式的读写/生成

下面也贴出当时看到的一个例子:

本例子使用phppowerpoint类,使用该类注意两点,一个是了解参数含义,二注意字符集

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

240

241

242
<?php

header("content-type:text/html;charset=utf-8");//字体设置防止乱码

error_reporting(E_ALL);

/** Include path **/

set_include_path(get_include_path() . PATH_SEPARATOR . '../Classes/');

/** PHPPowerPoint */

include 'PHPPowerPoint.php';

/** PHPPowerPoint_IOFactory */

include 'PHPPowerPoint/IOFactory.php';

// Create new PHPPowerPoint object

//echo date('H:i:s') . " Create new PHPPowerPoint object\\n";

$objPHPPowerPoint = new PHPPowerPoint();

$objPHPPowerPoint->getProperties()->setCreator("Maarten Balliauw");

$objPHPPowerPoint->getProperties()->setLastModifiedBy("Maarten Balliauw");

$objPHPPowerPoint->getProperties()->setTitle("Office 2007 PPTX Test Document");

$objPHPPowerPoint->getProperties()->setSubject("Office 2007 PPTX Test Document");

$objPHPPowerPoint->getProperties()->setDescription("Test document for Office 2007 PPTX, generated using PHP classes.");

$objPHPPowerPoint->getProperties()->setKeywords("office 2007 openxml php");

$objPHPPowerPoint->getProperties()->setCategory("Test result file");

// Remove first slide

//echo date('H:i:s') . " Remove first slide\\n";

$objPHPPowerPoint->removeSlideByIndex(0);

// Create templated slide

//echo date('H:i:s') . " Create templated slide\\n";

/*$currentSlide = createTemplatedSlide($objPHPPowerPoint); // local function

// Create a shape (text)

echo date('H:i:s') . " Create a shape (rich text)\\n";

$shape = $currentSlide->createRichTextShape();

$shape->setHeight(200);

$shape->setWidth(600);

$shape->setOffsetX(10);

$shape->setOffsetY(400);

$shape->getAlignment()->setHorizontal( PHPPowerPoint_Style_Alignment::HORIZONTAL_LEFT );

$textRun = $shape->createTextRun('Introduction to');

$textRun->getFont()->setBold(true);

$textRun->getFont()->setSize(28);

$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FFFFFFFF' ) );

$shape->createBreak();

$textRun = $shape->createTextRun('PHPPowerPoint');

$textRun->getFont()->setBold(true);

$textRun->getFont()->setSize(60);

$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FFFFFFFF' ) );

// Create templated slide

echo date('H:i:s') . " Create templated slide\\n";

$currentSlide = createTemplatedSlide($objPHPPowerPoint); // local function

// Create a shape (text)

echo date('H:i:s') . " Create a shape (rich text)\\n";

$shape = $currentSlide->createRichTextShape();

$shape->setHeight(100);

$shape->setWidth(930);

$shape->setOffsetX(10);

$shape->setOffsetY(10);

$shape->getAlignment()->setHorizontal( PHPPowerPoint_Style_Alignment::HORIZONTAL_LEFT );

$textRun = $shape->createTextRun('What is PHPPowerPoint?');

$textRun->getFont()->setBold(true);

$textRun->getFont()->setSize(48);

$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FFFFFFFF' ) );

// Create a shape (text)

echo date('H:i:s') . " Create a shape (rich text)\\n";

$shape = $currentSlide->createRichTextShape();

$shape->setHeight(600);

$shape->setWidth(930);

$shape->setOffsetX(10);

$shape->setOffsetY(100);

$shape->getAlignment()->setHorizontal( PHPPowerPoint_Style_Alignment::HORIZONTAL_LEFT );

$textRun = $shape->createTextRun('- A class library');

$textRun->getFont()->setSize(36);

$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FFFFFFFF' ) );

$shape->createBreak();

$textRun = $shape->createTextRun('- Written in PHP');

$textRun->getFont()->setSize(36);

$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FFFFFFFF' ) );

$shape->createBreak();

$textRun = $shape->createTextRun('- Representing a presentation');

$textRun->getFont()->setSize(36);

$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FFFFFFFF' ) );

$shape->createBreak();

$textRun = $shape->createTextRun('- Supports writing to different file formats');

$textRun->getFont()->setSize(36);

$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FFFFFFFF' ) );

// Create templated slide

echo date('H:i:s') . " Create templated slide\\n";

$currentSlide = createTemplatedSlide($objPHPPowerPoint); // local function

// Create a shape (text)

echo date('H:i:s') . " Create a shape (rich text)\\n";

$shape = $currentSlide->createRichTextShape();

$shape->setHeight(100);

$shape->setWidth(930);

$shape->setOffsetX(10);

$shape->setOffsetY(10);

$shape->getAlignment()->setHorizontal( PHPPowerPoint_Style_Alignment::HORIZONTAL_LEFT );

$textRun = $shape->createTextRun('What\\'s the point?');

$textRun->getFont()->setBold(true);

$textRun->getFont()->setSize(48);

$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FFFFFFFF' ) );

// Create a shape (text)

echo date('H:i:s') . " Create a shape (rich text)\\n";

$shape = $currentSlide->createRichTextShape();

$shape->setHeight(600);

$shape->setWidth(930);

$shape->setOffsetX(10);

$shape->setOffsetY(100);

$shape->getAlignment()->setHorizontal( PHPPowerPoint_Style_Alignment::HORIZONTAL_LEFT );

$textRun = $shape->createTextRun('- Generate slide decks');

$textRun->getFont()->setSize(36);

$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FFFFFFFF' ) );

$shape->createBreak();

$textRun = $shape->createTextRun(' - Represent business data');

$textRun->getFont()->setSize(28);

$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FFFFFFFF' ) );

$shape->createBreak();

$textRun = $shape->createTextRun(' - Show a family slide show');

$textRun->getFont()->setSize(28);

$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FFFFFFFF' ) );

$shape->createBreak();

$textRun = $shape->createTextRun(' - ...');

$textRun->getFont()->setSize(28);

$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FFFFFFFF' ) );

$shape->createBreak();

$textRun = $shape->createTextRun('- Export these to different formats');

$textRun->getFont()->setSize(36);

$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FFFFFFFF' ) );

$shape->createBreak();

$textRun = $shape->createTextRun(' - PowerPoint 2007');

$textRun->getFont()->setSize(28);

$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FFFFFFFF' ) );

$shape->createBreak();

$textRun = $shape->createTextRun(' - Serialized');

$textRun->getFont()->setSize(28);

$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FFFFFFFF' ) );

$shape->createBreak();

$textRun = $shape->createTextRun(' - ... (more to come) ...');

$textRun->getFont()->setSize(28);

$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FFFFFFFF' ) );

// Create templated slide

echo date('H:i:s') . " Create templated slide\\n";

$currentSlide = createTemplatedSlide($objPHPPowerPoint); // local function

// Create a shape (text)

echo date('H:i:s') . " Create a shape (rich text)\\n";

$shape = $currentSlide->createRichTextShape();

$shape->setHeight(100);

$shape->setWidth(930);

$shape->setOffsetX(10);

$shape->setOffsetY(10);

$shape->getAlignment()->setHorizontal( PHPPowerPoint_Style_Alignment::HORIZONTAL_LEFT );

$textRun = $shape->createTextRun('Need more info?');

$textRun->getFont()->setBold(true);

$textRun->getFont()->setSize(48);

$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FFFFFFFF' ) );

// Create a shape (text)

echo date('H:i:s') . " Create a shape (rich text)\\n";

$shape = $currentSlide->createRichTextShape();

$shape->setHeight(600);

$shape->setWidth(930);

$shape->setOffsetX(10);

$shape->setOffsetY(100);

$shape->getAlignment()->setHorizontal( PHPPowerPoint_Style_Alignment::HORIZONTAL_LEFT );

$textRun = $shape->createTextRun('Check the project site on CodePlex:');

$textRun->getFont()->setSize(36);

$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FFFFFFFF' ) );

$shape->createBreak();

$textRun = $shape->createTextRun(' );

$textRun->getFont()->setSize(36);

$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FFFFFFFF' ) );

// Create templated slide

echo date('H:i:s') . " Create templated slide\\n";*/

//test

//从数据库调取数据进行for循环

$row=array('titlepic'=>array('./images/love.gif','./images/love1.gif','./images/love2.gif','./images/love3.gif'),'xsprice'=>array("55","33","22","333"),'cjid'=>array('100','222','333','3333'),'lpid'=>array('111','222','333','444'),'price'=>array('111','433','243','3245'));

for($i=0;$i<4;$i++)

{

$currentSlide = createTemplatedSlide1($objPHPPowerPoint,$row["titlepic"][$i]); // local function

// Create a shape (text)

//echo date('H:i:s') . " Create a shape (rich text)\\n";

$shape = $currentSlide->createRichTextShape();

$shape->setHeight(100);

$shape->setWidth(930);

//调整字体的高度宽度

$shape->setOffsetX(20);

$shape->setOffsetY(400);

//$shape->getAlignment()->setHorizontal( PHPPowerPoint_Style_Alignment::HORIZONTAL_LEFT );

$row["price"]=iconv("utf-8","gb2312",$row["price"][$i]);

$textRun = $shape->createTextRun('礼品网价格:'.$row["xsprice"][$i]);

$textRun->getFont()->setBold(true);

$textRun->getFont()->setSize(48);

$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( '#000000' ) );

$shape = $currentSlide->createRichTextShape();

$shape->setHeight(600);

$shape->setWidth(930);

$shape->setOffsetX(20);

$shape->setOffsetY(500);

$shape->getAlignment()->setHorizontal( PHPPowerPoint_Style_Alignment::HORIZONTAL_LEFT );

//添加多行内容从这开始

$textRun = $shape->createTextRun('公司编号: '.$row["cjid"][$i]);

$textRun->getFont()->setSize(36);

$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( '#000000' ) );

$shape->createBreak();

$textRun = $shape->createTextRun('礼品网编号: '.$row["lpid"][$i]);

$textRun->getFont()->setSize(36);

$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( '#000000' ) );

//test

// Save PowerPoint 2007 file

}

//echo date('H:i:s') . " Write to PowerPoint2007 format\\n";

$objWriter = PHPPowerPoint_IOFactory::createWriter($objPHPPowerPoint, 'PowerPoint2007');

$objWriter->save(str_replace('.php', '.pptx',__FILE__));

header("Content-type:application/vnd.ms-powerpoint;");

header("location:02presentation.pptx");

// Echo memory peak usage

//echo date('H:i:s') . " Peak memory usage: " . (memory_get_peak_usage(true) / 1024 / 1024) . " MB\\r\\n";

// Echo done

//echo date('H:i:s') . " Done writing file.\\r\\n";

/**

* Creates a templated slide

*

* @param PHPPowerPoint $objPHPPowerPoint

* @return PHPPowerPoint_Slide

*/

function createTemplatedSlide1(PHPPowerPoint $objPHPPowerPoint,$cs1)

{

// Create slide

$slide = $objPHPPowerPoint->createSlide();

// Add background image

$shape = $slide->createDrawingShape();

$shape->setName('Background');

$shape->setDescription('Background');

$shape->setPath('./images/realdolmen_bg.jpg');

$shape->setWidth(950);

$shape->setHeight(720);

$shape->setOffsetX(0);

$shape->setOffsetY(0);

// Add logo

$shape = $slide->createDrawingShape();

$shape->setName('PHPPowerPoint logo');

$shape->setDescription('PHPPowerPoint logo');

$shape->setPath($cs1);

$shape->setHeight(120);

$shape->setOffsetX(10);

$shape->setOffsetY(10);

// Return slide

return $slide;

}

我的问题仍然还在研究中,如果大家有更好的解决方法,请继续贴,期待更多好的分享

希望本文所述对大家PHP程序设计有所帮助。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 PHP读取PPT文件的方法 https://www.kuaiidc.com/99070.html

相关文章

发表评论
暂无评论