Skip to content

beenotung/soffice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

soffice

wrapper of the LibreOffice CLI - convert between office files, pdf, and html files

npm Package Version

Features

  • Convert between office files, pdf, and html
    • word documents (odt, doc, docx)
    • spreadsheets (ods, xls, xlsx)
    • presentation slides (odp, ppt, pptx)
  • Throw error if the conversion is not supported
    • Instead of continuing silently (which is the default behavior of soffice)
  • Typescript support

Installation

npm install soffice

You can also install soffice with pnpm, yarn, or slnpm

System Requirements

This package relay on the LibreOffice CLI soffice to convert files.

OS Installation Command
Ubuntu sudo apt-get install libreoffice-common libreoffice-writer fonts-noto fonts-noto-cjk
MacOS brew install libreoffice
Windows choco install libreoffice-fresh
Arch Linux sudo pacman -S libreoffice-fresh noto-fonts noto-fonts-cjk

Usage Example

import { convertToPDF } from 'soffice'

let inputFile = 'res/test.html'
let outputFile = await convertToPDF(inputFile)
console.log(outputFile) // "res/test.pdf"

Typescript Signature

Core Functions:

export function convertToPDF(input_file: string): Promise<string>

export function convertToHTML(input_file: string): Promise<string>

export function convertTo(options: {
  input_file: string
  convert_to: Format
}): Promise<string>

export type Format =
  | 'pdf'
  | 'html'
  | 'doc'
  | 'docx'
  | 'odt'
  | 'odp'
  | 'pptx'
  | 'ppt'
  | 'ods'
  | 'xlsx'
  | 'xls'

Helper Functions:

export function is_soffice_installed(): boolean

Error Class:

export class ChildProcessError extends Error {
  code: number | null
  stdout: string
  stderr: string
  constructor(
    message: string,
    code: number | null,
    stdout: string,
    stderr: string,
  )
}

License

This project is licensed with BSD-2-Clause

This is free, libre, and open-source software. It comes down to four essential freedoms [ref]:

  • The freedom to run the program as you wish, for any purpose
  • The freedom to study how the program works, and change it so it does your computing as you wish
  • The freedom to redistribute copies so you can help others
  • The freedom to distribute copies of your modified versions to others

About

wrapper of the LibreOffice CLI - convert between office files, pdf, and html files

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published