static string DisplayPresentation(String presentationId = "1EAYk18WDjIG-zp_0vLm3CsfQh_i8eXc67Jo2O9C6Vuc") { SlidesService service = GetSlideServiceClient(); // Define request parameters. PresentationsResource.GetRequest request = service.Presentations.Get(presentationId); // Prints the number of slides and elements in a sample presentation: // https://docs.google.com/presentation/d/1EAYk18WDjIG-zp_0vLm3CsfQh_i8eXc67Jo2O9C6Vuc/edit Presentation presentation = request.Execute(); IList <Page> slides = presentation.Slides; Console.WriteLine("The presentation contains {0} slides:", slides.Count); for (var i = 0; i < slides.Count; i++) { var slide = slides[i]; Console.WriteLine("- Slide #{0} contains {1} elements.", i + 1, slide.PageElements.Count); } return(slides[0].ObjectId); }
/// <summary> /// Converts source file with specified upload id and file name into target format. /// Returns details about resulted file. /// </summary> /// <param name="model">Request model.</param> /// <returns>Resulted file details.</returns> public FileSafeResult Conversion([FromBody] ConversionOptions model) { SlidesService slidesService = new SlidesService(); var pathProcessor = new PathProcessor(model.id, model.FileName, model.FileName != null); var result = slidesService.ConvertFile( pathProcessor.DefaultSourceFile, pathProcessor.OutFolder, model.Format.ParseEnum <SlidesConversionFormat>() ); if (result == null) { return(pathProcessor.GetResultZipped()); } else { return(pathProcessor.GetResult(Path.GetFileName(result))); } }
private static void AddVideoBackground(string presentationId, string slideId) { SlidesService slidesService = GetSlideServiceClient(); // Add a slide at index 1 using the predefined "TITLE_AND_TWO_COLUMNS" layout // and the ID "MyNewSlide_001". List <Request> requests = new List <Request>(); Request request = new Request(); var slideRequest = new UpdatePagePropertiesRequest(); slideRequest.ObjectId = (slideId); slideRequest.Fields = "pageBackgroundFill"; slideRequest.PageProperties = new PageProperties() { PageBackgroundFill = new PageBackgroundFill() { StretchedPictureFill = new StretchedPictureFill() { ContentUrl = "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ4gPTyRGSqYQoObgXWS9JRdsqBI7sQfJfgaAwQiZR43GxrR2hjWJE-Hg" } } }; request.UpdatePageProperties = slideRequest; //slideRequest.InsertionIndex = (1); //slideRequest.SlideLayoutReference = (new LayoutReference() { PredefinedLayout = "TITLE_AND_TWO_COLUMNS" }); //request.UpdateShapeProperties = new UpdateShapePropertiesRequest() // slideRequest.UpdatePageProperties = new UpdatePagePropertiesRequest() {Fields= "pageBackgroundFill" , PageProperties = new PageProperties() { PageBackgroundFill = new PageBackgroundFill() { StretchedPictureFill = new StretchedPictureFill() { ContentUrl = "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ4gPTyRGSqYQoObgXWS9JRdsqBI7sQfJfgaAwQiZR43GxrR2hjWJE-Hg" } } } }; requests.Add(request); // If you wish to populate the slide with elements, add create requests here, // using the slide ID specified above. // Execute the request. BatchUpdatePresentationRequest body = new BatchUpdatePresentationRequest() { Requests = requests }; BatchUpdatePresentationResponse response = slidesService.Presentations.BatchUpdate(body, presentationId).Execute(); }
/// <summary> /// Merge source documents files with specified upload id into one file. /// Returns details about resulted file. /// </summary> /// <param name="model">Request model.</param> /// <returns>Resulted file details.</returns> public FileSafeResult Merger([FromBody] MergerOptions model) { SlidesService slidesService = new SlidesService(); var pathProcessor = new PathProcessor(model.idMain, null, false); PathProcessor pathProcessorStyleMaster = null; if (model.idStyleMaster != null && model.FileNameStyleMaster != null) { pathProcessorStyleMaster = new PathProcessor(model.idStyleMaster, model.FileNameStyleMaster, true); } var result = slidesService.Merger( pathProcessor.OutFolder, string.IsNullOrEmpty(model.Format) ? SlidesConversionFormat.pptx : model.Format.ParseEnum <SlidesConversionFormat>(), pathProcessorStyleMaster?.DefaultSourceFile, model.MainFiles.Select(fileName => Path.Combine(pathProcessor.SourceFolder, fileName)).ToArray() ); return(pathProcessor.GetResult(Path.GetFileName(result))); }
/// <summary> /// Removes password protection from file with specified upload id and file name. /// Method tries to remove readonly and view protection with specified password. /// </summary> /// <param name="model">Request model.</param> /// <returns>Resulted file details.</returns> public FileSafeResult Unlock([FromBody] UnProtectOptions model) { SlidesService slidesService = new SlidesService(); var pathProcessor = new PathProcessor(model.id, model.FileName, true); try { slidesService.UnlockFile( pathProcessor.DefaultSourceFile, pathProcessor.DefaultOutFile, model.Password ); return(pathProcessor.GetResult()); } catch (InvalidPasswordException) { return(new FileSafeResult { IsSuccess = false, idError = "InvalidPassword" }); } }
public void Main() { UserCredential credential; var folderId = ""; var fileId = ""; //string credPath = "token.json"; //credential = GoogleWebAuthorizationBroker.AuthorizeAsync( // credentialdriveSecrets, // Scopes, // "user", // CancellationToken.None, // new FileDataStore(credPath, true)).Result; //Console.WriteLine("Credential file saved to: " + credPath); using (var stream = new FileStream(@"D:\Downloads\credentials (5).json", FileMode.Open, FileAccess.Read)) { string credPath = "token.json"; credential = GoogleWebAuthorizationBroker.AuthorizeAsync( GoogleClientSecrets.Load(stream).Secrets, Scopes, "user", CancellationToken.None, new FileDataStore(credPath, true)).Result; Console.WriteLine("Credential file saved to: " + credPath); } var slidesService = new SlidesService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = ApplicationName, }); var fileMetadata = new File() { Name = "Tytul1", Parents = new List <string> { folderId } }; var createRequest = slidesService.Presentations.Create(new Presentation() { Title = "Tytul1", }); var pres = createRequest.Execute(); fileId = pres.PresentationId; // Create Drive API service. var service = new DriveService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = ApplicationName, }); // Retrieve the existing parents to remove var getRequest = service.Files.Get(fileId); getRequest.Fields = "parents"; var file = getRequest.Execute(); var previousParents = String.Join(",", file.Parents); // Move the file to the new folder var updateRequest = service.Files.Update(new File(), fileId); updateRequest.Fields = "id, parents"; updateRequest.AddParents = folderId; updateRequest.RemoveParents = previousParents; file = updateRequest.Execute(); fileMetadata = new File() { Name = "photo.pptx", Parents = new List <string> { folderId } }; FilesResource.CreateRequest request = service.Files.Create(fileMetadata); request.Fields = "id"; var file1 = request.Execute(); //= request.ResponseBody; // Define parameters of request. //FilesResource.ListRequest listRequest = service.Files.List(); //listRequest.PageSize = 10; //listRequest.Fields = "nextPageToken, files(id, name)"; //// List files. //IList<Google.Apis.Drive.v3.Data.File> files = listRequest.Execute() // .Files; //Console.WriteLine("Files:"); //if (files != null && files.Count > 0) //{ // foreach (var file in files) // { // Console.WriteLine("{0} ({1})", file.Name, file.Id); // } //} //else //{ // Console.WriteLine("No files found."); //} //Console.Read(); }
public static void NewInstance(int lectureId) { _lectureId = lectureId; string lectureAdress = Const.PresentationAdresses[lectureId]; string stringId = lectureAdress.Split('/')[5]; UserCredential credential = null; try { using (var stream = new FileStream("credentials.json", FileMode.Open, FileAccess.Read)) { // The file token.json stores the user's access and refresh tokens, and is created // automatically when the authorization flow completes for the first time. string credPath = "token.json"; credential = GoogleWebAuthorizationBroker.AuthorizeAsync( GoogleClientSecrets.Load(stream).Secrets, Scopes, "user", CancellationToken.None, new FileDataStore(credPath, true)).Result; Console.WriteLine("Credential file saved to: " + credPath); } } catch (Exception ex) { } // Create Google Slides API service. var service = new SlidesService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = ApplicationName, }); _slidesService = service; // Define request parameters. _presentationId = stringId; PresentationsResource.GetRequest request = service.Presentations.Get(_presentationId); // Prints the number of slides and elements in a sample presentation: // https://docs.google.com/presentation/d/1EAYk18WDjIG-zp_0vLm3CsfQh_i8eXc67Jo2O9C6Vuc/edit Presentation presentation = request.Execute(); IList <Page> slides = presentation.Slides; _pages = slides; var thumbnail = new PresentationsResource.PagesResource.GetThumbnailRequest(service, _presentationId, slides[0].ObjectId); Thumbnail v = thumbnail.Execute(); string imageUrl = v.ContentUrl; System.Net.HttpWebRequest webRequest = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(imageUrl); webRequest.AllowWriteStreamBuffering = true; webRequest.Timeout = 30000; System.Net.WebResponse webResponse = webRequest.GetResponse(); System.IO.Stream streamI = webResponse.GetResponseStream(); SendStream(streamI); }
private static void AddTextToSlide(string presentationId, string slideId, String textBoxId) { SlidesService slidesService = GetSlideServiceClient(); // Create a new square text box, using a supplied object ID. List <Request> requests = new List <Request>(); Dimension pt350 = new Dimension() { Magnitude = 350.0, Unit = "PT" }; var afflineTransform = new AffineTransform() { ScaleX = (1.0), ScaleY = (1.0), TranslateX = (350.0), TranslateY = (100.0), Unit = ("PT") }; Size size = new Size() { Height = (pt350), Width = (pt350) }; var pageElementProperties = new PageElementProperties() { PageObjectId = slideId, Size = size, Transform = afflineTransform }; requests.Add(new Request() { CreateShape = new CreateShapeRequest() { ObjectId = (textBoxId), ShapeType = ("TEXT_BOX"), ElementProperties = pageElementProperties } }); // Insert text into the box, using the object ID given to it. requests.Add(new Request() { InsertText = (new InsertTextRequest() { ObjectId = (textBoxId), InsertionIndex = (0), Text = ("New Box Text Inserted") }) }); // Execute the requests. BatchUpdatePresentationRequest body = new BatchUpdatePresentationRequest() { Requests = requests }; BatchUpdatePresentationResponse response = slidesService.Presentations.BatchUpdate(body, presentationId).Execute(); CreateShapeResponse createShapeResponse = response.Replies.First().CreateShape; Console.WriteLine("Created textbox with ID: " + createShapeResponse.ObjectId); }
private static void AddImageToSlide(string presentationId, string slideId, string textBoxId) { SlidesService slidesService = GetSlideServiceClient(); // Create a new square text box, using a supplied object ID. List <Request> requests = new List <Request>(); Dimension pt350 = new Dimension() { Magnitude = 350.0, Unit = "PT" }; var afflineTransform = new AffineTransform() { ScaleX = (1.0), ScaleY = (1.0), TranslateX = (350.0), TranslateY = (100.0), Unit = ("PT") }; Size size = new Size() { Height = (pt350), Width = (pt350) }; var pageElementProperties = new PageElementProperties() { PageObjectId = slideId, Size = size, Transform = afflineTransform }; //requests.Add(new Request() //{ // CreateShape = new CreateShapeRequest() // { // ObjectId = textBoxId, // ShapeType = "TEXT_BOX", // ElementProperties = pageElementProperties // } //}); // Insert text into the box, using the object ID given to it. requests.Add(new Request() { CreateImage = new CreateImageRequest() { ObjectId = textBoxId, Url = "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ4gPTyRGSqYQoObgXWS9JRdsqBI7sQfJfgaAwQiZR43GxrR2hjWJE-Hg", ElementProperties = pageElementProperties } }); // Execute the requests. BatchUpdatePresentationRequest body = new BatchUpdatePresentationRequest() { Requests = requests }; BatchUpdatePresentationResponse response = slidesService.Presentations.BatchUpdate(body, presentationId).Execute(); CreateImageResponse createShapeResponse = response.Replies.First().CreateImage; Console.WriteLine("Created textbox with ID: " + createShapeResponse.ObjectId); }
public GooglePresentationGenerator(SlidesService slidesService) { m_slidesService = slidesService ?? throw new ArgumentNullException(nameof(slidesService)); }