pdf links

PDF Rendering
Convert PDF to Image (.NET)
Convert PDF to image on Android (Xamarin)
Convert PDF to image on iOS (Xamarin)
Convert PDF to image in Windows Store apps (.NET)
Convert PDF to image in Windows Phone apps (.NET)
PDF to image in Universal Windows Store apps (.NET)
Free PDF Viewer control for Windows Forms (.NET)
How to integrate PDF Viewer control in WPF app (.NET)
Creating WPF PDF Viewer supporting bookmarks (.NET)
Cross-platform PDF Viewer using GTK# (MONO)
Silverlight PDF viewer control (Silverlight 5)
Multithreaded PDF rendering (.NET)
Convert pdf to image in Silverlight app (C# sample)
How to set fallback fonts for PDF rendering (C#)
Avoiding the out-of-memory exception on rendering (C#)
PDF viewer single page application (WebAPI, AngularJS)
PDF viewer control for Windows 10 universal applications
Use custom ICC profile for CMYK to RGB conversion
PDF layers - separate images, text, annotations, graphics

PDF Forms Creation PDF Security
Conversion to PDF/A
Other topics
PDF Document Manipulation
PDF Content Generation
Fixed and Flow layout document API (.NET)
Creation of grids and tables in PDF (C# sample)
How to create interactive documents using Actions (C# sample)
Text flow effects in PDF (C# sample)
How to generate ordered and bulleted lists in PDF (C# sample)
Convert HTML to PDF using flow layout API (C# sample)
How to use custom fonts for PDF generation (.NET)
Create document with differently sized pages (C#)
Create PDF documents using MONO (C#/MONO/Windows/OSX)
How to use background images for content elements (C#/PDF Kit/FlowLayout)
Add transparent images to PDF document (C#)
Draw round rect borders in PDF documents(C#)
ICC color profiles and and ICC based colors in PDF (C#)
How to use bidirectional and right to left text in PDF (C#)
Create PDF documents from XML templates (C# sample)
How to resize PDF pages and use custom stamps (C#)
Add header and footer to PDF page (.NET sample)
How to use clipping mask for drawing on PDF page
Fill graphics path with gradient brushes in PDF (Shadings)
Apitron PDF Kit and Rasterizer engine settings
Add layers to PDF page (optional content, C# sample)
How to create free text annotation with custom appearance

PDF Content Extraction
PDF Navigation

PDF to TIFF conversion
Contact us if you have a PDF related question and we'll cover it in our blog.

2015-09-19

How to avoid the out of memory exception when rendering or reading PDF files

Introduction


Rendering or reading PDF files can be tricky sometimes because of abnormal PDF resource size and device memory limitation constraint overlapping with each other. The most common problem is having a huge image inside the PDF file that requires a significant amount of memory to be allocated for proper processing.

This problem can arise on mobile devices (e.g. in Xamarin apps), but can also be observed on PCs if you have not enough memory to hold the resources stored in PDF file and there are really big. To solve this problem we introduced the PDF engine setting controlling the resource loading strategy. See the code sample in next section to learn how it works.

Code sample


// open the document and render first page
using (Stream fileStream = File.Open("document.pdf",FileMode.Open))
{
    // You can turn on the low memory mode globally:
    // EngineSettings.GlobalSettings.MemoryAllocationMode = 
    // MemoryAllocationMode.ResourcesLowMemory;
    //  or apply this setting only to the specific file as shown below.
    // This mode can be useful in situations where you have PDF files containing huge
    // image resources or embedded fonts, and running out of memory because of this.
    EngineSettings engineSettings = new EngineSettings()
    {
        // set the resource size limit to 2MB, 
        // everything bigger than that will be saved to disk
        ResourceSizeLimit = 2097152,
        MemoryAllocationMode = MemoryAllocationMode.ResourcesLowMemory
    };

    using (Document doc = new Document(fileStream, engineSettings))
    {
        // render page and save the result
        Bitmap bitmap = doc.Pages[0].Render(new Resolution(72, 72), 
           new RenderingSettings());
        bitmap.Save("page0.png");
    }
}

Conclusion



You can render resource demanding and complex PDF documents using Apitron PDF Rasterizer .NET component, download it from our website and enjoy the top quality PDF rendering results and its easy to use API. Contact us if you need any help or have questions, we guarantee the response within the same business day.

Downloadable version of this article can be found by the following link [PDF].

No comments:

Post a Comment