TallComponents PDF Rasterizer.NET convertToWPF ошибка памяти
Я пытаюсь растеризовать PDF с помощью TallComponents PDF Rasterizer.
Работает нормально, собираюсь tiff.. Хотя я хотел ConvertToWpf..
Я задал им этот вопрос напрямую, хотя ответа нет..
Итак, я следовал их примеру кода..
TallComponents.PDF.Rasterizer.Document _document;
using (FileStream file = new FileStream(pSource, FileMode.Open, FileAccess.Read))
{
_document = new TallComponents.PDF.Rasterizer.Document(file);
}
TallComponents.PDF.Rasterizer.Configuration.RenderSettings rSettings = new TallComponents.PDF.Rasterizer.Configuration.RenderSettings();
rSettings.TextSettings.ResolveFont += new TallComponents.PDF.Rasterizer.Fonts.ResolveFontEventHandler(TextSettings_ResolveFont);
TallComponents.PDF.Rasterizer.ConvertToWpfOptions rOptions = new TallComponents.PDF.Rasterizer.ConvertToWpfOptions();
TallComponents.PDF.Rasterizer.Diagnostics.Summary summary = new TallComponents.PDF.Rasterizer.Diagnostics.Summary();
int count = _document.Pages.Count;
for (int i = 0; i < count; i++)
{
using (FileStream outStream = new FileStream(path, FileMode.Create))
{
System.Windows.Documents.FixedPage fpage = _document.Pages[i].ConvertToWpf(rSettings, rOptions, summary);
double width = fpage.Width * rasterize.rast_dpiX / system.scr_dpiX;
double height = fpage.Height * rasterize.rast_dpiY / system.scr_dpiY;
RenderTargetBitmap renderTarget = new RenderTargetBitmap(
(int)width,
(int)height,
rasterize.rast_dpiX,
rasterize.rast_dpiY,
System.Windows.Media.PixelFormats.Default);
renderTarget.Render(fpage);
PngBitmapEncoder enc = new PngBitmapEncoder();
enc.Frames.Add(BitmapFrame.Create(renderTarget));
enc.Save(outStream);
}
Это работает, когда я использую PDF, который имеет только 1 страницу..
Когда я использую PDF с более чем 1 страницей, я получаю недостаточно ошибок памяти..
Когда я использую PDF с более чем 1 страницей и начинаю со страницы 2, и пропускаю первую страницу, она работает.. Хотя все страницы появляются пустыми, говоря, что я могу растеризовать только первую страницу, потому что она пробная.
Я получаю ошибку памяти, потому что это пробный продукт?
1 ответ
Скорее всего, у вас есть изображение (или другой огромный объект PDF) на первой странице, после обработки которого вы получили исключение. Это исключение нарушает дальнейшую визуализацию, и у вас есть пустые 2,3,4... страницы.