Aspose.PDF for Java turns HTML into a PDF through HtmlLoadOptions, and version 26.10 came out on 31 October 2026. Before real templates go through it, a few behaviors are worth checking, from how it treats page scripts and canvas charts to what evaluation mode does and which advisory records carry the product's name. Each section below reports what a run on Java 17 against 26.10, or a query to the advisory databases, produced.
We work at Iron Software, and the end of this article covers our library, IronPDF.
Page Scripts Do Not Run, So Canvas Charts Come Out Blank
CSS grid columns lay out correctly in 26.10, where 26.9 stacked them in one column, but scripts moved the opposite way. Text set with textContent and list items added with createElement each altered the page in separate 26.9 probes and did nothing in 26.10. No license was loaded for these probes, which leaves the licensed behavior untested. This bar chart shows what that means for a canvas.
import com.aspose.pdf.Document; import com.aspose.pdf.HtmlLoadOptions; import java.io.ByteArrayInputStream; import java.nio.charset.StandardCharsets; public class CanvasChartCheck { public static void main(String[] args) { // A bar chart drawn on a canvas, with a caption the same script fills in afterwards. String html = "<html><body style='font-family:Arial'><h1>Monthly orders</h1>" + "<canvas id='bars' width='320' height='140'></canvas><p id='caption'>Chart: not drawn</p>" + "<script>var ctx = document.getElementById('bars').getContext('2d');" + "[40, 90, 65].forEach(function (v, i) { ctx.fillStyle = '#1f3c78'; ctx.fillRect(20 + i * 90, 140 - v, 60, v); });" + "document.getElementById('caption').textContent = 'Chart: drawn';</script>" + "</body></html>"; try (Document document = new Document( new ByteArrayInputStream(html.getBytes(StandardCharsets.UTF_8)), new HtmlLoadOptions())) { document.save("canvas-chart.pdf"); } } } The page kept an empty space where the 320 by 140 canvas should be, with no bars in it, and the caption still read Chart: not drawn. The canvas calls are not the cause, because a probe with one textContent line and no canvas also left its paragraph as written. HtmlLoadOptions has no script setting, Aspose's HTML conversion guide lists none, and the 26.10 release notes, with 11 bug fixes and no added APIs, never mention scripts. Reports that embed JavaScript charts drawn on canvas lose them on this route, along with anything else a script fills in.
Fixed-Width Tables Widen the Page or Shrink the Text
HtmlPageLayoutOption.ScaleToPageWidth is documented as the option that scales wide content to the page instead of clipping it. This check applies it to an eight-column table fixed at 1200px.
import com.aspose.pdf.Document; import com.aspose.pdf.HtmlLoadOptions; import com.aspose.pdf.HtmlPageLayoutOption; import java.io.ByteArrayInputStream; import java.nio.charset.StandardCharsets; public class WideTableCheck { public static void main(String[] args) { // Eight fixed 150px columns make a 1200px table, about one and a half times the width of A4. StringBuilder row = new StringBuilder("<tr>"); for (int m = 1; m <= 8; m++) { row.append("<td style='width:150px;border:1px solid #999'>Month ").append(m).append("</td>"); } String html = "<html><body style='font-family:Arial'><h1>Usage by month</h1>" + "<table style='border-collapse:collapse;width:1200px'>" + row + "</tr></table></body></html>"; // The documented option for wide content, applied before the import. HtmlLoadOptions options = new HtmlLoadOptions(); options.setPageLayoutOption(HtmlPageLayoutOption.ScaleToPageWidth); try (Document document = new Document( new ByteArrayInputStream(html.getBytes(StandardCharsets.UTF_8)), options)) { System.out.println("Pages: " + document.getPages().size()); document.save("wide-table.pdf"); } } } It printed Pages: 1, and that one page was 595 by 842 points, with Month 8 ending at x = 474 and the table's right border at x = 505. The table was scaled down as documented, which 26.9 did not do, and the option applied to the whole page. Cell text, 12 pt by default, came out at 5.5 pt, and the default 24 pt heading at 11 pt. Without the option the text stayed at 12 pt and the page grew to 1,086 points to hold the table. A fixed-width block followed the same pattern, widening the page to 1,236 points by default and dropping to 4.7 pt text with the option.
Both cases cleared once the template stopped fixing pixel widths. Setting the table to width:100% with table-layout:fixed, with no pixel widths left on its cells, kept the page at 595 points and the text at 12 pt, and max-width:100% held the block inside the margins. Holding a template to a standard paper size took that edit in these runs.
Font Data, Installation and Evaluation Mode
A one-page account statement saved with default settings measured 211,791 bytes, and the same statement with setEmbedFonts(false) on the load options measured 34,101 bytes. isEmbedFonts() returns true on a new HtmlLoadOptions, and in the larger file the two embedded Arial font programs account for 177,231 bytes, while the statement's text uses only 39 distinct characters. Both files are evaluation output, and each also holds the embedded font behind the evaluation notice.
Turning embedding off is the library's own switch, and it leaves the fonts to the machine that opens the file. PDF/A requires embedded fonts, and the PDF/A conversion log Aspose writes lists every unembedded one as an error, so archived output has to keep its fonts. For services that store or mail statements in volume, every file carries that font data.
The library is not on Maven Central, where com.aspose:aspose-pdf returns 404. It comes from Aspose's own repository, which every build and any internal proxy has to list next to the Maven dependency.
<repositories> <repository> <id>aspose</id> <url>https://releases.aspose.com/java/repo/</url> </repository> </repositories> <dependencies> <dependency> <groupId>com.aspose</groupId> <artifactId>aspose-pdf</artifactId> <version>26.10</version> </dependency> </dependencies> Version 26.10 ships as one JAR whose POM lists no dependencies, and Aspose's install docs set JDK 1.8 as the floor. Aspose.PDF for Java is commercial, and a .lic file loaded with com.aspose.pdf.License lifts evaluation mode. Until then, the licensing documentation says each page carries a watermark and only four elements of any collection are processed, pages and form fields included.
Every PDF from these runs had the evaluation notice across its top edge, and building a document page by page in code threw IndexOutOfRangeException when the fifth page was added, citing the four-element evaluation limit. An HTML import with seven page breaks did produce seven pages. Aspose's 30-day temporary license removes both limits, and it is issued only to business email addresses.
Advisory Records Under the Aspose.PDF Name
Neither OSV nor GHSA held an entry for com.aspose:aspose-pdf on Maven when queried on 4 November 2026. NVD has four records that name Aspose.PDF or the Aspose PDF Exporter plugin, out of 11 for the keyword aspose.
- CVE-2019-5042, CVSS 3.1 score 8.8 (NIST), CVSS 3.0 score 8.8 (Cisco Talos, the CNA): Aspose.PDF 19.2 for C++, a use-after-free when a crafted PDF's FunctionType 0 elements are parsed
- CVE-2019-5066, score 9.8 (NIST and Talos): The same C++ release, a use-after-free while decoding LZW-compressed streams
- CVE-2019-5067, score 9.8 (NIST and Talos): The same C++ release, uninitialized memory access from invalid parent object pointers
- CVE-2015-20125, CVSS 3.1 score 7.5, CVSS 4.0 score 8.7 (VulnCheck, the CNA): A WordPress plugin called Aspose PDF Exporter, versions before 2.0, a path traversal published on 20 October 2026, with NVD analysis deferred
NVD scopes the three 2019 records to the C++ edition at 19.2 without a fixed release, and none of the four covers the Java library.
Aspose.PDF Behaviors and a Chromium-Based Option
Across these unlicensed checks, Aspose.PDF for Java 26.10 skipped page scripts, left canvas charts blank, widened the page for fixed-width tables or scaled their text to 5.5 pt, embedded about 177 KB of font data in a one-page file, capped code-built documents at four pages in evaluation mode and installed from a repository outside Maven Central.
For HTML that depends on page scripts or canvas charts, IronPDF for Java is another commercial option, since it renders HTML through Chromium. On 2026.11.3, a page with the canvas markup above plus a grid section drew the bars and changed the caption to Chart: drawn. Scripts run by default, and setEnableJavaScript on ChromePdfRenderOptions is the switch. Fixed-width content still has to change in the template there as well, because with UseFitToPageRendering(1400) the wide banner in that run printed at 5.2 pt. It installs from Maven Central as com.ironsoftware:ironpdf, where 2026.11.3 came out on 3 November 2026 as the 23rd monthly-numbered release since 2025.1.1.
To run your own scripted and chart templates through it, IronPDF has a free trial with a 30-day key.
Aspose.PDF is a trademark of its respective owner, we have no affiliation with Aspose, and the versions, advisory records and run results above come from Aspose's public documentation, NVD, OSV, the GitHub Advisory Database and our own test runs in November 2026.
Drafted with AI. Code run and claims checked by the Iron Software DevRel team against com.aspose:aspose-pdf 26.10 and com.ironsoftware:ironpdf 2026.11.3 on 4 November 2026.
