我正在尝试使用TallComponents PDF光栅化器来栅格化PDF
在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文件时,从第2页开始,跳过第一页,它可以工作。虽然所有的页面都是空白的,但我说我只能栅格化第一页,因为这是一个试验。
我得到内存错误,因为它是一个试用产品?
发布于 2013-06-23 15:15:25
最有可能的是,在第一页上有一个图像(或另一个巨大的PDF对象),在处理之后,您会得到一个异常。这个异常中断了进一步的渲染,你得到了一个空白的2,3,4...页面。
https://stackoverflow.com/questions/16041501
复制相似问题