我有一个MVC应用程序正在上传PDF文件并使用Magick.NET将每个页面呈现为单个PNG图像。在大多数情况下,转换效果并不理想,但在一些情况下,我获得了空白图像,其中应显示文本,并在同一图像中正确显示其他文本行。有谁知道这可能是什么原因造成的?使用Magick.NET将PDF转换为PNG时缺少文本
以下是我正在使用的代码。
public FileResult PNGPreview(Guid id, Int32 index)
{
MagickReadSettings settings = new MagickReadSettings();
// Settings the density to 300 dpi will create an image with a better quality
settings.FrameIndex = index;
settings.FrameCount = 1;
settings.Density = new PointD(300, 300);
settings.UseMonochrome = true;
using (MagickImageCollection images = new MagickImageCollection())
{
// Add all the pages of the pdf file to the collection
images.Read(CreateDocument(id), settings);
using (MemoryStream stream = new MemoryStream())
{
images[0].Write(stream, MagickFormat.Png24);
stream.Close();
byte[] result = stream.ToArray();
return File(result, "image/png");
}
}
}
private byte[] CreateDocument(Guid id)
{
PdfReader reader = new PdfReader(Server.MapPath(String.Format("~/documenttemplates/{0}.pdf", id)));
byte[] result = null;
using (MemoryStream ms = new MemoryStream())
{
PdfStamper stamper = new PdfStamper(reader, ms, '\0', false);
stamper.Close();
reader.Close();
result = ms.ToArray();
}
return result;
}
问题是随机的,还是一些PDF文件一直转换为空白图像? – Micke
一些PDF文件一致转换。我首先想到它可能是一个字体问题,但PDF具有像Helvetica,Arial等标准字体。 – Steve
我认为这将是有益的,如果你可以共享一个PDF文件转换为空白图像,如果有的话。 – Micke