The visualizations of all annotations are defined by their normal appearance streams. This is already implemented in RadPdfViewer for the supported annotation types (Link and Widget annotations). It may be easily adopted for not supported annotation types as well. Available in 2017 R3 Official Release Version.
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.
When text is exported from PDF document using the TextFormatProvider (it's also used internally for the Copy operation), it is automatically split to lines using the vertical position of the words on the page, and small tolerance. Currently the tolerance is hard-coded to 0.1 pixels, which is not suitable for documents which contains scanned and OCR-ed text, and there the text lines could be slightly inclined. The result is that words on one slightly inclined line are recognized as if they are on separate lines.
This allows specifying a soft mask in the external graphics state.
The exception is thrown during "Put" operator execution.
When graphic state uses stroking text rendering mode, the glyphs are visualized with bigger stroke thickness than the expected one. Available in LIB Version 2018.2.521.
Currently, when we parse inline image dictionaries we rely on the assumption that the colorspace will be PdfName. However, there are files with complex colorspaces that are PdfArray and InvalidCastException is thrown. All the content after this exception is lost and not visualized by RadPdfViewer.
Currently, all images are decoded and preserved in RGBA format (32 bits for each pixel). However, there are files that optimize their images by preserving them with 1 bit for each pixel. In WPF we may create monochrome System.Windows.Media.ImageSource that would optimize the performance and memory consumption when rendering such images. Available in R1 2018 Official Release Version.
FixedDocumentPresenter could be TemplateBound to PDFViewer's Background property. Available in LIB version: 2016.3.1205
When there is no ToUnicode CMap, the text from the Simple Font instance 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.
The instances are kept in GeometryRenderer cache and each time the content stream is parsed new PathGeometry instances are added to GeometyRenderer store Dictionary field. Available in R1 2017 Official Release Version.
"Save As" is common functionality in most of the popular PDF Viewers. It should save the currently loaded document to a file. Workaround: Currently there is SDK demonstrating how to add such functionality: https://github.com/telerik/xaml-sdk/tree/master/PdfViewer/PdfViewerCustomSaveCommand Available in R3 2017 Official Release Version.
This is not quite a valid PDF file scenario according to PDF file specification. However, we may try handling it in order to show the correct number of pages. When the kid is of type Pages, it should be added to the pages traversal recursion only the first time it is met.
Implement import and export of content with Type0Font with GBK-EUC-H encoding.
Even small documents (~30 kb) containing images encoded with CCITTFaxDecode filter can take about 10 seconds to be opened. In 2014 Q1 SP1 such documents load faster.
Default RadPdfViewer presenters load image sources async which allows to render the rest PDF content faster. However, FixedDocumentSinglePagePresenter loads images syncrhonously and all page content is rendered right after all images on the page are loaded.
Setting DocumentSource throws NullReferenceException when PdfViewer is hosted in ElementHost. When setting the DocumentSource, the Application.Dispatcher is used, but in Winforms app, the Application is not instantiated. Steps to reproduce: 1. Host PdfViewer in ElementHost in a WinForms application 2. Set the DocumentSource property 3. Run Expected: The document is opened Actual: NullReferenceException is thrown Workaround: the document could be set to the Document property of PdfViewer. Or instead hosting the PdfViewer for WPF in ElementHost, use WinForms version of the control.
Tint transformation function is used to transform Device N color in Alternate colorspace.
By using "Auto Detect Hyperlink" functionality RadPdfViewer should detect URLs and email addresses and turn them into hyperlinks. For instance if the PDF file contains text http://www.telerik.com/ this text should become a hyperlink.
Represents Free text PDF content. Since LIB Version 2017.3.925 annotations of type FreeText can be visualized.