public static Stream GenerateBulkFromTemplate(DocumentTemplate dt, DiscoDataContext Database, User CreatorUser, DateTime Timestamp, bool InsertBlankPages, params IAttachmentTarget[] DataObjects) { if (DataObjects.Length > 0) { List<Stream> generatedPdfs = new List<Stream>(DataObjects.Length); using (var state = DocumentState.DefaultState()) { foreach (var d in DataObjects) { generatedPdfs.Add(dt.GeneratePdf(Database, d, CreatorUser, Timestamp, state, true)); state.SequenceNumber++; state.FlushScopeCache(); } } if (generatedPdfs.Count == 1) { return generatedPdfs[0]; } else { Stream bulkPdf = Utilities.JoinPdfs(InsertBlankPages, generatedPdfs); foreach (Stream singlePdf in generatedPdfs) singlePdf.Dispose(); return bulkPdf; } } return null; }