Skip to content

Commit ed4579c

Browse files
JohnMcLearclaude
andauthored
docs(7538): soffice is now optional for docx/pdf (#7707)
Native DOCX export, PDF export, and DOCX import shipped in #7568 via pure-JS in-process converters -- LibreOffice/soffice is no longer required for those formats. Stale comments in settings.json.template and settings.json.docker still implied otherwise ("will only allow plain text and HTML import/exports"), and the docker docs told users to configure soffice for DOCX as well. Update them to match what's actually in core: - soffice present: handles all office formats (existing behavior) - soffice null: docx export, pdf export, docx import work natively; odt/doc/rtf export and pdf import still need soffice Touches: - settings.json.template (soffice + docxExport comments) - settings.json.docker (same) - doc/docker.md ("Office-format import/export" section) - doc/docker.adoc (same section + the SOFFICE table row, matching what doc/docker.md already says since #7568) No code changes, no behavior change -- documentation only. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent fd2f3ba commit ed4579c

4 files changed

Lines changed: 39 additions & 31 deletions

File tree

doc/docker.adoc

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -62,16 +62,17 @@ The variable value has to be a space separated, double quoted list of plugin nam
6262

6363
Some plugins will need personalized settings. Just refer to the previous section, and include them in your custom `settings.json.docker`.
6464

65-
==== Rebuilding including export functionality for DOC/DOCX/PDF/ODT
65+
==== Office-format import/export
6666

67-
If you want to be able to export your pads to DOC/DOCX/PDF/ODT files, you can
68-
install Libreoffice via setting the `INSTALL_SOFFICE` build variable to any
69-
value.
67+
DOCX export, PDF export, and DOCX import work out of the box — Etherpad
68+
ships pure-JS in-process converters and needs no extra dependencies for
69+
those three formats.
7070

71-
Also, you will need to configure the path to the libreoffice executable
72-
via setting the `soffice` property in `<BASEDIR>/settings.json.docker` to
73-
`/usr/bin/soffice` or via setting the environment variable `SOFFICE` to
74-
`/usr/bin/soffice`.
71+
DOC/ODT/RTF export and PDF import still require LibreOffice. To enable
72+
them, install LibreOffice via the `INSTALL_SOFFICE` build variable (any
73+
value), and either set the `soffice` property in
74+
`<BASEDIR>/settings.json.docker` to `/usr/bin/soffice` or set the
75+
`SOFFICE` environment variable to `/usr/bin/soffice`.
7576

7677
==== Examples
7778

@@ -452,7 +453,7 @@ For the editor container, you can also make it full width by adding `full-width-
452453
| `21600` (6 hours)
453454

454455
| `SOFFICE`
455-
| Absolute path to the soffice (LibreOffice) executable. Needed for advanced import/export of pads (docx, pdf, odt). Setting it to null disables LibreOffice and will only allow plain text and HTML import/exports.
456+
| Absolute path to the soffice (LibreOffice) executable. When configured, all advanced import/export formats use it (docx, pdf, odt, doc, rtf). Setting it to null falls back to in-process pure-JS converters: docx and pdf export, plus docx import, still work; odt/doc/rtf and pdf import remain unavailable.
456457
| `null`
457458

458459
| `ALLOW_UNKNOWN_FILE_ENDS`

doc/docker.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,17 @@ The variable value has to be a space separated, double quoted list of plugin nam
3535

3636
Some plugins will need personalized settings. Just refer to the previous section, and include them in your custom `settings.json.docker`.
3737

38-
### Rebuilding including export functionality for DOC/DOCX/PDF/ODT
38+
### Office-format import/export
3939

40-
If you want to be able to export your pads to DOC/DOCX/PDF/ODT files, you can
41-
install Libreoffice via setting the `INSTALL_SOFFICE` build variable to any
42-
value.
40+
DOCX export, PDF export, and DOCX import work out of the box — Etherpad
41+
ships pure-JS in-process converters and needs no extra dependencies for
42+
those three formats.
4343

44-
Also, you will need to configure the path to the libreoffice executable
45-
via setting the `soffice` property in `<BASEDIR>/settings.json.docker` to
46-
`/usr/bin/soffice` or via setting the environment variable `SOFFICE` to
47-
`/usr/bin/soffice`.
44+
DOC/ODT/RTF export and PDF import still require LibreOffice. To enable
45+
them, install LibreOffice via the `INSTALL_SOFFICE` build variable (any
46+
value), and either set the `soffice` property in
47+
`<BASEDIR>/settings.json.docker` to `/usr/bin/soffice` or set the
48+
`SOFFICE` environment variable to `/usr/bin/soffice`.
4849

4950
### Examples
5051

settings.json.docker

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -424,18 +424,21 @@
424424
"maxAge": "${MAX_AGE:21600}", // 60 * 60 * 6 = 6 hours
425425

426426
/*
427-
* This is the absolute path to the soffice executable.
427+
* Absolute path to the soffice (LibreOffice) executable.
428428
*
429-
* LibreOffice is used for advanced import/export of pads (docx, pdf, odt).
430-
* Setting it to null disables LibreOffice and will only allow plain text
431-
* and HTML import/exports.
429+
* When configured, soffice handles all advanced office-format
430+
* conversions (docx, pdf, odt, doc, rtf -- both directions). When
431+
* null, Etherpad falls back to pure-JS in-process converters
432+
* that handle docx export, pdf export, and docx import natively.
433+
* odt/doc/rtf export and pdf import still require soffice.
432434
*/
433435
"soffice": "${SOFFICE:null}",
434436

435437
/*
436-
* When true (the default), the "Microsoft Word" export button downloads a .docx file via
437-
* LibreOffice (requires "soffice" to be set). Set to false to revert to legacy .doc output
438-
* (which also requires "soffice").
438+
* When true (the default), the "Microsoft Word" export button
439+
* downloads a .docx file -- via soffice if it's configured, or via
440+
* the in-process html-to-docx converter otherwise. Set to false to
441+
* revert to legacy .doc output (.doc still requires soffice).
439442
*/
440443
"docxExport": "${DOCX_EXPORT:true}",
441444

settings.json.template

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -422,18 +422,21 @@
422422
"maxAge": 21600, // 60 * 60 * 6 = 6 hours
423423

424424
/*
425-
* This is the absolute path to the soffice executable.
425+
* Absolute path to the soffice (LibreOffice) executable.
426426
*
427-
* LibreOffice is used for advanced import/export of pads (docx, pdf, odt).
428-
* Setting it to null disables LibreOffice and will only allow plain text
429-
* and HTML import/exports.
427+
* When configured, soffice handles all advanced office-format
428+
* conversions (docx, pdf, odt, doc, rtf — both directions). When
429+
* null, Etherpad falls back to pure-JS in-process converters
430+
* that handle docx export, pdf export, and docx import natively.
431+
* odt/doc/rtf export and pdf import still require soffice.
430432
*/
431433
"soffice": null,
432434

433435
/*
434-
* When true (the default), the "Microsoft Word" export button downloads a .docx file via
435-
* LibreOffice (requires "soffice" to be set). Set to false to revert to legacy .doc output
436-
* (which also requires "soffice").
436+
* When true (the default), the "Microsoft Word" export button
437+
* downloads a .docx file -- via soffice if it's configured, or via
438+
* the in-process html-to-docx converter otherwise. Set to false to
439+
* revert to legacy .doc output (.doc still requires soffice).
437440
*/
438441
"docxExport": true,
439442

0 commit comments

Comments
 (0)