При экспорте листов Google в PDF, как получить доступ к параметрам - PullRequest
1 голос
/ 28 сентября 2019

Что я хочу сделать, это экспортировать лист Google в формате PDF без отображения линий сетки.Я вижу примеры кода в Интернете о том, как получить доступ к этому параметру при использовании URL-адреса следующим образом:

  var url = "https://docs.google.com/spreadsheets/d/"+ssID+"/export"+
                                                        "?format=pdf&"+
                                                        "size=0&"+
                                                        "fzr=true&"+
                                                        "portrait=false&"+
                                                        "fitw=true&"+
                                                        "gridlines=false&"+
                                                        "printtitle=true&"+
                                                        "sheetnames=true&"+
                                                        "pagenum=CENTER&"+
                                                        "attachment=true";

Но я использую следующий код, который не использует URL-адрес:

       private static void DownloadfileFromGDrive(DriveService service, string fileId, string filePath)
       {
           var request = service.Files.Export(fileId, "application/pdf");

           using (var memoryStream = new MemoryStream())
           {
               request.MediaDownloader.ProgressChanged += (IDownloadProgress progress) =>
               {
                   switch (progress.Status)
                   {
                       case DownloadStatus.Downloading:
                           Debug.WriteLine(progress.BytesDownloaded);
                           break;
                       case DownloadStatus.Completed:
                           Debug.WriteLine("Download Complete");
                           break;
                       case DownloadStatus.Failed:
                           Debug.WriteLine("Download Failed");
                           break;
                   }
               };

               request.Download(memoryStream);

               using (var fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write))
               {
                   fileStream.Write(memoryStream.GetBuffer(), 0, memoryStream.GetBuffer().Length);
               };
           }
       }

Как я могу получить доступ к этим параметрам из моего кода?

1 Ответ

0 голосов
/ 28 сентября 2019

Как насчет этого ответа?

Когда параметр запроса для экспорта в формате PDF используется, к сожалению, service.Files.Export(fileId, "application/pdf") не может использоваться для этой ситуации.В этом случае необходимо загрузить файл PDF с помощью токена доступа.Конечная точка для этой ситуации следующая.

Конечная точка:

var url = "https://docs.google.com/spreadsheets/d/"+ssID+"/export"+
                                                      "?format=pdf&"+
                                                      "size=0&"+
                                                      "fzr=true&"+
                                                      "portrait=false&"+
                                                      "fitw=true&"+
                                                      "gridlines=false&"+
                                                      "printtitle=true&"+
                                                      "sheetnames=true&"+
                                                      "pagenum=CENTER&"+
                                                      "attachment=true&"+
                                                      "access_token=###"; // Added
  • Когда вы запрашиваете эту конечную точку как метод GET, данные PDF, которые отражают параметр запроса, могут бытьнайдено.
  • Конечно, вы также можете добавить токен доступа в заголовок запроса вместо параметра запроса.

Ссылка:

Если это не то направление, которое вы хотите, я прошу прощения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...