Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- KeyboardNavigation.cs
- StringUtil.cs
- ConsumerConnectionPointCollection.cs
- TreeNodeCollection.cs
- TemplateKeyConverter.cs
- ClockGroup.cs
- SymmetricKey.cs
- EmbeddedMailObject.cs
- Translator.cs
- DataFormat.cs
- CompilerState.cs
- ListSourceHelper.cs
- Focus.cs
- ResourceDictionaryCollection.cs
- XmlSchemaAll.cs
- QilScopedVisitor.cs
- LocationUpdates.cs
- SafeMarshalContext.cs
- AccessKeyManager.cs
- UnionExpr.cs
- DataListItemEventArgs.cs
- AutomationPropertyInfo.cs
- ToolStripItemEventArgs.cs
- SingleConverter.cs
- SmtpMail.cs
- ClipboardProcessor.cs
- errorpatternmatcher.cs
- ToolStripItemBehavior.cs
- SchemaTableOptionalColumn.cs
- InstanceDescriptor.cs
- Grant.cs
- Bold.cs
- WebPartMinimizeVerb.cs
- EventLogPermissionEntryCollection.cs
- XmlSchemaObjectCollection.cs
- ServiceOperationHelpers.cs
- ContentTypeSettingDispatchMessageFormatter.cs
- HttpResponseInternalWrapper.cs
- SafeCancelMibChangeNotify.cs
- IsolationInterop.cs
- TriState.cs
- UnsafeNativeMethods.cs
- HttpEncoderUtility.cs
- PlanCompiler.cs
- InvalidOleVariantTypeException.cs
- _LocalDataStoreMgr.cs
- KnowledgeBase.cs
- ImmutableCommunicationTimeouts.cs
- ApplicationFileParser.cs
- ProviderUtil.cs
- OdbcEnvironmentHandle.cs
- GlyphRun.cs
- CommentEmitter.cs
- SQLBinaryStorage.cs
- OracleException.cs
- Column.cs
- Documentation.cs
- hresults.cs
- TextEndOfParagraph.cs
- ProviderUtil.cs
- RecognizedAudio.cs
- ContentPlaceHolder.cs
- PromptBuilder.cs
- DesignerVerb.cs
- RankException.cs
- Matrix.cs
- AssociatedControlConverter.cs
- SelectionBorderGlyph.cs
- EventLogTraceListener.cs
- CheckedPointers.cs
- XPathAncestorQuery.cs
- FileIOPermission.cs
- UidManager.cs
- IPPacketInformation.cs
- XslTransform.cs
- SapiAttributeParser.cs
- DocumentViewerConstants.cs
- StaticContext.cs
- QualifierSet.cs
- ModelEditingScope.cs
- VerificationException.cs
- CodeCommentStatementCollection.cs
- NativeMethodsCLR.cs
- Line.cs
- ImageMap.cs
- BindingSourceDesigner.cs
- OutputCacheSettingsSection.cs
- WorkflowDesigner.cs
- BaseProcessor.cs
- TraceContext.cs
- SafeFindHandle.cs
- ContractAdapter.cs
- SiteOfOriginContainer.cs
- DeviceContext2.cs
- DataStreamFromComStream.cs
- UndirectedGraph.cs
- CodeTypeDeclaration.cs
- ChangeInterceptorAttribute.cs
- PersonalizationStateInfoCollection.cs
- DataListItemEventArgs.cs