PDFtoImage
A .NET library to render PDF files into images.
Install / Use
/learn @sungaila/PDFtoImageREADME
PDFtoImage
A .NET library to render PDF files into images.
This .NET library is built on top of
Getting started
Call a static method from PDFtoImage.Conversion:
SaveJpeg, SavePng, SaveWebp and ToImage for a single page.
ToImages and ToImagesAsync for multiple pages.
Note: SkiaSharp.SKBitmap can be exported with the Encode method.
Unity project installation
- Open your project and navigate to
Window→Package Manager. - Click on the
+button (top-left corner) and selectInstall package from git URL.... - Enter the following URL and confirm with the
Installbutton:
https://github.com/sungaila/PDFtoImage.git?path=etc/UnityPackage
Supported runtimes
Tested and supported frameworks
- ASP.NET
- ASP.NET Core
- Blazor WebAssembly
- .NET Multi-platform App UI (.NET MAUI) (excluding iOS, see https://github.com/sungaila/PDFtoImage/issues/141)
- Unity (excluding iOS, see https://github.com/sungaila/PDFtoImage/issues/141)
- Universal Windows Platform (UWP)
- Windows UI Library 3 (WinUI 3)
No parallelization support
The native PDFium library used by this project for rendering is not thread-safe. For that reason, all calls into PDFium are protected with locks.
This means that you can only process one PDF at a time.
If you need true parallel processing, you’ll have to spawn multiple processes and distribute the workload across them, then collect the results using inter-process communication (IPC) and appropriate serialization.
Ghostscript may be easier for this use case, since (under certain conditions) it can support multiple instances within the same process.
Index and Range for .NET Framework
PolySharp is used to enable the use of System.Index and System.Range in .NET Framework projects. As a side effect, the following classes are generated and exposed, which should not be used directly by your project:
System.IndexSystem.RangeSystem.Diagnostics.CodeAnalysis.DoesNotReturnAttributeSystem.Diagnostics.CodeAnalysis.NotNullWhenAttributeSystem.Runtime.CompilerServices.IsExternalInit
