在 PHP 中将演示文稿幻灯片渲染为 SVG 图像
Contents
[
Hide
]
SVG 格式
SVG—可缩放矢量图形(Scalable Vector Graphics)的缩写——是一种用于渲染二维图像的标准图形类型或格式。SVG 将图像以 XML 中的向量形式存储,并包含定义其行为或外观的细节。
SVG 是为数不多的在可伸缩性、交互性、性能、可访问性、可编程性等方面符合极高标准的图像格式之一。正因为这些原因,它在网页开发中被广泛使用。
当您需要以下情况时,可能想使用 SVG 文件:
- 以非常大的尺寸打印您的演示文稿。SVG 图像可以缩放到任意分辨率或级别。您可以根据需要多次调整 SVG 图像大小而不损失质量。
- 在不同的媒介或平台中使用幻灯片中的图表和图形。大多数阅读器都能解析 SVG 文件。
- 使用尽可能最小的图像尺寸。SVG 文件通常比其他格式(尤其是基于位图的格式,如 JPEG 或 PNG)的高分辨率等价文件更小。
将幻灯片渲染为 SVG 图像
Aspose.Slides for PHP via Java 允许您将演示文稿中的幻灯片导出为 SVG 图像。按照以下步骤生成 SVG 图像:
- 创建 Presentation 类的实例。
- 遍历演示文稿中的所有幻灯片。
- 通过 FileOutputStream 将每张幻灯片写入各自的 SVG 文件。
您可以试用我们的免费网络应用,我们在其中实现了 Aspose.Slides for PHP via Java 的 PPT 转 SVG 转换功能。
以下示例代码演示了如何使用 Aspose.Slides 将 PPT 转换为 SVG:
$pres = new Presentation("pres.pptx");
try {
for($index = 0; $index < java_values($pres->getSlides()->size()) ; $index++) {
$slide = $pres->getSlides()->get_Item($index);
$fileStream = new Java("java.io.FileOutputStream", "slide-" . $index . ".svg");
try {
$slide->writeAsSvg($fileStream);
} finally {
$fileStream->close();
}
}
} catch (JavaException $e) {
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
常见问题
为什么生成的 SVG 在不同浏览器中可能显示不同?
各浏览器引擎对特定 SVG 功能的实现方式不同。SVGOptions 参数有助于平滑这些不兼容性。
是否可以不仅导出幻灯片,还导出单个形状为 SVG?
是的。任何形状都可以保存为单独的 SVG,这对图标、象形图以及重复使用图形非常方便。
是否可以将多张幻灯片合并为单个 SVG(条形图/文档)?
标准场景是一张幻灯片对应一个 SVG。将多张幻灯片合并到同一 SVG 画布是需要在应用层进行的后处理步骤。