unstale

npm / officeparser

officeparser

What changed in officeparser 8, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-28.

22 breaking43 new APIs and options1 performance10 behavior and defaults12 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.9 on npm

officeparser 888 changes

Breaking changes 22

  • Unreadable fonts now fail the conversion with PDF_GENERATION_FAILED and name the font option, rather than ending the process or embedding a font viewers cannot draw.

    8.4.0release notes

  • Type3, GlyphLessFont and generic families are no longer written as typefaces.

    8.4.0release notes

  • RTF output starts each page and slide on a page of its own.

    8.4.0release notes

  • Section starts in Word, ODT, and RTF now produce break nodes by default, preserving section page setup regardless of includeBreakNodes.

    8.3.0release notes

  • The default delimiter is now 'auto', so it is read from the file.

    8.3.0release notes

  • Word, ODT, and RTF footers are now separate footer nodes, one per part, rather than paragraphs collected in auxiliary.footers.

    8.3.0release notes

  • The default paper format is now 'auto', using the document's page setup where available and otherwise A4 with inch margins; pass format: 'A4' and a margin for the old output.

    8.3.0release notes

  • Word, ODT, and RTF headers are now separate header nodes, one per part, rather than paragraphs collected in auxiliary.headers.

    8.3.0release notes

  • Nested Word list levels now count afresh under each parent.

    8.3.0release notes

  • PDF output now omits hidden sheet content and speaker notes by default.

    8.3.0release notes

  • Turned PDF text is read whole with its angle, and look-alike CJK ideographs are read as unified ones.

    8.3.0release notes

  • RTF symbol words such as \emdash and \bullet are now read as their characters.

    8.3.0release notes

  • A split table's header row now starts every chunk in chunked output.

    8.3.0release notes

  • Disables remote asset requests; parses needing CDN-hosted PDF.js worker or Tesseract files reject with REMOTE_ASSET_BLOCKED.

    8.2.0release notes

  • Templates are subject to the XML element limit during parsing and reject when their elements, tags, and tag tokens exceed it.

    8.2.0release notes

  • Markdown and HTML embed widths and heights must be CSS lengths, and invalid dimensions are not read.

    8.2.0release notes

  • Cells formatted as dates, times, or durations now read as ISO text instead of Excel serial numbers.

    8.2.0release notes

  • Markdown table headers are emitted as table headers without added bold; authored bold is preserved.

    8.2.0release notes

  • Supplying some OCR options now leaves defaults in place for the remaining options instead of treating the supplied object as complete.

    8.2.0release notes

  • A new error reports when a parse would load remote assets while remote assets are disallowed.

    8.2.0release notes

  • A template field whose value is a list, object, or function now rejects instead of rendering its string representation.

    8.2.0release notes

  • Invalid video IDs are not read, and a YouTube directive with an invalid ID stays text.

    8.2.0release notes

New APIs and options 43

  • Each PDF text run exposes its baseline, which PPTX and ODP output use to align page lines.

    8.4.0release notes

  • PDF warnings carry the page number for issues such as failed picture extraction, failed page loading, or an exhausted budget.

    8.4.0release notes

  • Sets the image-pixel limit beyond which a PDF picture is left out and reported with its page.

    8.4.0release notes

  • PDF text drawn invisibly is marked with TextFormatting.invisible; PPTX and ODP preserve its invisibility, while other outputs write it as text.

    8.4.0release notes

  • PPTX and ODP shapes now expose their placement as bounds.

    8.3.0release notes

  • Spreadsheet number cells now record the text displayed by their number format.

    8.3.0release notes

  • Text frames and text boxes in ODT, Word, and RTF are represented as drawing nodes with placement information.

    8.3.0release notes

  • Reads and writes list markers across DOCX, ODT, RTF, HTML, and PDF.

    8.3.0release notes

  • Adds ODP writing via ast.to('odp'), producing decks from presentations, PDFs, or other documents.

    8.3.0release notes

  • Adds configuration for ODP output.

    8.3.0release notes

  • Adds ODS writing via ast.to('ods'), producing workbooks from spreadsheets or other documents.

    8.3.0release notes

  • Adds configuration for ODS output.

    8.3.0release notes

  • Adds page setup metadata for page size, margins, header and footer distances, columns, and page numbering.

    8.3.0release notes

  • Reads and writes paragraph spacing across DOCX, ODT, RTF, HTML, and PDF.

    8.3.0release notes

  • Adds pdfConfig.printHidden to include hidden sheet content in PDF output.

    8.3.0release notes

  • Adds pdfConfig.printSpeakerNotes to include speaker notes in PDF output.

    8.3.0release notes

  • Adds PPTX writing via ast.to('pptx'), producing decks from presentations, PDFs, or other documents.

    8.3.0release notes

  • Adds configuration for PPTX output.

    8.3.0release notes

  • Adds ShapeMetadata for the appearance of PPTX and ODP shapes.

    8.3.0release notes

  • Adds the CLI output format option for writing ODP decks.

    8.3.0release notes

  • Adds the CLI output format option for writing ODS workbooks.

    8.3.0release notes

  • Adds the CLI output format option for writing PPTX decks.

    8.3.0release notes

  • Adds the CLI output format option for writing XLSX workbooks.

    8.3.0release notes

  • Adds XLSX writing via ast.to('xlsx'), producing workbooks from spreadsheets or other documents.

    8.3.0release notes

  • Adds configuration for XLSX output.

    8.3.0release notes

  • Sets the date names used by template formatting.

    8.2.0release notes

  • Sets a bound on how much content template loops can add.

    8.2.0release notes

  • Template fields support Word number and date picture formats, including currency, date patterns, and number sections.

    8.2.0release notes

  • Adds custom template filters.

    8.2.0release notes

  • Identifies whether each heading's level was decided by tags or font size.

    8.2.0release notes

  • Loop context exposes index, number, first, last, and length for the current pass.

    8.2.0release notes

  • Sets how often onPassword is asked.

    8.2.0release notes

  • Sets the number separators used by template formatting.

    8.2.0release notes

  • Controls Tesseract's language-data cache.

    8.2.0release notes

  • Templates can conditionally keep or drop content and repeat content with for-loops over paragraphs and table rows.

    8.2.0release notes

  • This optional peer is needed to embed fonts in the native PDF engine.

    8.2.0release notes

  • Accepts fallback TTF and OTF files for native PDF rendering.

    8.2.0release notes

  • Accepts TTF and OTF files for native PDF rendering, with characters drawn using the first font that contains them.

    8.2.0release notes

  • Enables bookmark outlines in the native PDF engine.

    8.2.0release notes

  • The tags value detects only headings tagged in a PDF's structure tree.

    8.2.0release notes

  • A new error identifies invalid template syntax, including blocks with missing closing tags.

    8.2.0release notes

  • Templates can use the upper filter to uppercase a field.

    8.2.0release notes

  • Sets the UTC offset used by template formatting.

    8.2.0release notes

Performance 1

  • HTML under deeply nested wrappers is now read in linear time.

    8.2.0release notes

Behavior and default changes 10

  • pdf.js is given decoders for JBIG2, CCITT fax and JPEG 2000 pictures.

    8.4.0release notes

  • DOCX, ODT and RTF output preserve each PDF page's size, and LaTeX output preserves its orientation by starting sections for pages with different sizes or orientations.

    8.4.0release notes

  • A PDF picture that cannot be decoded or exceeds the image-pixel limit is reported instead of being silently left out.

    8.4.0release notes

  • The native PDF engine accepts WOFF and WOFF2 files in this fallback-font configuration.

    8.4.0release notes

  • The native PDF engine accepts WOFF and WOFF2 files in this font configuration.

    8.4.0release notes

  • HTML now reads a page's own stylesheet and the colour in a background shorthand.

    8.3.0release notes

  • The native PDF engine now draws a line or page break inside a paragraph.

    8.3.0release notes

  • The native PDF engine now draws links, alignment, indents, varied text styles, footnotes, shaded cells, content-sized columns, pictures, charts, and Indic scripts.

    8.3.0release notes

  • Native PDF engine warnings now include details.reason; undrawable text is reported once at conversion end with a count and sample.

    8.2.0release notes

  • HTML output loads Chart.js only when a page draws a chart; without a chart script, charts are written as value tables with a warning.

    8.2.0release notes

Fixes and other changes 12

  • PDF text extraction reads Indic scripts and Thai whole when PDFs place each letter cluster apart.

    8.4.0release notes

  • Text in fonts that a PDF does not embed is now read using pdf.js CMaps.

    8.4.0release notes

  • An ODT section with its own columns is set in those columns without includeBreakNodes.

    8.4.0release notes

  • An empty glyph is skipped so the next font can draw the character, or the character is reported lost instead of being drawn blank.

    8.4.0release notes

  • PDF table extraction better handles tagged rows with omitted cells, close-set cells, two-line headers, merged cells between rows, and labels with values.

    8.4.0release notes

  • In the browser, pdfCMapUrl specifies where the CMaps come from.

    8.4.0release notes

  • In the browser, pdfDecoderUrl specifies where the image decoders come from.

    8.4.0release notes

  • PPTX and ODP output write invisible PDF text fully transparent, and both PDF engines draw it unseen.

    8.4.0release notes

  • PPTX text using a theme colour now has its colour.

    8.3.0release notes

  • Word justified paragraphs are now read as justified.

    8.3.0release notes

  • Invalid limits that are not numbers greater than or equal to zero are reported and replaced with their defaults.

    8.2.0release notes

  • Reports misspelled render options and unsupported onMissing values, using keep.

    8.2.0release notes