Java 与apache poi相关的问题

Java 与apache poi相关的问题,java,apache-poi,Java,Apache Poi,我面临一个问题,比如我使用apache POI生成pptx powerpoint演示文稿,因此生成的ppt将在libra office中打开,但当我尝试在ms powerpoint中打开时,会产生一些问题,例如图像无法显示,我在json数组中获取字节编码的字符串,并将其传递给我的 服务。有人能帮我吗?有什么问题吗?谢谢 服务 public Response generatePptDocument(JSONObject json)抛出JSONException{ JSONArray JSONArr

我面临一个问题,比如我使用apache POI生成pptx powerpoint演示文稿,因此生成的ppt将在libra office中打开,但当我尝试在ms powerpoint中打开时,会产生一些问题,例如图像无法显示,我在json数组中获取字节编码的字符串,并将其传递给我的 服务。有人能帮我吗?有什么问题吗?谢谢

服务
public Response generatePptDocument(JSONObject json)抛出JSONException{
JSONArray JSONArray=json.getJSONArray(“图像”);
String[]stringArray=新字符串[jsonArray.length()];
XMLSlideShow ppt=新的XMLSlideShow();
响应结果=空;
字符串uniquename=null;
试一试{

对于(int i=0;i您在
JSONObject
itseems中将参数作为二进制或输入流。请确保您没有使用if条件获取
null JSONObject
。并且,您已经编写了:

byte[] picture=Base64.decodeBase64(stringArray[i].substring(22));

您正在缩减字符串本身开头索引22处的字符串。请确保您以正确的方式读取字符串。因为您正在获取的二进制字符串在解密时可能会由于特定索引处的子字符串而丢失某些内容。即使缺少单个字符,您的二进制字符串也没有任何意义。

您正在获取的是参数在
JSONObject
itseems中以二进制或输入流的形式显示。请确保使用if条件不会获得
null JSONObject
。并且,您已经编写了:

byte[] picture=Base64.decodeBase64(stringArray[i].substring(22));
您正在缩减字符串本身开头索引22处的字符串。请确保您以正确的方式读取字符串。因为您正在获取的二进制字符串在解密时可能会由于特定索引处的子字符串而遗漏某些内容。即使遗漏单个字符,您的二进制字符串也没有任何意义