Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HierarchicalDataSourceDesigner.cs
- HtmlControl.cs
- HtmlControlPersistable.cs
- COM2EnumConverter.cs
- DataGridViewRowHeaderCell.cs
- StreamSecurityUpgradeAcceptor.cs
- Sequence.cs
- AutoResetEvent.cs
- CustomAttributeBuilder.cs
- XLinq.cs
- InputProcessorProfiles.cs
- TextFormattingConverter.cs
- CodeEventReferenceExpression.cs
- FontFaceLayoutInfo.cs
- _CookieModule.cs
- Executor.cs
- OdbcErrorCollection.cs
- OdbcUtils.cs
- EdmToObjectNamespaceMap.cs
- IndentTextWriter.cs
- CommonObjectSecurity.cs
- SettingsProviderCollection.cs
- CursorInteropHelper.cs
- BaseHashHelper.cs
- MasterPageParser.cs
- XmlException.cs
- ProxyAttribute.cs
- MarkupExtensionParser.cs
- RequestCacheEntry.cs
- RootAction.cs
- StylusButtonCollection.cs
- ProcessModelSection.cs
- NavigatorOutput.cs
- TransportContext.cs
- VisualStyleRenderer.cs
- SqlClientFactory.cs
- WebResourceUtil.cs
- Stroke.cs
- CodeExpressionCollection.cs
- DateTimeSerializationSection.cs
- Image.cs
- SystemNetworkInterface.cs
- DataGridViewHeaderCell.cs
- DateTimeConverter.cs
- DialogResultConverter.cs
- DataGridViewSelectedRowCollection.cs
- PackageDocument.cs
- SudsParser.cs
- HttpDebugHandler.cs
- SessionParameter.cs
- InterleavedZipPartStream.cs
- TextComposition.cs
- GlobalItem.cs
- Int16Converter.cs
- XamlTreeBuilderBamlRecordWriter.cs
- TextParagraphCache.cs
- CompositeFontInfo.cs
- ValidateNames.cs
- DataGridViewImageColumn.cs
- AppSettingsExpressionBuilder.cs
- Table.cs
- BooleanAnimationUsingKeyFrames.cs
- EntityDataSourceStatementEditorForm.cs
- StreamInfo.cs
- DataBindingsDialog.cs
- ClientSideProviderDescription.cs
- SoapHeaderAttribute.cs
- DBDataPermissionAttribute.cs
- ColumnResizeUndoUnit.cs
- Converter.cs
- AsyncContentLoadedEventArgs.cs
- DateTimeParse.cs
- DependencyPropertyKind.cs
- SingleAnimationBase.cs
- assertwrapper.cs
- DbProviderSpecificTypePropertyAttribute.cs
- ContextBase.cs
- InvokeProviderWrapper.cs
- ActiveDocumentEvent.cs
- TextServicesContext.cs
- TextEmbeddedObject.cs
- ThemeDirectoryCompiler.cs
- PackageStore.cs
- XmlHierarchyData.cs
- AstNode.cs
- AudioLevelUpdatedEventArgs.cs
- ComplexTypeEmitter.cs
- WebPartZoneDesigner.cs
- SqlServices.cs
- XsdValidatingReader.cs
- UnSafeCharBuffer.cs
- StandardToolWindows.cs
- ScrollItemPatternIdentifiers.cs
- StringSource.cs
- MarkerProperties.cs
- ProxyWebPart.cs
- StorageMappingItemLoader.cs
- TextComposition.cs
- panel.cs
- DeviceFilterEditorDialog.cs