{"id":21535651,"url":"https://github.com/libreoffice/lots","last_synced_at":"2025-04-06T01:06:30.450Z","repository":{"id":24288174,"uuid":"27683112","full_name":"LibreOffice/lots","owner":"LibreOffice","description":"Letterhead, template, form, autotext, mail merge,... extension for LibreOffice","archived":false,"fork":false,"pushed_at":"2025-03-03T05:55:41.000Z","size":45333,"stargazers_count":55,"open_issues_count":33,"forks_count":35,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-03-30T00:05:52.033Z","etag":null,"topics":["java","libreoffice","libreoffice-api","libreoffice-extension","libreoffice-writer"],"latest_commit_sha":null,"homepage":"https://wollmux.org/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"eupl-1.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LibreOffice.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-12-07T20:11:29.000Z","updated_at":"2025-03-06T00:45:16.000Z","dependencies_parsed_at":"2024-06-22T01:46:49.237Z","dependency_job_id":"6c791edf-ec46-4917-ad20-0a419c093800","html_url":"https://github.com/LibreOffice/lots","commit_stats":null,"previous_names":["libreoffice/lots","libreoffice/wollmux"],"tags_count":77,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LibreOffice%2Flots","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LibreOffice%2Flots/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LibreOffice%2Flots/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LibreOffice%2Flots/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LibreOffice","download_url":"https://codeload.github.com/LibreOffice/lots/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247419859,"owners_count":20936012,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","libreoffice","libreoffice-api","libreoffice-extension","libreoffice-writer"],"created_at":"2024-11-24T03:15:52.492Z","updated_at":"2025-04-06T01:06:30.436Z","avatar_url":"https://github.com/LibreOffice.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LibreOffice Template System\n\n## Introduction\nLibreOffice Template System (formerly WollMux) is a LibreOffice extension with enhanced template, form, and autotext functionality. It can construct templates on the fly from multiple files (e.g. letterhead, footer, and body text) and will fill in personal and organizational data from various databases such as LDAP. An extra form GUI presents fields in an easily navigable manner and offers plausibility checks and computed values to ease filling in the form. Chainable printing functions allow various transformations during print and custom dialogs.\n\nThe LibreOffice Template System is licensed under the [European Union Public Licence (EUPL)](https://joinup.ec.europa.eu/licence/european-union-public-licence-version-11-or-later-eupl).\n\n**More information about the LibreOffice Template System can be found at our main page at [wollmux.org](https://wollmux.org/)**\n\n## How to build?\nLibreOffice Template System is separated into 3 modules:\n* wollmux: All main classes of the extension\n* [wollmux-interfaces](idl/): UNO API Interfaces\n* [unohelper](https://github.com/LibreOffice/UNOHelper): Support classes for using UNO\n\nThe following applications have to be installed to compile the LibreOffice Template System:\n* JAVA Development Kit (e.g. [Adoptium](https://adoptium.net)) (at least Java 11)\n* [Apache Maven](https://maven.apache.org/download.cgi)\n* [Git](http://git-scm.com/downloads/)\n* [LibreOffice SDK](https://api.libreoffice.org/docs/install.html)\n\nAfterwards the property `UNO_PATH` has to be set in the maven settings.\n* open `~\\.m2\\settings.xml`\n* add a profile\n\n```\n\u003cprofile\u003e\n  \u003cid\u003eUNO\u003c/id\u003e\n  \u003cactivation\u003e\n    \u003cactiveByDefault\u003etrue\u003c/activeByDefault\u003e\n  \u003c/activation\u003e\n  \u003cproperties\u003e\n    \u003cUNO_PATH\u003e/opt/libreoffice/program\u003c/UNO_PATH\u003e\n  \u003c/properties\u003e\n\u003c/profile\u003e\n```\n* `\u003cUNO_PATH\u003e` is the folder, where the LibreOffice executable is located (eg. /opt/libreoffice/program)\n\nBefore building the LibreOffice Template System, you need to install UNOHelper to your local maven repo (the prebuilt package is currently not available):\n\n```\ngit clone https://github.com/LibreOffice/UNOHelper.git\nmvn install\n```\n\nThen run the following commands to download and build the LibreOffice Template System:\n\n```\ngit clone https://github.com/LibreOffice/lots.git\nmvn clean package\n```\n\nThe compiled extension can be found at oxt/target/LOTS.oxt\n\n### Build errors\n* **There are files with header to update**: Some of the source files don't have a license header. The header can be updated with:\n\n```\nmvn license:update-file-header\n```\n\n## Debugging\n### External Debugging with Eclipse\nLOTS.oxt extension is not installed in LibreOffice, but is loaded from external by starting a debug session in eclipse. There exist an additional extension **LOTS_ButtonsOnly.oxt**, which only contains the toolbars and dialogs. This extension must be installed in LibreOffice. Therefore call\n\n```\nmvn -P ButtonsOnly generate-sources\n```\n\nand the extension is build and installed, if the program `unopkg` is available. Otherwise you have to manually install the extension, which can be found at oxt/target/LOTS_ButtonsOnly.oxt.\n\nActivate the maven profile \"development\" in Project \u003e Properties \u003e Maven \u003e Active Maven Profiles.\n\nConfigure a debug-configuration of type \"Java Application\" with main class **de.muenchen.allg.itd51.wollmux.DebugExternalWollMux**. Add a user defined library to the classpath. The library must contain these jars of LibreOffice which can be found at \u003cpath_to_LibreOffice\u003e/program/classes:\n* java_uno.jar\n* juh.jar\n* jurt.jar\n* ridl.jar\n* unoloader.jar\n* unoil.jar\n\nMake sure, that there is no running LibreOffice process before starting debugging.\n\nAdvantages:\n* Hot code replacement\n\nDisadvantages:\n* different startup behaviour\n\n### Remote Debugging\nIf you have a running instance, which you like to debug. You can connect to it by another Eclipse debug-configuration:\n* type: Remote java Application\n* connection type: Standard (Socket Attach)\n* connection properties: localhost, 8000\n\nThere are also some configuration changes for LibreOffice necessary. Go to **Tools** \u0026rarr; **Options...** \u0026rarr; **LibreOffice** \u0026rarr; **Advanced** \u0026rarr; **Parameters...** and add the following parameters:\n* `-Xdebug`\n* `-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n`\n\nIf suspend is set to `y`, LibreOffice waits until an external process connects before initializing.\n\n## Translations\n\n\u003ca href=\"https://translations.documentfoundation.org/engage/wollmux/\"\u003e\n\u003cimg src=\"https://translations.documentfoundation.org/widgets/wollmux/-/wollmux/multi-auto.svg\" alt=\"Translation status\" /\u003e\n\u003c/a\u003e\n\n[Translate the LibreOffice Template System](https://translations.documentfoundation.org/engage/wollmux)\n\nTo update pot files from source, run these commands:\n\n```bash\nxgettext --default-domain=wollmux --output=core/i18n/wollmux.pot --language=java --from-code=UTF-8 --keyword --keyword=m $(find . -name \"*.java\")\n```\n\nThis creates the `core/i18n/wollmux.pot` template file. It will be picked up by Weblate, and the po files will be updated accordingly.\n\nThe translations will be committed to this repository from time to time. The build system will then pick up the po files, and convert and bundle them with the LibreOffice Template System.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibreoffice%2Flots","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flibreoffice%2Flots","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibreoffice%2Flots/lists"}