Java 如何将所有PowerPoint幻灯片转换为JPEG格式?
我正在实现Android应用程序,用于转换JPEG格式的power point幻灯片。我已经在文本视图中从SD卡上传了PowerPoint文件,并且成功地统计了他们的幻灯片。但当我将所有幻灯片转换为JPEG格式时,我在Saaspose Sdk中的文档类中会显示错误 这是我的文档类:Java 如何将所有PowerPoint幻灯片转换为JPEG格式?,java,android,Java,Android,我正在实现Android应用程序,用于转换JPEG格式的power point幻灯片。我已经在文本视图中从SD卡上传了PowerPoint文件,并且成功地统计了他们的幻灯片。但当我将所有幻灯片转换为JPEG格式时,我在Saaspose Sdk中的文档类中会显示错误 这是我的文档类: public class Document { public Document(String fileName) { this.fileName = fileName;
public class Document {
public Document(String fileName)
{
this.fileName = fileName;
gson = new Gson();
}
public String fileName="";
Gson gson = null;
public int getSlideCount() {
try {
// build URI to get slide count
String strURI = Product.getBaseProductUri() + "/slides/" + fileName + "/slides";
String signedURI = Utils.sign(strURI);
InputStream responseStream = Utils.processCommand(signedURI,"GET");
String strJSON = Utils.streamToString(responseStream);
SlidesResponse slidesResponse = gson.fromJson(strJSON,SlidesResponse.class);
int count = slidesResponse.getSlides().getSlideList().size();
return count;
}
catch (Exception e)
{
logger.error(e.getMessage());
return -1;
}
}
public void saveSlideAs(String outputPath, int slideNumber,
ImageFormat imageFormat)// Returns 100x100 image
{
try {
// build URI to get page count
String strURI = Product.getBaseProductUri() + "/slides/" + fileName
+ "/slides/" + Integer.toString(slideNumber) + "?format="
+ imageFormat.toString().toLowerCase();
String signedURI = Utils.sign(strURI);
InputStream responseStream = Utils.processCommand(signedURI, "GET");
Folder.saveStreamToFile(outputPath,
responseStream);
responseStream.close();
}
catch (Exception e) {
logger.error(e.getMessage());
}
}
}
这是我的StorageFolderUploadFile类
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.storage_folder_uploadfile);
init();
btnSubmit.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View arg0)
{
// TODO Auto-generated method stub
if (function_arg1.getText().length() == 0)
{
AlertDialog.Builder dialog = new AlertDialog.Builder(StorageFolderUploadFile.this);
dialog.setTitle("Error");
dialog.setMessage("Please Enter Require Fields");
dialog.setNeutralButton("Ok", null);
dialog.show();
}
else
{
System.out.println("*******************");
fileName = function_arg1.getText().toString();
Log.e("fileName ","-> " + fileName);
String[] afterSplit = fileName.split("/");
Log.e("String[] ","afterSplit -> " + afterSplit);
String mntString=afterSplit[1];
Log.e("mntString "," afterSplit -> " + mntString);
String sdCardString=afterSplit[2];
Log.e("adCardString "," afterSplit -> " + sdCardString);
String fileMainName=afterSplit[3];
Log.e("fileName "," afterSplit -> " + fileMainName);
txtFileNameForSlideCount.setText(fileMainName);
System.out.println("********************");
//folderName = function_arg2.getText().toString();
//folderName="tazeen";
Folder obj = new Folder();
try
{
response = obj.uploadFile(fileName);
Log.e("",""+response);
if (response)
{
result.append("File Uploaded Successfully " );
Document docObj1=new Document(txtFileNameForSlideCount.getText().toString());
countSlides=docObj1.getSlideCount();
Log.e("contSildes is","-> "+countSlides);
if(countSlides>0)
{
result.append(" Numbers Of Slides = " + countSlides);
Log.e("File Uploaded Successfully and ","Numbers Of Slides -> " + countSlides);
}
Document docObj2=new Document(fileMainName);
for(int i=1; i <= countSlides ; i++)
{
/*System.out.println("________________________________________");
String strformatName="Slide.png";
docObj2.saveSlideAs(strformatName,countSlides,imageFormat);
result.append("slide is converted and save to your sdcard");
System.out.println("Slides name and number " + strformatName +" "+countSlides);
Log.e("Document Object ","-> " + docObj2);*/
outputPath = "slide"+i+".png";
slideNumber = i;
docObj2.saveSlideAs(outputPath, slideNumber, imageFormat);
result.append("slide is converted and save to your sdcard");
}
}
else
{
result.append("Oops..Something went wrong");
}
}
catch (Exception e)
{
// TODO Auto-generated catch block
Toast.makeText(StorageFolderUploadFile.this,
"Error occured while performing this task",
Toast.LENGTH_LONG).show();
result.append("Error Occured");
}
}
}
});
}
}
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.storage\u folder\u uploadfile);
init();
btnSubmit.setOnClickListener(新视图.OnClickListener()
{
@凌驾
公共void onClick(视图arg0)
{
//TODO自动生成的方法存根
if(函数_arg1.getText().length()==0)
{
AlertDialog.Builder dialog=新建AlertDialog.Builder(StorageFolderUploadFile.this);
对话框.setTitle(“错误”);
setMessage(“请输入必填字段”);
setNeutralButton(“确定”,空);
dialog.show();
}
其他的
{
System.out.println(“**********************”);
fileName=function_arg1.getText().toString();
Log.e(“文件名”、“->”+文件名);
字符串[]afterplit=fileName.split(“/”);
Log.e(“字符串[]”,“后分裂->”+后分裂);
字符串mntString=afterplit[1];
Log.e(“MNT串”、“后分裂->”+MNT串);
字符串sdCardString=afterplit[2];
Log.e(“adCardString”、“afterplit->”+sdCardString);
字符串fileMainName=afterplit[3];
Log.e(“fileName”、“afterplit->”+fileMainName);
txtFileNameForSlideCount.setText(fileMainName);
System.out.println(“**********************”);
//folderName=函数_arg2.getText().toString();
//folderName=“tazeen”;
Folder obj=新文件夹();
尝试
{
response=obj.uploadFile(文件名);
Log.e(“,”+响应);
如果(答复)
{
result.append(“文件上传成功”);
Document docObj1=新文档(txtfilename forslidecount.getText().toString());
countSlides=docObj1.getSlideCount();
Log.e(“contSildes is”、“->”+countSlides);
如果(计数幻灯片>0)
{
结果。追加(“幻灯片数量=“+countSlides”);
Log.e(“文件上传成功”,“幻灯片数量->”+countSlides);
}
Document docObj2=新文档(fileMainName);
对于(int i=1;i)我有一个快速建议:不要转换为JPEG,因为它对于高频数据(如白色背景上的黑色文本、线条图等)是一种糟糕的格式。请改为使用PNG(甚至可能是WebP)。