Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / CommonUI / System / Drawing / Printing / PrintPreviewGraphics.cs / 1 / PrintPreviewGraphics.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Drawing { using System.Runtime.InteropServices; using System.ComponentModel; using System.Diagnostics; using System; using Microsoft.Win32; using System.Security; using System.Security.Permissions; using System.Drawing.Internal; using System.Drawing.Imaging; using System.Drawing.Text; using System.Drawing.Drawing2D; using System.Drawing.Printing; ////// /// internal class PrintPreviewGraphics { private PrintPageEventArgs printPageEventArgs; private PrintDocument printDocument; public PrintPreviewGraphics(PrintDocument document, PrintPageEventArgs e) { printPageEventArgs = e; printDocument = document; } ///Retrives the printer graphics during preview. ////// /// Gets the Visible bounds of this graphics object. Used during print preview. /// public RectangleF VisibleClipBounds { get { IntPtr hdevMode = printPageEventArgs.PageSettings.PrinterSettings.GetHdevmodeInternal(); using( DeviceContext dc = printPageEventArgs.PageSettings.PrinterSettings.CreateDeviceContext(hdevMode)) { using( Graphics graphics = Graphics.FromHdcInternal(dc.Hdc) ) { if (printDocument.OriginAtMargins) { // Adjust the origin of the graphics object to be at the user-specified margin location // Note: Graphics.FromHdc internally calls SaveDC(hdc), we can still use the saved hdc to get the resolution. int dpiX = UnsafeNativeMethods.GetDeviceCaps(new HandleRef(dc, dc.Hdc), SafeNativeMethods.LOGPIXELSX); int dpiY = UnsafeNativeMethods.GetDeviceCaps(new HandleRef(dc, dc.Hdc), SafeNativeMethods.LOGPIXELSY); int hardMarginX_DU = UnsafeNativeMethods.GetDeviceCaps(new HandleRef(dc, dc.Hdc), SafeNativeMethods.PHYSICALOFFSETX); int hardMarginY_DU = UnsafeNativeMethods.GetDeviceCaps(new HandleRef(dc, dc.Hdc), SafeNativeMethods.PHYSICALOFFSETY); float hardMarginX = hardMarginX_DU * 100 / dpiX; float hardMarginY = hardMarginY_DU * 100 / dpiY; graphics.TranslateTransform(-hardMarginX, -hardMarginY); graphics.TranslateTransform(printDocument.DefaultPageSettings.Margins.Left, printDocument.DefaultPageSettings.Margins.Top); } return graphics.VisibleClipBounds; } } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Drawing { using System.Runtime.InteropServices; using System.ComponentModel; using System.Diagnostics; using System; using Microsoft.Win32; using System.Security; using System.Security.Permissions; using System.Drawing.Internal; using System.Drawing.Imaging; using System.Drawing.Text; using System.Drawing.Drawing2D; using System.Drawing.Printing; ////// /// internal class PrintPreviewGraphics { private PrintPageEventArgs printPageEventArgs; private PrintDocument printDocument; public PrintPreviewGraphics(PrintDocument document, PrintPageEventArgs e) { printPageEventArgs = e; printDocument = document; } ///Retrives the printer graphics during preview. ////// /// Gets the Visible bounds of this graphics object. Used during print preview. /// public RectangleF VisibleClipBounds { get { IntPtr hdevMode = printPageEventArgs.PageSettings.PrinterSettings.GetHdevmodeInternal(); using( DeviceContext dc = printPageEventArgs.PageSettings.PrinterSettings.CreateDeviceContext(hdevMode)) { using( Graphics graphics = Graphics.FromHdcInternal(dc.Hdc) ) { if (printDocument.OriginAtMargins) { // Adjust the origin of the graphics object to be at the user-specified margin location // Note: Graphics.FromHdc internally calls SaveDC(hdc), we can still use the saved hdc to get the resolution. int dpiX = UnsafeNativeMethods.GetDeviceCaps(new HandleRef(dc, dc.Hdc), SafeNativeMethods.LOGPIXELSX); int dpiY = UnsafeNativeMethods.GetDeviceCaps(new HandleRef(dc, dc.Hdc), SafeNativeMethods.LOGPIXELSY); int hardMarginX_DU = UnsafeNativeMethods.GetDeviceCaps(new HandleRef(dc, dc.Hdc), SafeNativeMethods.PHYSICALOFFSETX); int hardMarginY_DU = UnsafeNativeMethods.GetDeviceCaps(new HandleRef(dc, dc.Hdc), SafeNativeMethods.PHYSICALOFFSETY); float hardMarginX = hardMarginX_DU * 100 / dpiX; float hardMarginY = hardMarginY_DU * 100 / dpiY; graphics.TranslateTransform(-hardMarginX, -hardMarginY); graphics.TranslateTransform(printDocument.DefaultPageSettings.Margins.Left, printDocument.DefaultPageSettings.Margins.Top); } return graphics.VisibleClipBounds; } } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- IPHostEntry.cs
- CryptoProvider.cs
- ClickablePoint.cs
- TreeNodeMouseHoverEvent.cs
- ServiceHost.cs
- HttpProxyTransportBindingElement.cs
- storepermission.cs
- WebConfigurationFileMap.cs
- ConvertTextFrag.cs
- PreloadedPackages.cs
- BufferedGraphicsManager.cs
- RenderContext.cs
- ConnectionProviderAttribute.cs
- MainMenu.cs
- SelectorItemAutomationPeer.cs
- HebrewCalendar.cs
- ProfileSettingsCollection.cs
- SettingsAttributes.cs
- HelpKeywordAttribute.cs
- UntypedNullExpression.cs
- WindowsGraphicsWrapper.cs
- DisplayToken.cs
- ScrollItemPatternIdentifiers.cs
- Vector.cs
- UniqueSet.cs
- LinqDataView.cs
- ValueTable.cs
- MutexSecurity.cs
- UniqueEventHelper.cs
- LocationUpdates.cs
- DocumentSequenceHighlightLayer.cs
- CalendarModeChangedEventArgs.cs
- TextParentUndoUnit.cs
- CharacterHit.cs
- HorizontalAlignConverter.cs
- TextBoxDesigner.cs
- CurrencyWrapper.cs
- VariableExpressionConverter.cs
- httpapplicationstate.cs
- IssuanceLicense.cs
- SettingsContext.cs
- DocumentGridContextMenu.cs
- DataGridToolTip.cs
- FormsAuthenticationUser.cs
- KnownTypesHelper.cs
- DataTableReaderListener.cs
- XmlSchemaSubstitutionGroup.cs
- ClientCredentialsElement.cs
- TypeSemantics.cs
- _LoggingObject.cs
- Point3DKeyFrameCollection.cs
- Int64Storage.cs
- AcceleratedTokenAuthenticator.cs
- InstalledFontCollection.cs
- XmlDocument.cs
- OleDbConnectionFactory.cs
- ToolStripButton.cs
- _LocalDataStoreMgr.cs
- ServiceModelEnhancedConfigurationElementCollection.cs
- OrCondition.cs
- Size.cs
- ManagedFilter.cs
- StateWorkerRequest.cs
- Int32CollectionValueSerializer.cs
- FileRecordSequenceHelper.cs
- RelationshipNavigation.cs
- Win32KeyboardDevice.cs
- RemoteWebConfigurationHostServer.cs
- BitSet.cs
- Command.cs
- ContentPresenter.cs
- MergablePropertyAttribute.cs
- TripleDES.cs
- WorkflowRuntimeServiceElementCollection.cs
- MediaPlayerState.cs
- DocumentEventArgs.cs
- ToolboxCategoryItems.cs
- BindingMAnagerBase.cs
- ButtonFlatAdapter.cs
- HostnameComparisonMode.cs
- JournalEntry.cs
- CompilerWrapper.cs
- RegexMatchCollection.cs
- PrinterResolution.cs
- nulltextcontainer.cs
- FastEncoderWindow.cs
- XmlSignatureProperties.cs
- PictureBox.cs
- DataSourceCache.cs
- InstanceCollisionException.cs
- StringKeyFrameCollection.cs
- FrameworkReadOnlyPropertyMetadata.cs
- MonikerUtility.cs
- GlobalEventManager.cs
- MappingItemCollection.cs
- EnvironmentPermission.cs
- StringResourceManager.cs
- PerformanceCounter.cs
- SqlAliaser.cs
- XsdBuilder.cs