FEMCacheItem( GlyphTypeface glyphTypeface, BasePackagingPolicy packagingPolicy ) { if (null == packagingPolicy) { throw new ArgumentNullException("packagingPolicy"); } if (null == glyphTypeface) { throw new ArgumentNullException("glyphTypeface"); } _packagingPolicy = packagingPolicy; _streamWritten = false; // // Acquire the stream that will be used to save the font. // if the font is Image only we do not need a font stream // since each glyph run will be saved in its own image stream // _fontEmbeddingManager = new FontEmbeddingManager(); _glyphTypeface = glyphTypeface; CodeAccessPermission uriDiscoveryPermission = glyphTypeface.CriticalUriDiscoveryPermission; if (uriDiscoveryPermission != null) { uriDiscoveryPermission.Assert(); } try { _fontUri = glyphTypeface.FontUri; } finally { if (uriDiscoveryPermission != null) { CodeAccessPermission.RevertAssert(); } } Uri fontUri = new Uri(_fontUri.GetComponents(UriComponents.SerializationInfoString, UriFormat.SafeUnescaped), UriKind.RelativeOrAbsolute); string fontUriAsString = fontUri.GetComponents(UriComponents.SerializationInfoString, UriFormat.UriEscaped); _fontResourceStream = packagingPolicy.AcquireResourceStreamForXpsFont(fontUriAsString); // // Aquiring the Resource stream will instantiate the font // and add the require resource relationship // _curPageRelAdded = true; }
XpsFontSubsetter( BasePackagingPolicy packagingPolicy ) { if (null == packagingPolicy) { throw new ArgumentNullException("packagingPolicy"); } _packagingPolicy = packagingPolicy; _fontEmbeddingManagerCache = new Dictionary <Uri, FEMCacheItem>(3, MS.Internal.UriComparer.Default); }
XpsSerializationManagerAsync( BasePackagingPolicy packagingPolicy, bool batchMode ) : base(packagingPolicy, batchMode) { _dispatcher = Dispatcher.CurrentDispatcher; _serializationOperationCanceled = false; this._currentPageXmlWriter = null; this._isBatchWorkItemInProgress = false; _operationStack = new Stack(); _batchOperationQueue = new Queue(); XpsDriverDocEventManager xpsDocEventManager = base.GetXpsDriverDocEventManager(); if (xpsDocEventManager != null) { XpsSerializationCompletedInternal += new XpsSerializationCompletedEventHandler(xpsDocEventManager.ForwardSerializationCompleted); } }
XpsSerializationManager( BasePackagingPolicy packagingPolicy, bool batchMode ) : base() { this._packagingPolicy = packagingPolicy; this._isBatchMode = batchMode; this._isSimulating = false; this._simulator = null; _reachSerializationServices = new ReachSerializationServices(); _visualSerializationService = new VisualSerializationService(this); _reachSerializationServices.RegisterNameSpacesForTypes(); _reachSerializationServices.RegisterSerializableDependencyPropertiesForReachTypes(); _reachSerializationServices.RegisterNoneSerializableClrPropertiesForReachTypes(); XpsResourcePolicy resourcePolicy = new XpsResourcePolicy(XpsResourceSharing.NoResourceSharing); resourcePolicy.RegisterService(new XpsImageSerializationService(), typeof(XpsImageSerializationService)); resourcePolicy.RegisterService(new XpsFontSerializationService(packagingPolicy), typeof(XpsFontSerializationService)); this._resourcePolicy = resourcePolicy; _documentNumber = 0; _pageNumber = 0; _documentStartState = false; _pageStartState = false; XpsPackagingPolicy xpsPackagingPolicy = _packagingPolicy as XpsPackagingPolicy; if (xpsPackagingPolicy != null) { _xpsDocEventManager = new XpsDriverDocEventManager(this); xpsPackagingPolicy.PackagingProgressEvent += new PackagingProgressEventHandler(_xpsDocEventManager.ForwardPackagingProgressEvent); this.XpsSerializationPrintTicketRequiredOnXpsDriverDocEvent += new XpsSerializationPrintTicketRequiredEventHandler(_xpsDocEventManager.ForwardUserPrintTicket); } }
XpsFontSerializationService( BasePackagingPolicy packagingPolicy ) { _fontSubsetter = new XpsFontSubsetter(packagingPolicy); }