MiniPdf README

The project's README from github.com/mini-software/MiniPdf. As one markdown file: README.md.

Lightweight, fast and native Office-to-PDF libraries and command-line tools for Rust, .NET, Java, Python, JS, and Go.

NuGet crates.io Maven Central PyPI npm Go Reference GitHub stars DOI License

English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Italiano | Français

Online Demo · Releases · Report an issue

Your star or donation can make MiniPdf better

🤝 Looking for co-developers: Quick contribution

MiniPdf converts Office documents directly to PDF without Microsoft Office, LibreOffice, Adobe Acrobat, or COM automation at runtime.

Choose an implementation

Implementation Inputs Interfaces Maturity Documentation Visual results
.NET XLSX, DOCX, PPTX Library, CLI, Native AOT binaries Stable .NET guide XLSX
DOCX
PPTX
Rust XLSX, DOCX, PPTX Crate, CLI Stable Rust guide XLSX
DOCX
Java XLSX, DOCX, PPTX Library, CLI Experimental Java source XLSX
DOCX
Python DOCX Package, CLI Stable Python guide XLSX
DOCX
Node.js XLSX, DOCX, PPTX Native package Stable Node.js guide XLSX
DOCX
Go XLSX, DOCX, PPTX Package, CLI Experimental Go guide XLSX

Quick start

.NET

dotnet add package MiniPdf
using MiniSoftware;

MiniPdf.ConvertToPdf("report.docx", "report.pdf");

Prefer a command-line tool?

dotnet tool install --global MiniPdf.Cli
minipdf report.docx -o report.pdf

See the .NET guide for usage.

Rust

cargo add minipdf
cargo install minipdf-cli
minipdf::convert_to_pdf("report.docx", "report.pdf")?;
minipdf report.docx -o report.pdf

See the Rust guide for usage.

Java

Maven Central artifact

import io.github.minisoftware.minipdf.MiniPdf;
import java.nio.file.Files;
import java.nio.file.Path;

try {
	MiniPdf.registerFont(
			"Noto Sans",
			Files.readAllBytes(Path.of("fonts/NotoSans-Regular.ttf")));
	MiniPdf.convertToPdf(Path.of("report.docx"), Path.of("report.pdf"));
} finally {
	MiniPdf.clearRegisteredFonts();
}

See the Java guide for usage.


```python
import minipdf

minipdf.convert_to_pdf("report.docx", "report.pdf")

See the Python guide for usage.

Node.js

npm install minipdf
const minipdf = require('minipdf')

minipdf.convertToPdf('report.docx', 'report.pdf')

See the Node.js guide for usage.

Go

go get github.com/mini-software/MiniPdf/minipdf-go@latest
import minipdf "github.com/mini-software/MiniPdf/minipdf-go"

if err := minipdf.ConvertToPDF("report.docx", "report.pdf"); err != nil {
	panic(err)
}

See the Go guide for usage.

Why MiniPdf

MiniPdf targets practical document conversion, not complete Microsoft Office layout compatibility. Complex templates may render differently; use the online demo or benchmark reports to evaluate representative files.

Quick contribution

Open a clean fork or clone in any coding agent, then paste this prompt into the agent chat:

Run the minipdf-contribution skill.

Project resources

Resource Description
Online demo Try conversion in a browser
.NET documentation Stable library and CLI usage
Rust documentation Experimental crate and CLI usage
Java implementation Experimental Maven library and CLI source
Python documentation Experimental package and CLI usage
Node.js documentation Experimental native package usage
Go documentation Experimental package and CLI usage
.NET XLSX benchmark Visual comparison results for spreadsheets
.NET DOCX benchmark Visual comparison results for documents
Rust XLSX benchmark Rust spreadsheet visual comparison results
Rust DOCX benchmark Rust document visual comparison results
Rust benchmark workflow Generate fixture coverage and comparison reports
Community governance Decisions, roles, voting, and maintainer selection
Roadmap Project scope, implementation status, and current priorities
Security Private vulnerability reporting and supported versions
Contributing Development setup, tests, reviews, and provenance requirements
GitHub releases Packages and standalone binaries
Issues Bugs, compatibility reports, and feature requests

License

Apache License 2.0. Commercial use is welcome

MiniPdf (mini-software/MiniPdf)

Searching Database…

Что это такое?MiniPdf — это семейство лёгких и быстрых нативных библиотек и утилит командной строки, которые конвертируют документы Office (XLSX, DOCX, PPTX) в PDF. Есть реализации для .NET (C#), Rust, Java, Python, Node.js и Go.
Это библиотека, утилита командной строки или и то и другое?И то и другое. Каждая реализация распространяется как библиотечный пакет для своей экосистемы, а большинство — ещё и как утилита командной строки; версия для .NET дополнительно предлагает автономные бинарники Native AOT.
Как конвертировать свой первый документ?Установите пакет для своего языка и вызовите одну функцию — для Node.js: 'npm install minipdf', затем minipdf.convertToPdf('report.docx','report.pdf'); для Go: 'go get github.com/mini-software/MiniPdf/minipdf-go@latest'.
Для работы нужен установленный Microsoft Office?Никакой Office не нужен — MiniPdf конвертирует документы напрямую, без Microsoft Office, LibreOffice, Adobe Acrobat и COM-автоматизации во время работы.
Какие форматы Office умеет конвертировать каждая реализация?Поддержка на входе различается: .NET работает с XLSX, DOCX и PPTX; Rust и Java — с XLSX и DOCX; пакет для Python пока конвертирует только DOCX — так что сверяйте свой формат с выбранной реализацией.
Можно ли использовать её в коммерческом ПО?Да — это Apache License 2.0, и коммерческое использование прямо приветствуется.
Какие языковые порты стабильны, а какие ещё экспериментальные?Реализации для .NET, Rust, Python и Node.js помечены как стабильные, а Java и Go — экспериментальные; порт для Go сейчас публикует проверенные результаты визуального сравнения только для XLSX.
Можно попробовать без установки чего-либо?Да, у проекта есть ссылка на онлайн-демо, где можно проверить конвертацию прямо в браузере.
Как проверить, насколько точно PDF повторяет оригинал?В репозитории есть страницы с бенчмарками и результатами визуального сравнения конвертации XLSX и DOCX для .NET и Rust, так что можно посмотреть готовый результат, прежде чем принимать решение.
Size
1.9 GB
Stars
504
Age
7mo
Commits · 90 Days