libreoffice-file-converter
v3.1.1
Published
Simple NodeJS wrapper for libreoffice CLI for converting office documents to different formats
Downloads
1,607
Maintainers
Readme
libreoffice-file-converter
Simple NodeJS wrapper for libreoffice CLI for converting office documents to different formats.
Dependency
Please install libreoffice in /Applications (Mac), with your favorite package manager (Linux), or with the msi (Windows).
How to use
Constructor
LibreOfficeFileConverter
constructor accepts optional configuration object.
options.binaryPaths
Array of paths to LibreOffice binary executables.
options.childProcessOptions
child_process.ExecFileOptions
object. Can be used to configure such things as timeout, etc.
options.debug
Enables debug output for LibreOffice command execution.
options.tmpOptions
tmp.DirOptions
object. Can be used to configure behavior of tmp
package, which is used to create temporary folders for LibreOffice data.
LibreOfficeFileConverter.convert
Converts provided file, Buffer
or Readable
stream to the request format.
input
Input type: buffer
| file
| stream
.
Defines corresponding field for input: buffer
| inputPath
| stream
.
output
Output type: buffer
| file
| stream
.
Requires outputPath
field to be present when set to file
.
Defines return type: Promise<Buffer>
| Promise<void>
| Promise<Readable>
.
format
Conversion format.
inputFilter
LibreOffice input filter, see docs.
outputFilter
LibreOffice output filter, see docs.
filter
LibreOffice output filter, see docs.
Deprecated, use outputFilter
instead.
options
Overrides for LibreOfficeFileConverter instance options.
Examples
From Buffer
to Buffer
.
import { readFile } from 'fs/promises';
import { join } from 'path';
import { LibreOfficeFileConverter } from 'libreoffice-file-converter';
const inputPath = join(__dirname, './resources/example.doc');
const run = async () => {
const libreOfficeFileConverter = new LibreOfficeFileConverter({
childProcessOptions: {
timeout: 60 * 1000,
},
});
const inputBuffer = await readFile(inputPath);
const outputBuffer = await libreOfficeFileConverter.convert({
buffer: inputBuffer,
format: 'pdf',
input: 'buffer',
output: 'buffer'
})
};
run();
From Buffer
to file.
import { readFile } from 'fs/promises';
import { join } from 'path';
import { LibreOfficeFileConverter } from 'libreoffice-file-converter';
const inputPath = join(__dirname, './resources/example.doc');
const outputPath = join(__dirname, './resources/output/result.pdf');
const run = async () => {
const libreOfficeFileConverter = new LibreOfficeFileConverter({
childProcessOptions: {
timeout: 60 * 1000,
},
});
const inputBuffer = await readFile(inputPath);
await libreOfficeFileConverter.convert({
buffer: inputBuffer,
format: 'pdf',
input: 'buffer',
output: 'fille',
outputPath,
})
};
run();
From Buffer
to Readable
stream.
import { readFile } from 'fs/promises';
import { join } from 'path';
import { LibreOfficeFileConverter } from 'libreoffice-file-converter';
const inputPath = join(__dirname, './resources/example.doc');
const run = async () => {
const libreOfficeFileConverter = new LibreOfficeFileConverter({
childProcessOptions: {
timeout: 60 * 1000,
},
});
const inputBuffer = await readFile(inputPath);
const outputStream = await libreOfficeFileConverter.convert({
buffer: inputBuffer,
format: 'pdf',
input: 'buffer',
output: 'stream',
})
};
run();
From file to Buffer
.
import { readFile } from 'fs/promises';
import { join } from 'path';
import { LibreOfficeFileConverter } from 'libreoffice-file-converter';
const inputPath = join(__dirname, './resources/example.doc');
const run = async () => {
const libreOfficeFileConverter = new LibreOfficeFileConverter({
childProcessOptions: {
timeout: 60 * 1000,
},
});
const outputBuffer = await libreOfficeFileConverter.convert({
format: 'pdf',
input: 'file',
inputPath,
output: 'buffer',
})
};
run();
From file to file.
import { readFile } from 'fs/promises';
import { join } from 'path';
import { LibreOfficeFileConverter } from 'libreoffice-file-converter';
const inputPath = join(__dirname, './resources/example.doc');
const outputPath = join(__dirname, './resources/output/result.pdf');
const run = async () => {
const libreOfficeFileConverter = new LibreOfficeFileConverter({
childProcessOptions: {
timeout: 60 * 1000,
},
});
await libreOfficeFileConverter.convert({
format: 'pdf',
input: 'file',
inputPath,
output: 'file',
outputPath,
})
};
run();
From file to Readable
stream.
import { readFile } from 'fs/promises';
import { join } from 'path';
import { LibreOfficeFileConverter } from 'libreoffice-file-converter';
const inputPath = join(__dirname, './resources/example.doc');
const run = async () => {
const libreOfficeFileConverter = new LibreOfficeFileConverter({
childProcessOptions: {
timeout: 60 * 1000,
},
});
const outputStream = await libreOfficeFileConverter.convert({
format: 'pdf',
input: 'file',
inputPath,
output: 'stream',
})
};
run();
From Readable
stream to Buffer
.
import { createReadStream } from 'fs';
import { join } from 'path';
import { LibreOfficeFileConverter } from 'libreoffice-file-converter';
const inputPath = join(__dirname, './resources/example.doc');
const run = async () => {
const libreOfficeFileConverter = new LibreOfficeFileConverter({
childProcessOptions: {
timeout: 60 * 1000,
},
});
const inputStream = createReadStream(inputPath);
const outputBuffer = await libreOfficeFileConverter.convert({
format: 'pdf',
input: 'stream',
output: 'buffer',
stream: inputStream,
})
};
run();
From Readable
stream to file.
import { createReadStream } from 'fs';
import { join } from 'path';
import { LibreOfficeFileConverter } from 'libreoffice-file-converter';
const inputPath = join(__dirname, './resources/example.doc');
const outputPath = join(__dirname, './resources/output/result.pdf');
const run = async () => {
const libreOfficeFileConverter = new LibreOfficeFileConverter({
childProcessOptions: {
timeout: 60 * 1000,
},
});
const inputStream = createReadStream(inputPath);
await libreOfficeFileConverter.convert({
format: 'pdf',
input: 'stream',
output: 'file',
outputPath,
stream: inputStream,
})
};
run();
From Readable
stream to Readable
stream.
import { createReadStream } from 'fs';
import { join } from 'path';
import { LibreOfficeFileConverter } from 'libreoffice-file-converter';
const inputPath = join(__dirname, './resources/example.doc');
const run = async () => {
const libreOfficeFileConverter = new LibreOfficeFileConverter({
childProcessOptions: {
timeout: 60 * 1000,
},
});
const inputStream = createReadStream(inputPath);
const outputStream = await libreOfficeFileConverter.convert({
format: 'pdf',
input: 'stream',
output: 'stream',
stream: inputStream,
})
};
run();