-
Notifications
You must be signed in to change notification settings - Fork 0
Home
- Overview
- How It Works
- System Requirements
- Installation
-
Using Libre Merger
- 5.1 Merging Documents
- 5.2 Sorting Files
- 5.3 Splitting Documents
- 5.4 Converting Documents
- 5.5 Watermarking
- Supported Formats
- Configuration
- Troubleshooting
- Security & Privacy
- Contributing
- Roadmap
- FAQ
- License
Libre Merger is a free, open-source, automated document merger built on top of the LibreOffice engine. It lets you combine any number of documents — across any format — into a single clean output file, entirely offline and without any account, subscription, or file size restriction.
Online tools like iLovePDF and Smallpdf impose hard limits: merge only 2–4 files at once, require subscriptions to unlock higher limits, and upload your documents to remote servers. Even AI assistants cap free users at 2–3 attached documents per conversation.
Libre Merger was built to eliminate all of that. It runs locally on your machine, uses the proven LibreOffice rendering stack, and places no artificial limit on how many documents you merge or how large they are.
- Merge unlimited documents of mixed formats in one operation
- Sort files before merging by name, date, or manual drag-and-drop order
- Split a single document into separate files by page range
- Convert any supported format to another (e.g. DOCX to PDF)
- Apply watermarks to merged output
- Do all of the above with zero internet connection
Libre Merger acts as a clean interface layer over the LibreOffice soffice CLI. When you add files and press Merge, the application:
- Detects each file's format using extension and MIME-type inspection
- Routes each file through the LibreOffice conversion engine to normalize it into a common intermediate format
- Combines the normalized documents preserving headings, styles, fonts, tables, and page layouts
- Exports the final merged file to your chosen output format and path
Because LibreOffice handles the actual document processing, Libre Merger inherits its full format compatibility and rendering accuracy without reinventing any conversion logic.
| Component | Minimum | Recommended |
|---|---|---|
| Operating System | Windows 10, Ubuntu 20.04, macOS 12 | Windows 11, Ubuntu 22.04, macOS 14 |
| LibreOffice | 7.0 | 24.x (latest stable) |
| Python | 3.8 | 3.11 or 3.12 |
| RAM | 2 GB | 4 GB or more |
| Disk Space | 500 MB (LibreOffice) + 50 MB (app) | 1 GB |
| Internet Connection | Not required | Not required |
To suggest a feature or vote on priorities, open a thread in GitHub Discussions.
Q: Does Libre Merger require an internet connection? No. It is entirely offline. No connection is needed to install, run, or use any feature.
Q: Is there a file size limit? No. Libre Merger places no artificial limit on file size or the number of files in a merge. Very large files may take longer depending on your system's available RAM.
Q: Can I merge files of different formats in one operation? Yes. You can add DOCX, PDF, PPTX, and TXT files simultaneously and merge them into a single output.
Q: Will the styles and formatting from my original documents be kept?
By default, yes. Set "preserve_styles": false in config.json if you want a unified style applied across all sections instead.
Q: Is this safe to use with confidential documents? Yes. Your files are never sent anywhere. All processing happens locally using LibreOffice on your machine.
Q: Does it work on Mac and Linux? Yes. Run it from source using Python on both platforms. Native installers for macOS and Linux are on the roadmap.
Q: Why does it need LibreOffice installed separately? Libre Merger uses LibreOffice as its processing engine rather than bundling a proprietary converter. This keeps the application lightweight, ensures high-quality output across all supported formats, and means you can audit exactly what is processing your documents.
Q: Can I use this in a commercial or enterprise environment? Yes. It is released under the MIT License, which permits free use in any context including commercial and enterprise.
Libre Merger is released under the MIT License.
You are free to use, copy, modify, merge, publish, distribute, sublicense, and sell copies of the software without restriction, provided the original copyright notice is retained.
Developed by Muhammad Uzair
For support: uzairrshahid@gmail.com · Discord — Codemo Teams · GitHub Issues
# Libre Merger — Official WikiFree · Open Source · Offline · LibreOffice Powered
- [Overview](#1-overview)
- [How It Works](#2-how-it-works)
- [System Requirements](#3-system-requirements)
- [Installation](#4-installation)
- 4.1 [Install LibreOffice](#41-install-libreoffice)
- 4.2 [Install Libre Merger](#42-install-libre-merger)
- 4.3 [Developer Build from Source](#43-developer-build-from-source)
- [Using Libre Merger](#5-using-libre-merger)
- 5.1 [Merging Documents](#51-merging-documents)
- 5.2 [Sorting Files](#52-sorting-files)
- 5.3 [Splitting Documents](#53-splitting-documents)
- 5.4 [Converting Documents](#54-converting-documents)
- 5.5 [Watermarking](#55-watermarking)
- [Supported Formats](#6-supported-formats)
- [Configuration](#7-configuration)
- [Troubleshooting](#8-troubleshooting)
- [Security & Privacy](#9-security--privacy)
- [Contributing](#10-contributing)
- [Roadmap](#11-roadmap)
- [FAQ](#12-faq)
- [License](#13-license)
Libre Merger is a free, open-source, automated document merger built on top of the LibreOffice engine. It lets you combine any number of documents — across any format — into a single clean output file, entirely offline and without any account, subscription, or file size restriction.
Online tools like iLovePDF and Smallpdf impose hard limits: merge only 2–4 files at once, require subscriptions to unlock higher limits, and upload your documents to remote servers. Even AI assistants cap free users at 2–3 attached documents per conversation.
Libre Merger was built to eliminate all of that. It runs locally on your machine, uses the proven LibreOffice rendering stack, and places no artificial limit on how many documents you merge or how large they are.
- Merge unlimited documents of mixed formats in one operation
- Sort files before merging by name, date, or manual drag-and-drop order
- Split a single document into separate files by page range
- Convert any supported format to another (e.g. DOCX to PDF)
- Apply watermarks to merged output
- Do all of the above with zero internet connection
Libre Merger acts as a clean interface layer over the LibreOffice soffice CLI. When you add files and press Merge, the application:
- Detects each file's format using extension and MIME-type inspection
- Routes each file through the LibreOffice conversion engine to normalize it into a common intermediate format
- Combines the normalized documents preserving headings, styles, fonts, tables, and page layouts
- Exports the final merged file to your chosen output format and path
Because LibreOffice handles the actual document processing, Libre Merger inherits its full format compatibility and rendering accuracy without reinventing any conversion logic.
| Component | Minimum | Recommended |
|---|---|---|
| Operating System | Windows 10, Ubuntu 20.04, macOS 12 | Windows 11, Ubuntu 22.04, macOS 14 |
| LibreOffice | 7.0 | 24.x (latest stable) |
| Python | 3.8 | 3.11 or 3.12 |
| RAM | 2 GB | 4 GB or more |
| Disk Space | 500 MB (LibreOffice) + 50 MB (app) | 1 GB |
| Internet Connection | Not required | Not required |
Libre Merger is entirely offline. No internet connection is needed at any point during installation or use.
Libre Merger requires LibreOffice to be installed on your system before the application can function.
Download LibreOffice (all platforms):
https://www.libreoffice.org/download/download/
Select the latest stable release for your operating system, run the installer, and follow the default prompts. No custom configuration is required during LibreOffice setup.
Verify the installation:
Open a terminal or command prompt and run:
libreoffice --versionExpected output example:
LibreOffice 24.2.3.2 (X86_64)
If the command is not recognized, see [Troubleshooting → LibreOffice Not Detected](#81-libreoffice-not-detected).
Windows:
- Go to the
[dist/](https://github.com/uzairshahidgithub/Libre-Merger/tree/main/dist)folder in the repository - Download
Setup.exe - Double-click
Setup.exeto launch the installer wizard - Follow the on-screen prompts
- The installer creates a Desktop shortcut and a Start Menu entry automatically
Windows SmartScreen Notice: Windows may display a security warning for unsigned open-source executables. Click More info → Run anyway to proceed. The full source code is publicly auditable on GitHub.
Linux:
git clone https://github.com/uzairshahidgithub/Libre-Merger.git
cd Libre-Merger
pip install -r requirements.txt
python main.pymacOS:
git clone https://github.com/uzairshahidgithub/Libre-Merger.git
cd Libre-Merger
pip3 install -r requirements.txt
python3 main.pyFollow these steps to build the application and generate a distributable installer from source.
Step 1 — Clone the repository:
git clone https://github.com/uzairshahidgithub/Libre-Merger.git
cd Libre-MergerStep 2 — Install Python dependencies:
pip install -r requirements.txtDependencies installed:
python-docx
PyPDF2
odfpy
click
rich
pyinstaller
Step 3 — Run in development mode (no build required):
python main.pyStep 4 — Build the installer:
python build.pyThe compiled installer is output to:
dist/
└── Setup.exe
This is the core feature of Libre Merger.
- Open Libre Merger from your Desktop or Start Menu
- Click Add Files or drag and drop documents directly into the window
- Add as many files as needed — there is no limit
- Arrange the file order (see [Sorting Files](#52-sorting-files))
- Select your output format from the dropdown (PDF, DOCX, ODT, etc.)
- Click Merge
- Choose a save location when prompted
The merged file is generated and saved to your chosen location. The entire process for a typical 5–10 file merge takes approximately 10–20 seconds depending on file sizes.
Before merging, you can control the order in which documents are combined.
Manual reordering: Drag any file up or down in the file list to set its position in the final merged output.
Automatic sorting options (available from the Sort menu):
| Sort Option | Behavior |
|---|---|
| Name (A → Z) | Alphabetical by filename |
| Name (Z → A) | Reverse alphabetical |
| Date Modified (Newest) | Most recently edited files first |
| Date Modified (Oldest) | Oldest edited files first |
| File Size (Largest) | Largest files first |
| File Size (Smallest) | Smallest files first |
To split a single document into separate files:
- Click Split in the toolbar
- Add the document you want to split
- Choose a split method:
- By page range — e.g. pages 1–5 become one file, 6–10 become another
- Every N pages — split into chunks of a fixed page count
- By bookmark — split at each heading or bookmark (DOCX and ODT only)
- Choose the output folder
- Click Split
Each section is saved as a separate file in the selected output folder.
To convert a document from one format to another without merging:
- Click Convert in the toolbar
- Add one or more files
- Select the target output format
- Choose the output folder
- Click Convert
Conversion is processed individually per file. All converted files are placed in the selected output folder.
To add a text watermark to a document or merged output:
- Complete your merge or open a document via Watermark in the toolbar
- Enter the watermark text (e.g.
CONFIDENTIAL,DRAFT,COPY) - Adjust settings:
- Font size
- Opacity (transparency level)
- Rotation angle
- Position (center, tile, corner)
- Click Apply Watermark
- Choose your save location
Watermarks are embedded into the document via the LibreOffice rendering engine and appear on every page of the output.
| Format | Extension |
|---|---|
| Word Document |
.docx .doc
|
| OpenDocument Text | .odt |
.pdf |
|
| Excel Spreadsheet |
.xlsx .xls .ods
|
| PowerPoint Presentation |
.pptx .ppt .odp
|
| Plain Text | .txt |
| Rich Text Format | .rtf |
| HTML Document |
.html .htm
|
| CSV (as table) | .csv |
| Format | Extension |
|---|---|
.pdf |
|
| Word Document | .docx |
| OpenDocument Text | .odt |
| Plain Text | .txt |
| Rich Text Format | .rtf |
| HTML | .html |
Mixed-format merging is fully supported. You can add a DOCX, a PDF, and a PPTX in the same merge operation and export the combined result as a single PDF.
Libre Merger stores its settings in config.json located in the application's root directory.
{
"libreoffice_path": "auto",
"output_dir": "./merged_output",
"preserve_styles": true,
"page_break_between": true,
"default_output_format": "pdf",
"temp_dir": "./temp",
"log_level": "info"
}| Key | Default | Description |
|---|---|---|
libreoffice_path |
"auto" |
Path to LibreOffice executable. Set manually if auto-detection fails. |
output_dir |
"./merged_output" |
Default folder where merged files are saved. |
preserve_styles |
true |
Keep original fonts, colors, and heading styles from source documents. |
page_break_between |
true |
Insert a page break between each merged document. |
default_output_format |
"pdf" |
Default export format shown in the format dropdown. |
temp_dir |
"./temp" |
Folder used for intermediate processing files. Cleaned up after each merge. |
log_level |
"info" |
Logging verbosity. Options: debug, info, warning, error. |
Windows:
{
"libreoffice_path": "C:\\Program Files\\LibreOffice\\program\\soffice.exe"
}Linux:
{
"libreoffice_path": "/usr/bin/libreoffice"
}macOS:
{
"libreoffice_path": "/Applications/LibreOffice.app/Contents/MacOS/soffice"
}Symptom: Application shows an error saying LibreOffice was not found or cannot be started.
Solution:
First, verify LibreOffice is installed:
libreoffice --versionIf the command fails, LibreOffice is not in your system PATH. Find the install path:
-
Windows:
C:\Program Files\LibreOffice\program\soffice.exe -
Linux: Run
which libreofficeorwhich soffice -
macOS:
/Applications/LibreOffice.app/Contents/MacOS/soffice
Then open config.json and set libreoffice_path to the full path found above.
Symptom: Windows Defender SmartScreen blocks Setup.exe from running.
Solution: Click More info on the SmartScreen dialog, then click Run anyway. This warning appears because the executable is not code-signed. The full source code is available for review on GitHub.
To avoid this, you can also run directly from source:
python main.pySymptom: Text in the merged PDF appears as boxes or substituted with a different font.
Solution: The fonts used in your source documents must be installed on your local system. LibreOffice uses system fonts for rendering. Install any missing fonts and re-run the merge.
Symptom: Merging 20+ files takes a very long time or the application becomes unresponsive.
Solution: Split your files into smaller groups of 8–10. Merge each group into an intermediate file, then do a final merge of the intermediate files. This reduces peak memory usage significantly.
Symptom: Different sections of the merged file have different fonts, heading sizes, or spacing.
Solution: Set "preserve_styles": false in config.json to strip all original styles and apply a single unified default style across the entire merged document. Alternatively, create a .ott template and apply it via the template option in the application.
Symptom: The app fails to write output files or access temp directories.
Solution: Run the application or terminal as Administrator. Right-click the shortcut → Run as administrator. Also ensure the output and temp directories are not inside a protected system folder.
Libre Merger is designed from the ground up with document privacy as a core principle.
Your documents are never transmitted anywhere. The application has no network functionality. No telemetry, analytics, crash reporting, or update checks make any outbound connection.
| Property | Detail |
|---|---|
| Internet access | None required. None used. |
| File transmission | Documents stay on your local machine at all times. |
| Cloud storage | Not used. Not integrated. |
| User accounts | No account, login, or registration of any kind. |
| Telemetry | None. |
| Source code | Fully open and auditable on GitHub. |
This makes Libre Merger suitable for confidential documents, legal files, internal enterprise use, and any context where document privacy is a hard requirement.
Libre Merger is a community project. Contributions of all kinds are welcome — bug fixes, new features, documentation improvements, and translations.
# Fork the repository on GitHub, then:
git clone https://github.com/YOUR_USERNAME/Libre-Merger.git
cd Libre-Merger
# Create a branch for your work
git checkout -b feature/your-feature-name
# Install dependencies
pip install -r requirements.txt
# Make your changes, then run tests
python -m pytest tests/
# Commit and push
git commit -m "Add: description of your change"
git push origin feature/your-feature-name
# Open a Pull Request on GitHub- Follow the existing code style and structure
- Include a test for any new feature or bug fix
- Write clear, descriptive commit messages
- Update the relevant Wiki page if your change affects documented behavior
- One feature or fix per Pull Request keeps reviews manageable
- Report bugs via [GitHub Issues](https://github.com/uzairshahidgithub/Libre-Merger/issues)
- Suggest features via [GitHub Discussions](https://github.com/uzairshahidgithub/Libre-Merger/discussions)
- Improve this Wiki
- Share the project with others who need it
The following features are planned for future releases. Version numbers are approximate targets.
| Feature | Status |
|---|---|
| Drag-and-drop reordering in file list | Planned |
| Page break control between merged documents | Planned |
| Header and footer injection between sections | Planned |
| Auto-generated Table of Contents | Planned |
| YAML-based custom merge rules | Planned |
Native macOS .dmg installer |
Planned |
Linux .deb and .rpm packages |
Planned |
| Docker image for server-side batch processing | Planned |
| Local web interface (Flask drag-and-drop UI) | Planned |
| Password-protected PDF output | Planned |
To suggest a feature or vote on priorities, open a thread in [GitHub Discussions](https://github.com/uzairshahidgithub/Libre-Merger/discussions).
Q: Does Libre Merger require an internet connection? No. It is entirely offline. No connection is needed to install, run, or use any feature.
Q: Is there a file size limit? No. Libre Merger places no artificial limit on file size or the number of files in a merge. Very large files may take longer depending on your system's available RAM.
Q: Can I merge files of different formats in one operation? Yes. You can add DOCX, PDF, PPTX, and TXT files simultaneously and merge them into a single output.
Q: Will the styles and formatting from my original documents be kept?
By default, yes. Set "preserve_styles": false in config.json if you want a unified style applied across all sections instead.
Q: Is this safe to use with confidential documents? Yes. Your files are never sent anywhere. All processing happens locally using LibreOffice on your machine.
Q: Does it work on Mac and Linux? Yes. Run it from source using Python on both platforms. Native installers for macOS and Linux are on the roadmap.
Q: Why does it need LibreOffice installed separately? Libre Merger uses LibreOffice as its processing engine rather than bundling a proprietary converter. This keeps the application lightweight, ensures high-quality output across all supported formats, and means you can audit exactly what is processing your documents.
Q: Can I use this in a commercial or enterprise environment? Yes. It is released under the MIT License, which permits free use in any context including commercial and enterprise.
Libre Merger is released under the MIT License.
You are free to use, copy, modify, merge, publish, distribute, sublicense, and sell copies of the software without restriction, provided the original copyright notice is retained.
Developed by [Muhammad Uzair](https://github.com/uzairshahidgithub)
For support: uzairrshahid@gmail.com · [Discord — Codemo Teams](https://linktr.ee/codemoteams) · [GitHub Issues](https://github.com/uzairshahidgithub/Libre-Merger/issues)