c# - 将 Google 表格导出为 PDF 时,如何访问参数

标签 c# google-drive-api

我想要做的是将 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);
               };
           }
       }

如何从我的代码中访问这些参数?

最佳答案

这个答案怎么样?

不幸的是,当使用导出为 PDF 格式的查询参数时,service.Files.Export(fileId, "application/pdf") 不能用于这种情况。在这种情况下,需要使用访问 token 下载 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 方法时,可以检索反射(reflect)查询参数的 PDF 数据。
  • 当然,你也可以在请求头中加入access token而不是query参数。

引用:

如果这不是您想要的方向,我深表歉意。

关于c# - 将 Google 表格导出为 PDF 时,如何访问参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58141734/

相关文章:

c# - 无法安装windows服务

javascript - knockout 输入绑定(bind)不起作用

c# - Asp.Net Core 中的 SSL 不起作用

google-apps-script - 是否可以使用 Apps 脚本添加归因于 Google 文档中特定文本的评论?

c# - 如何让 LinqToXSD 正确输出 namespace 前缀声明?

c# - 有效地删除 c# 中的重复 xml 元素

java - Java 版 Google Drive 推送通知授权

javascript - Google 云端硬盘应用程序 : How can i get my HTML file to read a varitable defined in code. gs?

google-api - 如何调用 Google API

google-drive-api - 如何使用 PyGSheets v2 在特定文件夹/目录中创建新工作表?