ASPOSE.SLIDES FOR JASPERREPORTS · EXPORTER JAR · NO MICROSOFT POWERPOINT REQUIRED
PowerPoint output for JasperReports.
Aspose.Slides for JasperReports is an exporter, not a presentation API. One library JAR goes onto the JasperReports classpath and adds four exporter classes - ASPptExporter, ASPptxExporter, ASPdfExporter and ASHtmlExporter - each taking the same filled JasperPrint your PDF and HTML exporters already take. JasperServer needs that same library JAR plus a small server JAR beside it, both in jasperserver/WEB-INF/lib. Your report designs are not touched: the exporter walks the printed elements and writes real slides and shapes, so what comes out is an editable deck rather than a picture of the report. The presentation engine is compiled into the library JAR, so there is no second dependency and Microsoft PowerPoint is never installed or automated. This is a separate product with its own download and its own licence, distributed as a ZIP rather than through Maven.
- Download
aspose-slides-26.6-jasperreports.zip from releases.aspose.com, there is no Maven coordinate- JasperReports
copy aspose.slides.jasperreports.library-26.6.jar, from the lib folder whose name covers your JasperReports version, into JasperReports/lib- JasperServer
copy the library AND server 26.6 JARs into jasperserver/WEB-INF/lib, then register the exporter bean in viewReportBeans.xml
JasperReports Library 3.7.2 through 6.16.0 and JasperReports Server, on any JVM from Java 6 upward. The ZIP carries three builds of the library JAR - for JasperReports 3.7.2 to 5.5.1, 5.5.2 to 6.4.0, and 6.5.0 to 6.16.0 - and you copy the one whose folder name covers your JasperReports into its lib directory. JasperServer needs that library JAR and aspose.slides.jasperreports.server-26.6.jar together in jasperserver/WEB-INF/lib, because the server JAR holds only the adapter classes and none of the engine - six of them in the 6.5.0 to 6.16.0 build, eleven in the two builds below 6.5.0, whose five extra classes are ASAbstractWSExporter, ASPptWSExporter, ASPptxWSExporter, ASPdfWSExporter and ASHtmlWSExporter, implementing com.jaspersoft.jasperserver.ws.axis2.WSExporter; it also needs a bean registration in viewReportBeans.xml and takes its settings from an ASExportParametersBean in applicationContext.xml. Support for JDK 1.4 and JasperReports 2.0.3 to 3.7.1 was discontinued at version 17.6.0. There is no Maven coordinate and no package-manager route of any kind: this product is distributed only as a ZIP from releases.aspose.com. The library has no native components, but it does reach AWT for text measurement, so run it headless with java.awt.headless=true and install the fonts your reports call for. No Office install and no PowerPoint automation.
Prefer not to host it yourself? The same work is available as a hosted REST API through Aspose.Slides Cloud.
4
Exporter classes in the library JAR: ASPptExporter, ASPptxExporter, ASPdfExporter and ASHtmlExporter. Each is an ordinary JRExporter, so it accepts the JasperPrint your existing export step already produces.
1 JAR
One self-contained library JAR of 27.7 MB holding 20,382 classes - 20,383 in the 5.5.2 to 6.4.0 build - with the presentation engine compiled in and not a single native .dll, .so or .dylib. JasperServer adds a 14-19 KB server JAR beside it.
3.7.2 to 6.16.0
JasperReports Library versions covered, shipped as three separate builds inside the same ZIP. Copy the one whose folder name covers your JasperReports. Support for JDK 1.4 and JasperReports 2.0.3 to 3.7.1 ended at version 17.6.0.
6
Export parameters this JAR adds beside the standard JasperReports ones: a licence path, a font substitution map, a font embedding mode, an alt-text flag, a default template deck and a per-report template map. The full reference ships as a javadoc JAR in the ZIP’s doc folder rather than on the web.
Five things people actually write
Each sample is the whole program, Java as shipped. Pick the job on the left.
import com.aspose.slides.jasperreports.ASPptxExporter;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.util.JRLoader;
public class ExportReportToPptx {
public static void main(String[] args) throws Exception {
JasperPrint jasperPrint =
(JasperPrint) JRLoader.loadObjectFromFile("QuarterlySales.jrprint");
ASPptxExporter exporter = new ASPptxExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "QuarterlySales.pptx");
exporter.exportReport();
}
}import com.aspose.slides.jasperreports.ASPptExporter;
import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import java.util.HashMap;
import java.util.Map;
public class FillAndExport {
public static void main(String[] args) throws Exception {
JasperReport report = JasperCompileManager.compileReport("QuarterlySales.jrxml");
Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put("Quarter", "Q3");
// Swap JREmptyDataSource for your own JRDataSource, or for a Connection taken
// from the container's DataSource, rather than hard-coding credentials here.
JasperPrint jasperPrint =
JasperFillManager.fillReport(report, parameters, new JREmptyDataSource());
ASPptExporter exporter = new ASPptExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "QuarterlySales.ppt");
exporter.exportReport();
}
}import com.aspose.slides.jasperreports.ASExporterParameters;
import com.aspose.slides.jasperreports.ASPptxExporter;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.util.JRLoader;
import java.util.HashMap;
import java.util.Map;
public class ExportOntoTemplate {
public static void main(String[] args) throws Exception {
JasperPrint jasperPrint =
(JasperPrint) JRLoader.loadObjectFromFile("QuarterlySales.jrprint");
// Keyed by report name, so QuarterlySales lands on finance.pptx and
// every other report falls back to corporate.pptx.
Map<String, String> perReport = new HashMap<String, String>();
perReport.put("QuarterlySales", "finance.pptx");
ASPptxExporter exporter = new ASPptxExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "QuarterlySales.pptx");
exporter.setParameter(
ASExporterParameters.PPT_TEMPLATE_PRESENTATION, "corporate.pptx");
exporter.setParameter(
ASExporterParameters.PPT_TEMPLATE_MAP_PRESENTATION, perReport);
exporter.exportReport();
}
}import com.aspose.slides.jasperreports.ASExporterParameters;
import com.aspose.slides.jasperreports.ASPptxExporter;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.util.JRLoader;
import java.util.HashMap;
import java.util.Map;
public class ExportWithFonts {
public static void main(String[] args) throws Exception {
JasperPrint jasperPrint =
(JasperPrint) JRLoader.loadObjectFromFile("QuarterlySales.jrprint");
// Map every logical font the report uses onto a real installed face.
Map<String, String> fontMap = new HashMap<String, String>();
fontMap.put("SansSerif", "Arial");
fontMap.put("Serif", "Times New Roman");
fontMap.put("Monospaced", "Courier New");
ASPptxExporter exporter = new ASPptxExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "QuarterlySales.pptx");
exporter.setParameter(ASExporterParameters.PPT_FONT_MAP, fontMap);
exporter.setParameter(ASExporterParameters.PPT_EMBED_FONTS, "OnlyUsed");
exporter.exportReport();
}
}import com.aspose.slides.jasperreports.ASExporterParameters;
import com.aspose.slides.jasperreports.ASPptxExporter;
import com.aspose.slides.jasperreports.License;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.util.JRLoader;
import java.io.FileInputStream;
import java.io.InputStream;
public class ApplyLicense {
public static void main(String[] args) throws Exception {
License license = new License();
InputStream stream =
new FileInputStream("Aspose.Slides.JasperReports.Developer.lic");
try {
license.setLicense(stream);
} finally {
stream.close();
}
System.out.println("Licensed: " + license.isLicensed());
JasperPrint jasperPrint =
(JasperPrint) JRLoader.loadObjectFromFile("QuarterlySales.jrprint");
ASPptxExporter exporter = new ASPptxExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "QuarterlySales.pptx");
// Equivalent to the License call above, scoped to this one export.
exporter.setParameter(
ASExporterParameters.PPT_LICENSE,
"Aspose.Slides.JasperReports.Developer.lic");
exporter.exportReport();
}
}What goes in, what comes out
Read in only
Other content read inplaced into a presentation rather than opened as one
- HTML
- raster image
Read onlyno writer in the API
- PPT95
Aspose.Slides
12 formats read and written — presentation files, proven by writing each one and reading it back.
- FODP
- ODP
- OTP
- POT
- POTM
- POTX
- PPS
- PPSM
- PPSX
- PPT
- PPTM
- PPTX
Written out only
Written onlyexport targets, not presentation files
- GIF
- HTML
- HTML5
- MD
- SWF
- TIFF
- XML
- XPS
Slide imagesrendered from a slide
- BMP
- EMF
- GIF
- JPEG
- PNG
- SVG
- TIFF
Capabilities, one line each
Everything below is what this JAR adds to JasperReports. It runs against the filled report rather than the design, so the report you already have is exported unchanged, and none of it asks for Microsoft PowerPoint to be installed.
As of 2026-08-18. 49 presentation SDKs and services surveyed. Next re-test: November 2026.
- ✓Reads OOXML presentations
- ✓Writes .pptx
- ✓Reads legacy binary PowerPoint
- ✓Writes legacy binary .ppt
- ✓Reads OpenDocument presentations
- ✓Writes .odp
- ✓Exports to PDF
- ✓Imports PDF into a presentation
- ✓Exports slides to raster images
- ✓Exports to HTML
- ✓Extracts text / Markdown / JSON
- ✓Runs entirely on the customer's own infrastructure
- ✓Offered as a hosted API the customer calls — through Aspose.Slides Cloud, a separate product
- ✓Runs without a Microsoft Office / LibreOffice installation
- ✓Works with no outbound network access
- ✓Create from nothing
- ✓Open, modify, save back
- ✓Preserve untouched content
- ✓Merge or append presentations
- ✓Slide thumbnails
- ✓Create charts
- ✓Published performance numbers — one published capacity figure, no benchmark suite
- ✓Air-gapped install and licensing
- ✓.NET · Java / JVM · Python · C / C++
- ✓JavaScript / TypeScript / Node · PHP
- ✓Android, SharePoint and JasperReports integrations
- ✓Language-agnostic REST/HTTP API — through Aspose.Slides Cloud, a separate product
- ✓Public API reference and guides
- ✓Runnable sample projects
- ✓Paid support and escalation
Runs where your code already runs
Where a build of this library is supported, and what each target is for.
JasperReports Library
The embedded case. Your Java code fills or loads a report, hands the JasperPrint to ASPptxExporter and calls exportReport(). Only the library JAR is needed on the classpath.
LIBRARY JAR · JAVA
JasperReports Server
The deployed case. Both JARs go in jasperserver/WEB-INF/lib, ASPptReportExporter is registered in viewReportBeans.xml, and PowerPoint appears in the export menu beside PDF and Excel. No report is edited and no application code is written.
SERVER JAR · SPRING XML
Java SE
Anywhere a JVM already runs a report: a batch fill, a scheduled job, a servlet container. Pure Java from JDK 1.6 upward with no native components. Run it headless, with java.awt.headless=true and the fonts your reports call for installed.
JDK 1.6 AND LATER
Aspose.Total for JasperReports
The same exporter licensed alongside the Words, Cells, PDF, Imaging, BarCode and CAD exporters, so one report design can reach Office, PDF, image and CAD targets under one agreement.
SUITE
This exporter has no presentation API of its own beyond the four exporter classes and their six parameters. If you need one, Aspose.Slides ships as a standalone library for Java, .NET, C++, Python, PHP, Node.js and Android.All high-code APIs →
Start with the trial, license when you ship
The trial is the full API. It applies an evaluation watermark when a presentation is opened or saved and caps text extraction at one slide, so you can test the formats you actually care about before you talk to anyone. A temporary licence lifts both for 30 days.
If you don't want a library
Aspose.Slides Cloud is a hosted REST API for loading, creating, editing and converting presentations.
No-code apps
In use
The product worked as advertised, the documentation was easy to follow, and the support forums were all the help we needed. The final solution that we deployed has exceeded our initial expectations by a great deal.
— BRUCE BRIEN · STRATASCOPE INC, USA