OfficeIMO.Excel.Pdf
3.4.2
Prefix Reserved
See the version list below for details.
dotnet add package OfficeIMO.Excel.Pdf --version 3.4.2
NuGet\Install-Package OfficeIMO.Excel.Pdf -Version 3.4.2
<PackageReference Include="OfficeIMO.Excel.Pdf" Version="3.4.2" />
<PackageVersion Include="OfficeIMO.Excel.Pdf" Version="3.4.2" />
<PackageReference Include="OfficeIMO.Excel.Pdf" />
paket add OfficeIMO.Excel.Pdf --version 3.4.2
#r "nuget: OfficeIMO.Excel.Pdf, 3.4.2"
#:package OfficeIMO.Excel.Pdf@3.4.2
#addin nuget:?package=OfficeIMO.Excel.Pdf&version=3.4.2
#tool nuget:?package=OfficeIMO.Excel.Pdf&version=3.4.2
OfficeIMO.Excel.Pdf - Excel to PDF export
OfficeIMO.Excel.Pdf exports OfficeIMO.Excel workbooks to PDF through the first-party OfficeIMO.Pdf engine. It also imports logical PDF tables into editable Excel worksheets.
Install
dotnet add package OfficeIMO.Excel.Pdf
Quick start
using OfficeIMO.Excel;
using OfficeIMO.Excel.Pdf;
using var workbook = ExcelDocument.Load("report.xlsx");
workbook.SaveAsPdf("report.pdf");
Examples
Export selected sheets with worksheet print settings
using OfficeIMO.Excel;
using OfficeIMO.Excel.Pdf;
using OfficeIMO.Pdf;
using var workbook = ExcelDocument.Load("monthly-report.xlsx");
var options = new ExcelToPdfOptions {
SheetNames = new[] { "Summary", "Revenue", "Costs" },
UseWorksheetPrintAreas = true,
UseWorksheetPageSetup = true,
UseWorksheetHeadersAndFooters = true,
UseWorksheetPageBreaks = true,
PageSize = PageSizes.A4.Landscape(),
Margins = PageMargins.UniformCentimeters(1.2)
};
workbook.SaveAsPdf("monthly-report.pdf", options);
Export a workbook to bytes or a stream
using OfficeIMO.Excel;
using OfficeIMO.Excel.Pdf;
using var workbook = ExcelDocument.Load("statement.xlsx");
byte[] pdfBytes = workbook.ToPdfBytes();
using var stream = File.Create("statement.pdf");
workbook.SaveAsPdf(stream);
Surface mapping warnings
using OfficeIMO.Excel;
using OfficeIMO.Excel.Pdf;
using OfficeIMO.Pdf;
using var workbook = ExcelDocument.Load("dashboard.xlsx");
var options = new ExcelToPdfOptions {
IncludeSheetHeadings = true,
RespectWorksheetHiddenRowsAndColumns = true,
UseWorksheetCharts = true
}.UseProfile(PdfExportProfile.Faithful);
options.TextFallbacks = PdfTextFallbackFeatures.Default;
options.ResourcePolicy = PdfResourcePolicy.CreateTrustedHost();
var result = workbook.SaveAsPdfResult("dashboard.pdf", options);
if (!result.Succeeded) {
foreach (string diagnostic in result.Diagnostics) {
Console.WriteLine(diagnostic);
}
}
foreach (var warning in result.Warnings) {
Console.WriteLine($"{warning.Source}: {warning.Message}");
}
result.Report.RequireNoErrorWarnings();
Import structured PDF data
using OfficeIMO.Excel.Pdf;
using OfficeIMO.Pdf;
PdfDocument pdf = PdfDocument.Load("statement.pdf");
PdfExcelTableImportReport report = pdf.SaveTablesAsExcel("statement-tables.xlsx").RequireSuccess().Report!;
foreach (var table in report.Entries) {
Console.WriteLine($"{table.SheetName}: page {table.PageNumber}");
}
Console.WriteLine($"Non-table page content detected: {report.HasOmittedPageContent}");
Import only selected PDF pages
using OfficeIMO.Excel.Pdf;
using OfficeIMO.Pdf;
PdfDocument pdf = PdfDocument.Load("bank-statement.pdf");
PdfExcelTableImportReport report = pdf.SaveTablesAsExcel(
"bank-statement-q1.xlsx",
new PdfTablesToExcelOptions {
ReadOptions = new PdfReadOptions {
PageSelection = PdfPageSelection.Parse("1-3")
},
MaxRows = 250
}).RequireSuccess().Report!;
Console.WriteLine($"Imported {report.Entries.Count} table(s).");
report.RequireNoLoss(); // checks table-row truncation, not unrelated page content
ReadOptions also exposes the canonical Fast/Structured profile and semantic work limits for large or deliberately bounded imports. It is ignored when the source is already a PdfDocumentReadResult.
Compatible table segments continue across adjacent pages by default. The shared PDF table analysis classifies Boolean, percentage, date-time, time-only, numeric, and text columns with confidence; the import options decide which detected families become typed Excel cells.
What it maps
- Workbook sheets, selected sheet lists, visible used ranges, print areas, page setup, margins, orientation, and worksheet page breaks.
- Repeated print-title rows, headers, footers, page/date/time/sheet/workbook tokens, and supported header/footer images.
- Cell display values, common number formats, fills, font emphasis, alignment, borders, merged cells, links, row heights, column widths, conditional fills/data bars/icons, and table layout primitives.
- Supported worksheet images and common chart snapshots through shared OfficeIMO drawing primitives.
- Deterministic profile presets through
ExcelToPdfOptions.UseProfile(...). Applying a profile always resets the complete profile-owned option set, so reusing an options instance is history-independent. - Shared
TextFallbacksandResourcePolicycontrols for Unicode, symbols, emoji, and host-resource trust. The balanced default uses installed fonts while denying arbitrary local and remote reads; portable deterministic mode is explicit. - Source-faithful zero-options output: worksheet-name headings are opt-in through
IncludeSheetHeadings. - Per-operation conversion warnings through
PdfDocumentConversionResult.ReportorPdfSaveResult.Report.
Current limits
- Workbook content is read through
OfficeIMO.Excel; layout and PDF writing useOfficeIMO.Pdf. - PDF import is structured-data recovery. It reconstructs detected tables as worksheets;
SourceScopeandHasOmittedPageContentreport text, source vector graphics, images, links, forms, annotations, or actions that are not represented by those tables. - The current reverse route recovers detected tables and structured values; arbitrary PDF page art is reported rather than presented as an editable workbook. Open recovery work is tracked in the repository roadmap.
Related packages
- OfficeIMO.Excel - Excel workbook model.
- OfficeIMO.Pdf - PDF engine.
- OfficeIMO.Html.Pdf - HTML/PDF bridge.
Targets and license
- Targets:
netstandard2.0,net8.0,net10.0. - License: MIT.
- Repository: EvotecIT/OfficeIMO
Dependency footprint
- External: None beyond the dependencies of its OfficeIMO format packages; no native or commercial PDF renderer.
- OfficeIMO:
OfficeIMO.Excel,OfficeIMO.Pdf, andOfficeIMO.Coreown layout mapping, rendering, table recovery, and reports.
See the complete OfficeIMO package map for related formats and conversion paths.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 is compatible. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.7.2
- OfficeIMO.Core (>= 3.4.2)
- OfficeIMO.Excel (>= 3.4.2)
- OfficeIMO.Pdf (>= 3.4.2)
-
.NETStandard 2.0
- OfficeIMO.Core (>= 3.4.2)
- OfficeIMO.Excel (>= 3.4.2)
- OfficeIMO.Pdf (>= 3.4.2)
-
net10.0
- OfficeIMO.Core (>= 3.4.2)
- OfficeIMO.Excel (>= 3.4.2)
- OfficeIMO.Pdf (>= 3.4.2)
-
net8.0
- OfficeIMO.Core (>= 3.4.2)
- OfficeIMO.Excel (>= 3.4.2)
- OfficeIMO.Pdf (>= 3.4.2)
NuGet packages (4)
Showing the top 4 NuGet packages that depend on OfficeIMO.Excel.Pdf:
| Package | Downloads |
|---|---|
|
Ank.DocToolkit
Convert HTML to PDF and DOCX in C# without a browser - pure managed, no Chromium, no wkhtmltopdf, no native binaries, no LibreOffice, no Office interop. Also converts Markdown to DOCX and PDF; renders DOCX, XLSX and PPTX to PDF; exports DOCX to HTML/Markdown and XLSX to CSV/HTML; reads legacy Word 97-2003 .doc files; reads text out of a PDF; creates/edits DOCX, XLSX and PPTX; password-protects PDF, DOCX, XLSX and PPTX; and inspects and validates digital signatures in DOCX, XLSX and PPTX. Runs on Linux, Windows, macOS and arm64, and makes no network calls at runtime. |
|
|
OfficeIMO.OpenDocument.Ods.Pdf
Bidirectional, loss-aware ODS and PDF conversion through the Excel semantic engine. |
|
|
OfficeIMO.Workflows
Typed local document workflows that compose first-party OfficeIMO conversion, PDF, and provenance capabilities. |
|
|
OfficeIMO.OpenDocument.Pdf
Direct loss-aware OpenDocument text, spreadsheet, and presentation to PDF adapters. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.4.4 | 271 | 9/27/2026 |
| 3.4.3 | 352 | 9/12/2026 |
| 3.4.2 | 214 | 9/9/2026 |
| 3.4.1 | 233 | 9/7/2026 |
| 3.4.0 | 189 | 9/6/2026 |
| 3.3.0 | 36,365 | 9/2/2026 |
| 3.2.7 | 3,383 | 8/29/2026 |
| 3.2.6 | 2,884 | 8/22/2026 |
| 3.2.5 | 230 | 8/21/2026 |
| 3.2.4 | 238 | 8/19/2026 |
| 3.2.3 | 152 | 8/17/2026 |
| 3.2.2 | 2,915 | 8/13/2026 |
| 3.2.1 | 270 | 8/11/2026 |
| 3.2.0 | 2,373 | 8/7/2026 |
| 3.1.1 | 167 | 8/7/2026 |
| 3.1.0 | 161 | 8/6/2026 |
| 3.0.3 | 194 | 7/27/2026 |
| 3.0.2 | 162 | 7/26/2026 |
| 3.0.1 | 429 | 7/26/2026 |
| 3.0.0 | 475 | 7/20/2026 |