Aspose slides将pdf转成ppt表格结构解析不到

公式.pdf (967.7 KB)

@SalesDhorde

我们正在检查,很快就会回复您。

@SalesDhorde

看起来这是你的字体问题。请尝试安装支持数学表达式的字体。我们在我们的环境中进行了测试,并没有在输出 PPTX 中注意到这个问题。
公式.zip (15.8 KB)

能说明下有哪些字体支持吗?

@SalesDhorde

PDF 使用 CambriaMath 字体。您执行转换的系统中是否存在此字体?

可以提供这个字吗?我该如何获取?

c244c722524b8574099b7ac6b1e6196.jpg (283.8 KB)
181e035ff04aa605bfa0795ed9fa251.jpg (192.5 KB)执行的时候依然会显示乱码,是什么原因呢?

@SalesDhorde

您在屏幕截图中显示了控制台输出吗?你不是从PDF生成PPT吗?您能分享一下您最后生成的输出文件吗?

是从pdf生成ppt,ppt文件里面公式是正常显示,通过程序执行读取ppt内容里的公式乱码。pdf生成的word和Excel都会有这种公式乱码的情况
ed117bf66e5a4c3fbd1dbe64cea35aee.zip (16.0 KB)

@SalesDhorde

您能分享一下您用来读取PPT内容的代码片段吗?我们认为该问题可能与 Aspose.Slides 有关,因为 Aspose.PDF 正在生成正确的输出。

df9a1daee1168aa583e2c36991cc9ff.jpg (153.5 KB)

@SalesDhorde

image.png (256.0 KB)

我们测试发现控制台输出显示乱码。但是当我们复制它并粘贴到幻灯片内时,它粘贴正确。由于某些编码设置,控制台输出似乎未显示正确的文本。

请问,如何才能正常显示呢?

@SalesDhorde

我们已在内部问题跟踪系统中打开以下新票证,并将根据 Free Support Policies 中提到的条款提供修复。

问题 ID:SLIDESJAVA-39496

如果您需要优先支持,以及直接联系我们的付费支持管理团队,您可以获取 Paid Support Services

@SalesDhorde

问题在于 Intellij Idea 控制台中的符号显示,而不是 Aspose.Slides 中的符号显示。 Aspose.Slides 返回字符串的所有字符。

不幸的是,我们没有针对这个问题的通用解决方案。您可以尝试更改控制台编码或联系Intellij Idea论坛。

这不仅仅是控制台输出,程序读出,存入数据库以及读出显示到前端页面,也是同样的,展示都是乱码,我们的更多是关心界面上展示,并非控制台输出。

@SalesDhorde

请允许我们进行更多调查,我们将与您分享我们的反馈。

@SalesDhorde,
这里的主要问题是,这段文字虽然是公式(数学文本),但却是简单的文本。math.png (15.3 KB)

由于这个原因,无法将此文本导出为例如 MathML 的格式。这个 XML 文件可以存储在任何数据库中,并且可以轻松地加载到许多应用程序中 - MathML - Wikipedia.

FileOutputStream fos = new FileOutputStream("mathML.xml");
com.aspose.slides.Presentation presentation = new Presentation("mathml.pptx");
for(com.aspose.slides.ISlide slide : presentation.getSlides()) {
    for (com.aspose.slides.IShape shape : slide.getShapes()) {
        if (shape instanceof com.aspose.slides.AutoShape) {
            com.aspose.slides.AutoShape shape1 = (com.aspose.slides.AutoShape)shape;
            for (IParagraph paragraph : shape1.getTextFrame().getParagraphs())
            {
                for (IPortion portion : paragraph.getPortions())
                {
                    if (portion instanceof MathPortion)
                    {
                        ((MathPortion)portion).getMathParagraph().writeAsMathMl(fos);
                        fos.close();
                    }
                }
            }
        }
    }
}

Aspose.Slides 会按 slide1.xml 文件中存储的内容返回符号。symbol.png (5.6 KB)

正如你所见,这些字符没有以 UTF-8 编码保存。这很可能会在其他程序中导致问题。

我们建议在演示文稿中使用真正的数学表达式。这将允许它们被正确导出(作为MathML)并在其他程序中使用。

抱歉再次打扰,请问该问题有得到修复吗,或者大概的修复时间有吗,因为现在出现该问题很频繁,迫切需要解决这个问题。

@SalesDhorde

关于PDFJAVA-43975,我们担心该问题尚未解决。不过,一旦我们在解决问题方面取得任何进展,我们就会通知您。对于给您带来的不便,我们深表歉意。