Pdfium.Net.Free 添加 bblanchon.PDFium nuget方式
介绍见上文
跨平台环境下 建议引用第三方pdfium依赖项
dotnet add package bblanchon.PDFium --version 135.0.7009
如下图

目录下会添加多平台的依赖包

然后添加如下代码即可,此代码会加载传入的pdfium
public static class PdfiumRegistrations { static string filePrefix = "runtimes"; public static void AddPdfiumResolver(this IServiceCollection services) { PdfiumResolver.Resolve += (s, e) => { var platform = e.OSPlatform; if (platform == OSPlatform.Windows) { e.PdfiumFileName = GetWindowsFileName(); } else if (platform == OSPlatform.Linux) { e.PdfiumFileName = GetLinuxFileName(); } else if (platform == OSPlatform.OSX) { e.PdfiumFileName = GetOSXFileName(); } else { throw new Exception($"pdfium not support OSPlatform{platform.ToString()}"); } }; } public static string GetWindowsFileName() { switch(RuntimeInformation.OSArchitecture) { case Architecture.X64: return Path.Combine(filePrefix, "win-x64", "native", "pdfium.dll"); case Architecture.X86: return Path.Combine(filePrefix, "win-x86", "native", "pdfium.dll"); case Architecture.Arm64: return Path.Combine(filePrefix, "win-arm64", "native", "pdfium.dll"); default: return ""; } } public static string GetLinuxFileName() { switch (RuntimeInformation.OSArchitecture) { case Architecture.X64: return Path.Combine(filePrefix, "linux-x64", "native", "libpdfium.so"); case Architecture.X86: return Path.Combine(filePrefix, "linux-x86", "native", "libpdfium.so"); case Architecture.Arm: return Path.Combine(filePrefix, "linux-arm", "native", "libpdfium.so"); case Architecture.Arm64: return Path.Combine(filePrefix, "linux-arm64", "native", "libpdfium.so"); default: return ""; } } public static string GetOSXFileName() { switch (RuntimeInformation.OSArchitecture) { case Architecture.X64: return Path.Combine(filePrefix, "osx-x64", "native", "libpdfium.dylib"); case Architecture.Arm64: return Path.Combine(filePrefix, "osx-arm64", "native", "libpdfium.dylib"); default: return ""; } } }

浙公网安备 33010602011771号