У меня есть приложение MVC, которое загружает PDF-файл и рендерит каждую страницу как одно изображение PNG с помощью Magick.NET. В большинстве случаев преобразование прекрасное, но в некоторых случаях я получаю пустое изображение, где должен быть текст, и другие строки текста, отображаемые правильно на одном и том же изображении. Кто-нибудь знает, что может быть причиной этого?Текст отсутствует при преобразовании PDF в PNG с помощью Magick.NET
Ниже приведен код, который я использую.
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