我正面临一个问题,比如我使用apache POI生成pptx powerpoint演示文稿,所以生成的ppt可以用libra office打开,但当我试图在ms powerpoint中打开时,它产生了一些问题,比如我在演示文稿中插入的图像无法显示。我将json数组中的字节编码字符串传递给我的服务。有人能帮我吗?有什么问题吗?谢谢
public Response generatePptDocument(JSONObject json) throws JSONException{
JSONArray jsonArray=json.getJSONArray("image");
String [] stringArray=new String[jsonArray.length()];
XMLSlideShow ppt = new XMLSlideShow();
Response result=null;
String uniquename=null;
try{
for(int i=0;i<jsonArray.length();i++){
XSLFSlide slide = ppt.createSlide();
stringArray[i]=(String) jsonArray.get(i);
byte[] picture=Base64.decodeBase64(stringArray[i].substring(22));
int idx = ppt.addPicture(picture, XSLFPictureData.PICTURE_TYPE_PNG);
ppt.setPageSize(new java.awt.Dimension(1600, 600));
//creating a slide with given picture on it
XSLFPictureShape pic = slide.createPicture(idx);
String outputDirectory = propertyUtil.getProperty("output.save.uri");
SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("ddMMyyyyHHmmss");
String date = DATE_FORMAT.format(new Date());
uniquename = 1 + "-" + date + "." + "pptx";
String streamPath = outputDirectory+uniquename;
//creating a file object
File file=new File(streamPath);
FileOutputStream out = new FileOutputStream(file);
//saving the changes to a file
ppt.write(out);
StringResponse response=new StringResponse();
response.setUniqueName(uniquename);
result=Response.ok().entity(response).build();
}
}catch(JSONException e){
log.info("Error in json Object");
result=Response.status(304).entity("Error in json Object").build();
}
catch(IOException e){
log.info("Error while creating PPT Document");
result=Response.status(304).entity("Error while generation PPT").build();
}
您将参数作为二进制或输入流在JSONObject
中。确保您没有使用if条件获得null JSONObject
。而且,您已经编写了:
byte[] picture=Base64.decodeBase64(stringArray[i].substring(22));
您正在字符串本身的开头从索引22处删除字符串。确保你以正确的方式阅读字符串。因为在< code >解密时,由于特定索引处的子字符串,您获取的二进制字符串可能会丢失某些内容。即使你漏掉了一个字符,你的二进制字符串也没有意义。
我想验证我写的多线程应用程序的设计,并在几点上得到澄清/再保证。我提前为这么长的帖子道歉——我想把它分成几个问题,但是我必须引用相同的代码,它们似乎都是相互关联的,所以我选择把所有的东西放在一个帖子里。如果这是不合适的-请让我知道,我会打破这成多个职位。 这是我所拥有的: BatchService(Spring Singleton bean):接受上传指定目录或zip存档的请求。为此,它拥有Exe
这里和这里的类似问题并没有帮助我解决这个问题。 我使用的是KeyClope 4.4。0来保护我的REST服务,该服务是使用Spring Boot实现的,我使用React作为前端。 当前端(在上运行)调用并被重定向到KeyCloak登录页面时,我得到一个CORS错误。 错误是: localhost/:1未能加载http://localhost:8080/login:重定向自'http://local
本文向大家介绍Android中NavigationView的使用与相关问题解决,包括了Android中NavigationView的使用与相关问题解决的使用技巧和注意事项,需要的朋友参考一下 一、基本使用 1. NavigationView 在 design 库中,添加依赖(最新的是 23.2.0); 2. 然后在 DrawerLayout 布局中添加 NavigationView ; 其中需要注
我有一个以输入类型为数字的编辑文本。但是在完成一项任务后,如果我再次单击编辑文本,输入类型将更改为文本。 大约一秒钟后,它会将输入类型显示为数字,很快它就会自动将编辑文本的输入类型更改为文本。即使我点击按键,编辑文本上也不会显示任何内容。 我检查了logcat,我得到了这个: 我检查了这个链接:getExtractedText on inactive InputConnection warning
我正在寻找以下问题的答案。 > 在服务器断开的情况下,Camel SFPT是否支持resume功能。我注意到,一旦从基础JSCH库抛出SocketTimeout/IOException异常,就会删除.inprogress文件。我的期望是,一旦连接可用,camel应该重新建立连接,并从它离开的地方恢复下载。 connectTimeout、timeout和soTimeout等参数不起作用。在windo
本页列出了所有Apache遵守的相关标准,并伴有简要描述。 除了下面列出的参考信息,下列资源也值得看看: http://purl.org/NET/http-errata - HTTP/1.1 勘误表 http://www.rfc-editor.org/errata"http://ftp.ics.uci.edu/pub/ietf/http/"> http://ftp.ics.uci.edu/pub/