To reproduce: - Print a document that fills the entire page. - On the print preview dialog the page is centered however when printed it is not. In addition, one should be able to control the page scaling.
1- the load of a document take a while to load (if successed). 2- An unhandled exception thrown while loading a document (Out of memory or Invalid parameter) the file that i'm trying to load is attached and created using Telerik Document Processing Library. ************** Exception Text ************** System.ArgumentException: Parameter is not valid. at System.Drawing.Bitmap..ctor(Int32 width, Int32 height, PixelFormat format) at System.Drawing.Bitmap..ctor(Image original, Int32 width, Int32 height) at System.Drawing.Bitmap..ctor(Image original) at Telerik.WinControls.PdfViewer.PdfElementsRenderer.RenderImage(ImageSource source, ResourceKey key, BackgroundWorker cancellationToken) at Telerik.WinControls.PdfViewer.FixedPageRenderer.DrawImage(Image image, Graphics graphics) at Telerik.WinControls.PdfViewer.FixedPageRenderer.DrawContentElement(IContentElement contentElement, Graphics graphics) at Telerik.WinControls.PdfViewer.FixedPageRenderer.DrawContainer(Container container, Graphics graphics) at Telerik.WinControls.PdfViewer.FixedPageRenderer.DrawContentElement(IContentElement contentElement, Graphics graphics) at Telerik.WinControls.PdfViewer.FixedPageRenderer.DrawContainer(Container container, Graphics graphics) at Telerik.WinControls.PdfViewer.FixedPageRenderer.DrawContentElement(IContentElement contentElement, Graphics graphics) at Telerik.WinControls.PdfViewer.FixedPageRenderer.DrawPage(ContentCollection content, Graphics graphics, Matrix pageTransform) at Telerik.WinControls.UI.FixedPagePreRenderer.rendererWorker_DoWork(Object sender, DoWorkEventArgs e) at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e) at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument) Thank you
Workaround: subscribe the RadPdfViewer control to the ViewerModeChanged event and in the handler, if the viewer mode is set to Pan, call the HideCaret method of the PdfViewerElement private void radPdfViewer1_ViewerModeChanged(object sender, EventArgs e) { if (this.radPdfViewer1.ViewerMode == Telerik.WinControls.UI.FixedDocumentViewerMode.Pan) { this.radPdfViewer1.PdfViewerElement.HideCaret(); } }
Workaround: update manually the RadPdfViewerNavigator.CurrentPageTextBox.
Download the attached pdf document and open it with RadPDfViewer and Adobe Reader. You will see that our viewer renders it with the black and white colors inverted.
Add two additional buttons in the RadPdfViewerNavigator like in Adobe Reader: - The first one must fill the window with each page and scroll through pages continuously. - The second one must show one page at a time.
at System.Drawing.Drawing2D.GraphicsPath.Clone() at Telerik.WinControls.PdfViewer.PdfElementsRenderer.RenderGlyph(Glyph glyph) at Telerik.WinControls.PdfViewer.FixedPageRenderer.DrawGlyph(Glyph glyph, Graphics graphics) at Telerik.WinControls.PdfViewer.FixedPageRenderer.DrawContentElement(IContentElement contentElement, Graphics graphics) at Telerik.WinControls.PdfViewer.FixedPageRenderer.DrawGlyphsLayoutBox(GlyphsLayoutBox glyphBox, Graphics graphics) at Telerik.WinControls.PdfViewer.FixedPageRenderer.DrawContentElement(IContentElement contentElement, Graphics graphics) at Telerik.WinControls.PdfViewer.FixedPageRenderer.DrawContainer(Container container, Graphics graphics) at Telerik.WinControls.PdfViewer.FixedPageRenderer.DrawContentElement(IContentElement contentElement, Graphics graphics) at Telerik.WinControls.PdfViewer.FixedPageRenderer.DrawContainer(Container container, Graphics graphics) at Telerik.WinControls.PdfViewer.FixedPageRenderer.DrawContentElement(IContentElement contentElement, Graphics graphics) at Telerik.WinControls.PdfViewer.FixedPageRenderer.DrawPage(ContentCollection content, Graphics graphics, Matrix pageTransform) at Telerik.WinControls.UI.RadFixedPageElement.pageRenderer_DoWork(Object sender, DoWorkEventArgs e) at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e) at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument) at System.Drawing.Drawing2D.GraphicsPath.Clone() at Telerik.WinControls.PdfViewer.PdfElementsRenderer.RenderGlyph(Glyph glyph) at Telerik.WinControls.PdfViewer.FixedPageRenderer.DrawGlyph(Glyph glyph, Graphics graphics) at Telerik.WinControls.PdfViewer.FixedPageRenderer.DrawContentElement(IContentElement contentElement, Graphics graphics) at Telerik.WinControls.PdfViewer.FixedPageRenderer.DrawGlyphsLayoutBox(GlyphsLayoutBox glyphBox, Graphics graphics) at Telerik.WinControls.PdfViewer.FixedPageRenderer.DrawContentElement(IContentElement contentElement, Graphics graphics) at Telerik.WinControls.PdfViewer.FixedPageRenderer.DrawContainer(Container container, Graphics graphics) at Telerik.WinControls.PdfViewer.FixedPageRenderer.DrawContentElement(IContentElement contentElement, Graphics graphics) at Telerik.WinControls.PdfViewer.FixedPageRenderer.DrawContainer(Container container, Graphics graphics) at Telerik.WinControls.PdfViewer.FixedPageRenderer.DrawContentElement(IContentElement contentElement, Graphics graphics) at Telerik.WinControls.PdfViewer.FixedPageRenderer.DrawPage(ContentCollection content, Graphics graphics, Matrix pageTransform) at Telerik.WinControls.UI.RadFixedPageElement.pageRenderer_DoWork(Object sender, DoWorkEventArgs e) at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e) at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)
Workaround: print the document page by page: private void radButton1_Click(object sender, EventArgs e) { RadPrintDocument d = new RadPrintDocument(); d.PrinterSettings.PrintRange = PrintRange.CurrentPage; d.AssociatedObject = this.radPdfViewer1; for (int i = 0; i < this.radPdfViewer1.Document.Pages.Count; i++) { d.CurrentPage = i; d.Print(); } }
http://docs.telerik.com/devtools/wpf/controls/radpdfviewer/document-model/exceptionhandling