使用 C++ 通过 Node.js 导出带有 viewBox 属性的 SVG 图表
Contents
[
Hide
]
默认情况下,将图表导出为SVG格式时,其XML中不包括viewBox属性。但是,Aspose.Cells提供了ImageOrPrintOptions.getSVGFitToViewPort()属性,将其设置为true时会导出具有viewBox属性的SVG图表。
导出带有viewBox属性的SVG图表
以下示例代码将图表导出为带有viewBox属性的SVG格式。
const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
// Create workbook object from source file
const workbook = new AsposeCells.Workbook(path.join(dataDir, "SampleChartBook.xlsx"));
// Access first worksheet
const worksheet = workbook.getWorksheets().get(0);
// Access first chart inside the worksheet
const chart = worksheet.getCharts().get(0);
// Set image or print options with SVGFitToViewPort true
const opts = new AsposeCells.ImageOrPrintOptions();
opts.setImageType(AsposeCells.ImageType.Svg);
opts.setSVGFitToViewPort(true);
// Save the chart to svg format
chart.toImage(path.join(dataDir, "Image_out.svg"), opts);
如果在记事本中打开图表的SVG文件,将会找到类似于这样的viewBox属性。
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
<span class="n">width</span><span class="o">=</span><span class="s">"100%"</span> <span class="n">height</span><span class="o">=</span><span class="s">"100%"</span>
<span class="n">viewBox</span><span class="o">=</span><span class="s">"0 0 480 288"</span><span class="o">></span></code></pre></div>