Lyo.Pdf.Rendering
1.0.2
dotnet add package Lyo.Pdf.Rendering --version 1.0.2
NuGet\Install-Package Lyo.Pdf.Rendering -Version 1.0.2
<PackageReference Include="Lyo.Pdf.Rendering" Version="1.0.2" />
<PackageVersion Include="Lyo.Pdf.Rendering" Version="1.0.2" />
<PackageReference Include="Lyo.Pdf.Rendering" />
paket add Lyo.Pdf.Rendering --version 1.0.2
#r "nuget: Lyo.Pdf.Rendering, 1.0.2"
#:package Lyo.Pdf.Rendering@1.0.2
#addin nuget:?package=Lyo.Pdf.Rendering&version=1.0.2
#tool nuget:?package=Lyo.Pdf.Rendering&version=1.0.2
Lyo.Pdf.Rendering
Rasterizes PDF pages to PNG via PDFtoImage (PDFium + Skia under the hood; bblanchon.PDFium native packages). Targets net10.0.
Examples
Usage
services.AddPdfPageRasterizer();
public sealed class CoverRenderer(IPdfPageRasterizer rasterizer)
{
public async Task<byte[]> RenderAsync(ReadOnlyMemory<byte> pdf, CancellationToken ct)
=> (await rasterizer.RenderPageToPngAsync(pdf, pageNumber1Based: 1, dpi: 144, cancellationToken: ct))
.ValueOrThrow()
.PngBytes;
}
API
public interface IPdfPageRasterizer
{
Task<Result<PdfRasterPage>> RenderPageToPngAsync(
ReadOnlyMemory<byte> pdfBytes,
int pageNumber1Based,
int dpi,
string? password = null,
CancellationToken cancellationToken = default);
}
public sealed record PdfRasterPage(byte[] PngBytes, int WidthPx, int HeightPx);
API
PdfToImagePageRasterizer is the default implementation: it dispatches the CPU-bound
PDFium call through Task.Run, probes the rendered bytes with ImageSharp to read
the bitmap dimensions, and logs an elapsed-ms trace on success. Failures surface as
Result<PdfRasterPage>.Failure tagged with:
PdfRenderErrorCodes.PageOutOfRange("PDF_RENDER_PAGE_OUT_OF_RANGE") whenpageNumber1Based > pageCount.PdfRenderErrorCodes.RenderFailed("PDF_RENDER_FAILED") for invalid PDFs, missing/incorrect passwords, or any PDFium error.
Usage
Pass the document password argument when the PDF is protected. Pages are 1-based. Prefer Lyo.Pdf.Ocr when you need to combine rasterization with IOcrEngine and project bounding boxes back into PDF coordinates.
Dependencies
Generated from ProjectReference / PackageReference (same model as docs/Lyo.ProjectGraph.html).
Lyo.Common— (direct, lyo)Lyo.Exceptions— (direct, lyo)Lyo.Result— (direct, lyo)Microsoft.Extensions.DependencyInjection.Abstractions10.0.5— (direct, microsoft)Microsoft.Extensions.Logging.Abstractions10.0.5— (direct, microsoft)PDFtoImage5.2.1— (direct, third-party)SixLabors.ImageSharp3.1.12— (direct, third-party)System.Memory4.6.3— (transitive, microsoft, netstandard2.0)System.Text.Json10.0.5— (transitive, microsoft, netstandard2.0)
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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. |
-
net10.0
- Lyo.Common (>= 1.0.2)
- Lyo.Exceptions (>= 1.0.2)
- Lyo.Result (>= 1.0.2)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.5)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.5)
- PDFtoImage (>= 5.2.1)
- SixLabors.ImageSharp (>= 3.1.12)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Lyo.Pdf.Rendering:
| Package | Downloads |
|---|---|
|
Lyo.Pdf.Ocr
OCR pipeline for PDF pages: rasterize (PDFium), run IOcrEngine, map pixel boxes to PDF points. |
GitHub repositories
This package is not used by any popular GitHub repositories.