internal void SaveToStream(TPdfStream DataStream, TXRefSection XRef, TAcroFormRecord AcroForm) { XRef.SetObjectOffset(Id, DataStream); TIndirectRecord.SaveHeader(DataStream, Id); BeginDictionary(DataStream); SaveKey(DataStream, TPdfToken.TypeName, TPdfTokens.GetString(TPdfToken.PagesName)); SaveKids(DataStream, XRef); SaveKey(DataStream, TPdfToken.CountName, FList.Count); WriteLine(DataStream, TPdfTokens.GetString(TPdfToken.ResourcesName)); Resources.SaveResourceDesc(DataStream, XRef, true); EndDictionary(DataStream); TIndirectRecord.SaveTrailer(DataStream); int aCount = FList.Count; for (int i = 0; i < aCount; i++) { TPageInfo PInfo = FList[i]; TPageRecord.SaveToStream(DataStream, Id, PInfo, AcroForm, XRef, i, aCount); PInfo.Annots.SaveToStream(DataStream, XRef); } Resources.SaveObjects(DataStream, XRef); }
private static void Saven2(TPdfStream DataStream, TXRefSection XRef, TPdfVisibleSignature VSig, int n2Id) { string s = String.Format(CultureInfo.InvariantCulture, "{0} {1} {2} {3} {4} {5} cm ", VSig.Rect.Width, 0, 0, VSig.Rect.Height, 0, 0); string StreamContents = "q " + s + TPdfTokens.GetString(TPdfToken.ImgPrefix) + "0 Do Q"; XRef.SetObjectOffset(n2Id, DataStream); TIndirectRecord.SaveHeader(DataStream, n2Id); BeginDictionary(DataStream); WriteCommonXObject(DataStream, VSig.Rect, StreamContents); TPdfResources Resources = new TPdfResources(null, false, null); using (MemoryStream ImgStream = new MemoryStream(VSig.ImageData)) { Resources.AddImage(null, ImgStream, FlxConsts.NoTransparentColor, false); } SaveProcSet(DataStream, XRef, true); SaveResourcesImgXObject(DataStream, XRef, Resources); EndDictionary(DataStream); WriteStream(DataStream, StreamContents); TIndirectRecord.SaveTrailer(DataStream); Resources.SaveObjects(DataStream, XRef); }