public static void pptAddFirstFoot(String sourceFile, String targetFile, String text) throws Exception {
int textHeight = 30;
Presentation pres = null;
try {
pres = new Presentation(sourceFile);
double slideHeight = pres.getSlideSize().getSize().getHeight();
ISlide firstSlide = pres.getSlides().get_Item(0);
// x,y,width,height
IAutoShape footer = firstSlide.getShapes().addAutoShape(
ShapeType.Decagon, 10, (float) (slideHeight - textHeight), 450, textHeight, false);
footer.addTextFrame(" ");
ITextFrame txtFrame = footer.getTextFrame();
IParagraph para = txtFrame.getParagraphs().get_Item(0);
para.getParagraphFormat().setAlignment(FontAlignment.Automatic);
IPortion portion = para.getPortions().get_Item(0);
portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid);
portion.getPortionFormat().setFontHeight(8);
portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.awt.Color.DARK_GRAY);
portion.setText(text);
pres.save(targetFile, OfficeMergeTypeEnum.getEnumByFileType(FileUtils.getSuffix(sourceFile)).getCode());
} catch (Exception e) {
exception(e, targetFile);
} finally {
if (Objects.nonNull(pres)) {
pres.dispose();
}
}
}
@andrey.potapov
谢谢需要我提供pptx文件吗?我发现我只要读取什么都不做,然后直接输出就会发生这种情况,产生出来的pptx在windows版的PowerPoint下打开会提示文件已损坏无法需要修复,但是在Microsoft PowerPoint for mac 上可以正常打开,在wps上也能正常打开,不确定是不是兼容性问题。
我现在甚至什么都不做都会出现这个问题
public static void pptAddFirstFoot2(String sourceFile, String targetFile, String text) throws Exception {
Presentation pres = null;
try {
pres = new Presentation(sourceFile);
pres.save(targetFile, com.aspose.slides.SaveFormat.Pptx);
} catch (Exception e) {
exception(e, targetFile);
} finally {
if (Objects.nonNull(pres)) {
pres.dispose();
}
}
}
img_v3_025v_22e0d938-39d4-462d-bb93-7d90fe5e976g.jpg (127.6 KB)
windows上的PowerPoint版本是这个,Microsoft 365 企业版
你好,我已成功复现引起这个原因是slide中含有某种图表类型引起的
图表测试.pptx.zip (53.6 KB)
图表测试.pptx代表原始能够通过Microsoft 365 企业版能打开制作的,然后我只是用slides读一下然后save,再通过Microsoft 365 打开就提示文件损坏需要修复,点击修复后,有图表的那一页幻灯片里面的东西就会消失
我使用的slides版本是22.8,但是我看最新的版本是23.11,我试了一下用最新的版本貌似可以。(手动呆无辜,我先多测一下吧…
你好,还是存在问题的,即使通过最新版的aspose-slide读一下,还是会导致Microsoft 365再次打开提示文件损坏,修复后,幻灯片里面的图表类型就会消失,而且被读过的pptx分享到微信,微信里面打开预览几秒后会自动弹出
@andrey.potapov
@caii,
我们在内部问题跟踪系统中开设了以下新的工单,并将根据Free Support Policies中提到的条款进行修复。
Issue ID(s): SLIDESJAVA-39373
如果您需要优先支持,并且想直接与我们的付费支持管理团队联系,您可以获取 Paid Support Services。
感谢,希望能早日得到解决!
@caii,
很抱歉,我们无法重现这个问题。我们在许多版本的PowerPoint上进行了测试。此外,我们还在MS Office 365版本2311(Build 17029.20068 Current Channel)中测试了演示文稿,一切都正常。
看起来问题存在于MS Office 365(Monthly Enterprise Channel)的这个特定版本中,似乎是PowerPoint中的一个错误。
无论如何:
- 请更新微软办公套件到最新版本,然后检查结果。
- 另外,您能与我们分享生成的PPTX文件吗?
- 请提供您的环境信息(操作系统版本,JDK版本)?
@andrey.potapov
你好,我想知道是不是每个aspose slides版本处理的ppt其实是对应兼容一个范围内的MS PowerPoint 版本的?这样就能解释被某个特定版本的aspose slides处理过的ppt在某些PowerPoint版本上面可以正常打开而某些版本是无法正常打开的,稍等我给下我的场景。
我的正式环境操作系统:
image.png (26.7 KB)
我的正式环境JDK:
image.png (12.6 KB)
我的本地操作系统:
image.png (74.6 KB)
我的本地JDK:
image.png (6.5 KB)
在以上两个环境中我使用"aspose-slides:jdk16:22.8"直接read一下我的问题ppt然后输出,就会导致某些PowerPoint版本打开提示修复,具体的我发现的那些版本能打开那些不能打开我下一条回复。
ppt文件(包含读取前-图表测试3和读取后-图表测试3-read)
归档.zip (148.5 KB)
我的示例代码:
public static void main(String[] args) {
Locale locale = new Locale("zh", "CN");
Locale.setDefault(locale);
System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
final com.aspose.slides.License lic = new com.aspose.slides.License();
lic.setLicense(new ByteArrayInputStream(LICENSE.getBytes(StandardCharsets.UTF_8)));
Presentation pres = null;
try {
pres = new Presentation("/XX/Downloads/图表测试3.pptx");
pres.save("/XX/Downloads/图表测试3-read.pptx", SaveFormat.Pptx);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (Objects.nonNull(pres)) {
pres.dispose();
}
}
}
接上条回复
读之前能打开,读之后不能打开的版本:
img_v3_025s_6b6e5877-e3fd-4876-ab89-0f57e2a0986g.jpg (65.3 KB)
img_v3_025v_22e0d938-39d4-462d-bb93-7d90fe5e976g.jpg (127.6 KB)
读之前能打开,读之后也能打开的版本:
image.jpg (95.1 KB)
image.png (95.7 KB)
WPS…
@andrey.potapov
你好,当我使用aspose.slides 23.11时
读之前能打开,读之后不能打开的版本
image.jpg (82.9 KB)
但是 MS Office 365版本2311(Build 17029.20068)是可以正常打开了
img_v3_025v_22e0d938-39d4-462d-bb93-7d90fe5e976g.jpg (127.6 KB)