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); }
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)); }
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); }
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); } }