如何在我的应用程序中的Google云端硬盘中打开或下载PDF文件

时间:2016-11-20 15:00:48

标签: c# pdf ado.net google-drive-api

大家好我正在尝试创建一个可以从Google云端硬盘(我的驱动器)打开和/或下载PDF文件的应用程序(C#Windows窗体应用程序)

这是使用Adobe PDF Reader(AxAcroPDF)从硬盘打开PDF文件的示例方法:

    private void btn_OpenPDF_Click(object sender, EventArgs e)
    {
        OpenFileDialog ofd = new OpenFileDialog();
        ofd.Filter = "PDF Files (*.pdf)|*.pdf";
        ofd.Title = "Open an PDF file";

        if (ofd.ShowDialog() == DialogResult.OK)
        {
            apr_OpenPDF.src = ofd.FileName;
        }
    }

但是如何从Google云端硬盘阅读PDF文件?

感谢您的帮助,对不起我的英语

1 个答案:

答案 0 :(得分:0)

您可以使用Google Drive API打开,下载和转换文件。当用户从Google文档的“打开方式”菜单中选择应用时,云端硬盘会将用户重定向到所选应用程序的“打开网址”。来自用户浏览器的重定向请求在状态参数中包含以下重要信息:

  • 动作,开启。
  • 要使用的exportIds。

使用files.export方法下载和转换文件内容。

var fileId = "1ZdR3L3qP4Bkq8noWLJHSr_iBau0DNT4Kli4SxNc2YEo";
var request = driveService.Files.Export(fileId, "application/pdf");
var stream = new System.IO.MemoryStream();
// Add a handler which will be notified on progress changes.
// It will notify on each chunk download and when the
// download is completed or failed.
request.MediaDownloader.ProgressChanged +=
(IDownloadProgress progress) =>
{
switch(progress.Status)
{
case DownloadStatus.Downloading:
{
Console.WriteLine(progress.BytesDownloaded);
break;
}
case DownloadStatus.Completed:
{
Console.WriteLine("Download complete.");
break;
}
case DownloadStatus.Failed:
{
Console.WriteLine("Download failed.");
break;
}
}
};
request.Download(stream);