我对这个做了一个简短的调查。
这个
Image.Resolution
属性可用于设置PDF呈现分辨率,但ImageMagick.net包装器不公开该属性。
将缺少的属性添加到Image类就足够简单了。
Index: ImageMagickNET/Image.h
===================================================================
--- ImageMagickNET/Image.h (revision 59374)
+++ ImageMagickNET/Image.h (working copy)
@@ -532,6 +532,13 @@
}
+ // Vertical and horizontal resolution in pixels of the image.
+ property Geometry^ Density
+ {
+ void set(Geometry^);
+ }
+
+
//----------------------------------------------------------------
// IO
//----------------------------------------------------------------
Index: ImageMagickNET/Image.cpp
===================================================================
--- ImageMagickNET/Image.cpp (revision 59374)
+++ ImageMagickNET/Image.cpp (working copy)
@@ -1099,5 +1099,9 @@
return bitmap;
}
+ void Image::Density::set(Geometry^ density_)
+ {
+ image->density(*(density_->geometry));
+ }
}
不幸的是,看起来
a bug
阻止我们在迭代PDF页面时设置渲染质量,因为您正在尝试这样做。
另一种选择是单独打开每个页面:
Image image = new Image();
image.Density = new Geometry("1000"); // 1000 dpi
image.Read(@"C:\u\test.pdf[2]"); // Open the 3rd page, index 0 is the first
如果页码超出范围,则
未经加工的
C++异常。同时
you can catch it in C#
包装应该包括
.NET
表示ImageMagick错误的异常类。