C# 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)
32 位和 64 位冲突:当你的应用程序是 32 位的,却尝试加载 64 位的动态链接库(DLL),或者反之,就会出现这个异常。例如,在 Visual Studio 中,你将项目的目标平台设置为 “x86”(表示 32 位),但引用了一个仅支持 “x64”(64 位)的第三方 DLL,运行时就会引发该异常。目标平台冲突32位,改成64位即可
public static void Convert(string pdf_fn, string save_path, float quality)
{
int dpiX = 96;
int dpiY = 96;
string name = System.IO.Path.GetFileNameWithoutExtension(pdf_fn);
//System.BadImageFormatException:“试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)”
//C#项目-> 右键属性->项目设计器->生成->平台->把'默认设置(任何 CPU)'改为x64, 问题解决
//这个要根据自己项目的类型进行同一修改。
string image_save_fn = System.IO.Path.Combine(save_path, name + ".png");
if (File.Exists(image_save_fn)) return;
using (var doc = PdfDocument.Load(pdf_fn))
{
int index = doc.PageCount == 1 ? 0 : 9;
int width = (int)(doc.PageSizes[index].Width * quality);
int height = (int)(doc.PageSizes[index].Height * quality);
using (var image = doc.Render(index, width, height, dpiX, dpiY, false))
{
var imageTrimed = PngTrim.CutImageWhiteParts(image);
imageTrimed.Save(image_save_fn);
}
}
}