Overprinting is option in the GraphicState that allows combining colors when drawing one object above another object. It is briefly described on page 284 and page 565 in PdfReference 1.7. However, the result of overprinting is device dependent and there are no strict instructions how the result should look like. This feature also includes support for the different blending modes.
To reproduce: - Drop a RadPdfViewer on a blank form at design time. Some documents reqire this assembly as well.
While the other annotations are drawn on top of the content, the highlight annotation is behind the text it highlights. In other words, it has to be inserted at a specific place in the ContentElementsUILayer. The pdf seems to mark the precise place where the highlight should be placed with the BDC, MCID and EMC operators in the content. At the moment, the read-only rendering of the highlight annotation has been implemented with an instance of the AnnotationUILayer called "HighlightUILayer" which is placed behind the ContentElementsUILayer. With this implementation, depending on the contents of the pdf, the highlight annotation might be visible or it might not be.
To reproduce: Open a document that has highlighted areas.
When Find Next is used multiple times fast, and pages are still loaded asynchronously, sometimes NullReferenceException is thrown with the following call stack: System.NullReferenceException: Object reference not set to an instance of an object. at Telerik.Windows.Documents.Fixed.Text.TextRecognizer.GetLastCharacter() at Telerik.Windows.Documents.Fixed.Text.TextRecognizer.IsLineBreak(Glyph glyph) at Telerik.Windows.Documents.Fixed.Text.TextRecognizer.ProcessGlyph(Glyph glyph) at Telerik.Windows.Documents.Fixed.Text.TextRecognizer.CreateTextPage(RadFixedPageInternal page) at Telerik.Windows.Documents.Fixed.Text.TextDocument.GetTextPage(Int32 index) at Telerik.Windows.Documents.Fixed.Search.KMPTextSearch.FindNext(TextDocument document, TextPosition startPosition, String searchText, Boolean matchCase, Boolean wholeWordsOnly) at Telerik.Windows.Documents.Fixed.Search.TextSearch.Find(String text, TextSearchOptions options) ...
RadPdfViewer partially supports CCITTFaxDecode (that is basically TIFF). There are some limitations that are not supported at this stage like EncodedByteAlign = true or Group 3, 2-D encoding.
The rendering of images with size ~5000/6000 and BitsPerComponent is time-consuming. The scenario is optimized in terms of memory but would be nice to increase the performance as well.
When there is no ToUnicode CMap, the text from the Simple Font instance (TrueType or Type1 font) should be extracted by mapping the glyph name to its corresponding charcode according to Adobe Glyph List. Additionally, the Differences array should be included in these calculations when there is custom encoding. The current implementation of RadPdfViewer makes ToString to the original char id byte value which leads to wrong characters. More information about this may be seen in the second point of section "5.9.1Mapping Character Codes to Unicode Values" on page 470 in PdfReference 1.7.
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.
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.
To reproduce:
Open a large document and start scrolling fast.
The pages a blank when scrolling and are rendered after scrolling stops.
To reproduce:
doc.Pages[0].CropBox = new Rect(150, 150, doc.Pages[0].Size.Width - 30, doc.Pages[0].Size.Height - 30);