To reproduce:
doc.Pages[0].CropBox = new Rect(150, 150, doc.Pages[0].Size.Width - 30, doc.Pages[0].Size.Height - 30);
The current implementation relies on valid cross-reference table offsets in the PDF documents so that PDF objects are easily found and parsed. However, a mechanism for importing documents with invalid cross-reference table offsets may be implemented.
The attached project shows how to repair such documents.
To reproduce:
Open a large document and start scrolling fast.
The pages a blank when scrolling and are rendered after scrolling stops.
When a PDF document contains images compressed with CCITTFaxDecode with applied BlackIs1 parameter, black color is visualized as white and white as black.
Please refer to the attached sample screenshot demonstrating how the document look in Adobe and in RadPdfViewer.
Currently, RadPdfViewer uses WPF DrawingContext class for drawing page elements to a Canvas. When PDF page has many content elements (usually geometries) drawing the page may be time-consuming and freezes the UI. Instead, we should consider implementing another approach for rendering the content asynchronously which would improve the user experience.
Some files when opened with PdfViewer will throw a KeyNotFoundException which will be handled. Parts of the text in the file might or might not be missing.
When the file has an annotation with a destination and this destination is missing from the destinations (Dests) collection of the catalogue, KeyNotFoundException is thrown when you try to scroll to the page where the annotation is located. A better behavior would be for nothing to happen when trying to click on the annotation leading to the destination.