Exemple #1
0
        private void SavePatterns(TPdfStream DataStream, TXRefSection XRef)
        {
			int HatchCount = HatchPatterns.Count;
			int ImageTextureCount = ImageTexturePatterns.Count;
			int GradientCount = GradientPatterns.Count;
            if (HatchCount + GradientCount + ImageTextureCount <= 0) return;
            TPdfBaseRecord.WriteLine(DataStream, TPdfTokens.GetString(TPdfToken.PatternName));
			TDictionaryRecord.BeginDictionary(DataStream);
			for (int i = 0; i < HatchCount; i++)
			{
				HatchPatterns[i].WritePattern(DataStream, XRef);
			}

			for (int i = 0; i < ImageTextureCount; i++)
			{
				ImageTexturePatterns[i].WritePattern(DataStream, XRef);
			}
            
            for (int i = 0; i < GradientCount; i++)
            {
                GradientPatterns[i].WritePattern(DataStream, XRef);
            }

            TDictionaryRecord.EndDictionary(DataStream);
            if (HatchCount <= 0) return;

            //Pattern color space
            TPdfBaseRecord.WriteLine(DataStream, TPdfTokens.GetString(TPdfToken.ColorSpaceName));
            TDictionaryRecord.BeginDictionary(DataStream);
            PatternColorSpaceId = TPdfHatch.WriteColorSpace(DataStream, XRef);
            TDictionaryRecord.EndDictionary(DataStream);
        }
Exemple #2
0
        public int CompareTo(object obj)
        {
            TPdfHatch p2 = obj as TPdfHatch;

            if (p2 == null)
            {
                return(obj.GetType().GUID.CompareTo(this.GetType().GUID));
            }
            return(PatternStyle.CompareTo(p2.PatternStyle));
        }
Exemple #3
0
        internal void SelectPattern(TPdfStream DataStream, HatchStyle aStyle, Color aColor)
        {
            TPdfHatch SearchPattern = new TPdfHatch(HatchPatterns.Count, aStyle);
            int Index = HatchPatterns.BinarySearch(0, HatchPatterns.Count, SearchPattern, null);  //Only BinarySearch compatible with CF.

            if (Index < 0)
                HatchPatterns.Insert(~Index, SearchPattern);
            else SearchPattern = HatchPatterns[Index];

            SearchPattern.Select(DataStream, aColor);
        }
Exemple #4
0
        internal void SaveObjects(TPdfStream DataStream, TXRefSection XRef)
        {
            if (Fonts.Count > 0)
            {
                foreach (string s in Fonts.OrderedKeys)
                {
					TPdfFont pf = ((TPdfFont)Fonts[s]);
					if (pf.UsedInDoc) pf.WriteFontObject(DataStream, XRef);
                }
            }

            int aCount = Images.Count;
            for (int i = 0; i < aCount; i++)
            {
                Images[i].WriteImageObject(DataStream, XRef);
            }

            aCount = HatchPatterns.Count;
            for (int i = 0; i < aCount; i++)
            {
                HatchPatterns[i].WritePatternObject(DataStream, XRef);
            }

            if (aCount > 0)
            {
                TPdfHatch.WriteColorSpaceObject(DataStream, XRef, PatternColorSpaceId);
            }

			aCount = ImageTexturePatterns.Count;
			for (int i = 0; i < aCount; i++)
			{
				ImageTexturePatterns[i].WritePatternObject(DataStream, XRef);
			}

            aCount = GradientPatterns.Count;
            for (int i = 0; i < aCount; i++)
            {
                GradientPatterns[i].WritePatternObject(DataStream, XRef);
            }

            aCount = Functions.Count;
            for (int i = 0; i < aCount; i++)
            {
                Functions[i].WriteFunctionObject(DataStream, XRef, FCompress);
            }

            aCount = GStates.Count;
            for (int i = 0; i < aCount; i++)
            {
                GStates[i].WriteGStateObject(DataStream, XRef);
            }
        }