Java 如何将所有PowerPoint幻灯片转换为JPEG格式?

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;

我正在实现Android应用程序,用于转换JPEG格式的power point幻灯片。我已经在文本视图中从SD卡上传了PowerPoint文件,并且成功地统计了他们的幻灯片。但当我将所有幻灯片转换为JPEG格式时,我在Saaspose Sdk中的文档类中会显示错误

这是我的文档类:

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)。