Type TSPptxFile = Class
	///纯TSL模块实现
	///PPT文件读写接口

	///缺省构造函数
	Function Create();overload;
	///构造函数，打开已经存在的excel文件
	///alias: string，文件目录别名
	///fname: string，文件名
	Function Create(alias, fname);overload;
	///构造函数，打开已经存在的excel文件
	///alias: string，文件目录别名
	///fname: string，文件名
	///passwd: string，密码
	Function Create(alias, fname, passwd);overload;
	//初始化
	Function init();
	///打开excel文件
	///alias: string，文件目录别名
	///fname: string，文件名
	///[passwd]: string，密码
	///返回: [err, errmsg]
	Function OpenFile(alias, fname, passwd);
	///新建pptx文件
	///返回: [err, info]
	Function NewFile();
	///保存文件
	///返回: [err, info]
	Function Save();
	///设置密码
	Function SetPassword(passwd)
	///打开二进制内容
	///data: 二进制数据
	///返回: [err, errmsg]
	Function LoadFromMem(data);
	///保存为二进制内容
	///返回: [err, fileContent] fileContent二进制文件内容
	Function SaveToMem();
	///另存为
	///alias: string，文件目录别名
	///fname: string，文件名
	///返回: [err, info]
	Function SaveAs(alias, fname);
	///真实文件名
	///返回: string
	Function FileName();

	zipfile_;
End;

Function TSPptxFile.Create();overload;
Begin
	init();
End;

Function TSPptxFile.Create(alias, fname);overload;
Begin
	init();
	OpenFile(alias, fname, nil);
End;

Function TSPptxFile.Create(alias, fname, passwd);overload;
Begin
	init();
	OpenFile(alias, fname, passwd);
End;

Function TSPptxFile.init();
Begin
	zipfile_ := new ZipFile();
End;

// TODO
Function TSPptxFile.OpenFile(alias, fname, passwd);
Begin
	if not ifObj(zipfile_) then return array(-1, 'Create ZipFile object fail.');
	if zipfile_.FilesCount() > 0 then zipfile_ := new ZipFile();
	[err, errmsg] := zipfile_.Open(alias, fname, passwd);
	if err=0 then Begin
		workbook_ := new xlsxWorkBook(zipfile_);
		workbook_.Load();
	End;
	return array(err, errmsg);
End;

//TODO
Function TSPptxFile.NewFile();
Begin
	def := TOfficeTemplate('default.pptx', true);
	[err, errmsg] := zipfile_.LoadFromMem(def);
	if err = 0 then
	begin
		workbook_ := new xlsxWorkBook(zipfile_);
		workbook_.Load();
	end
	return array(err, errmsg);
End;

Function TSPptxFile.Save();
Begin
	return zipfile_.Save();
End;

Function TSPptxFile.SetPassword(passwd)
Begin
	zipfile_.Password := passwd;
End;

Function TSPptxFile.LoadFromMem(data);
Begin
	[err, errmsg] := zipfile_.LoadFromMem(data);
	if err = 0 then
	begin
		workbook_ := new xlsxWorkBook(zipfile_);
		workbook_.Load();
	end
	return array(err, errmsg);
End;

Function TSPptxFile.SaveToMem();
Begin
	return zipfile_.Save2Mem();
End;

Function TSPptxFile.SaveAs(alias, fname);
Begin
	return zipfile_.Save(alias, fname);
End;

Function TSPptxFile.FileName();
Begin
	return zipfile_.FileName();
End;

Function TSPptxFile.Zip();
Begin
	return zipfile_;
End;

