Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.0.x'
dotnet-version: |
6.0.x
9.0.x

- name: Restore dependencies
run: dotnet restore
Expand Down
36 changes: 35 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,40 @@

A minimal, zero-dependency .NET library for generating PDF documents from text and Excel (.xlsx) files.

## Project Scope

MiniPdf's purpose is to convert Excel (`.xlsx`) files to PDF and to create PDF documents programmatically from text, using only built-in .NET APIs.

### Supported Features

| Feature | Status |
|---|---|
| Text-to-PDF (positioned and auto-wrapped) | ✅ Supported |
| Excel-to-PDF (`.xlsx` to PDF) | ✅ Supported |
| Multiple worksheets (each sheet rendered in the PDF) | ✅ Supported |
| Basic cell formatting (font size, font color) | ✅ Supported |
| Page setup options (margins, page size, column padding, line spacing) | ✅ Supported |
| Input as file path or `Stream` | ✅ Supported |
| Output as file path, `Stream`, or `byte[]` | ✅ Supported |
| Zero external dependencies (built-in .NET APIs only) | ✅ Supported |
| Images in Excel cells | ❌ Not supported |
| Charts in Excel cells | ❌ Not supported |
| Cell borders and background fills | ❌ Not supported |
| Bold / italic / underline font styles | ❌ Not supported |
| Cell merges | ❌ Not supported |
| Formulas (rendered as their cached value) | ❌ Not supported |

### Target .NET Versions

| Framework | Supported |
|---|---|
| .NET 6.0 | ✅ |
| .NET 7.0 | ✅ |
| .NET 8.0 | ✅ |
| .NET 9.0 | ✅ |

> The library targets `net6.0` and `net9.0`. Any .NET version in that range (7, 8) is compatible via the `net6.0` target.

## Features

- **Text-to-PDF** — Create PDF documents with positioned or auto-wrapped text
Expand All @@ -13,7 +47,7 @@ A minimal, zero-dependency .NET library for generating PDF documents from text a

### Requirements

- .NET 9.0 or later
- .NET 6.0 or later

### Build

Expand Down
3 changes: 2 additions & 1 deletion src/MiniPdf/MiniPdf.csproj
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<TargetFrameworks>net6.0;net9.0</TargetFrameworks>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<LangVersion>latest</LangVersion>
<GenerateDocumentationFile>true</GenerateDocumentationFile>

<!-- NuGet Package Metadata -->
Expand Down
3 changes: 2 additions & 1 deletion tests/MiniPdf.Tests/MiniPdf.Tests.csproj
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<TargetFrameworks>net6.0;net9.0</TargetFrameworks>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<LangVersion>latest</LangVersion>
<IsPackable>false</IsPackable>
</PropertyGroup>

Expand Down