Java 使用Google Drive API v2从Gdoc版本导出PDF

Java 使用Google Drive API v2从Gdoc版本导出PDF,java,google-drive-api,Java,Google Drive Api,编辑:除pdf之外的所有内容似乎都给出了正确的修订。只有当我请求pdf时,我才能获得最新版本,而不管我通过的版本id如何 这应该很简单,但当我尝试下载时,我总是得到头部修订版,而不是以前的版本 这是我的一段代码 RevisionList revList = service.revisions().list(fileId) .setMaxResults(10) .execute(); // Got all revisions here List<Revi

编辑:除pdf之外的所有内容似乎都给出了正确的修订。只有当我请求pdf时,我才能获得最新版本,而不管我通过的版本id如何


这应该很简单,但当我尝试下载时,我总是得到头部修订版,而不是以前的版本

这是我的一段代码

RevisionList revList = service.revisions().list(fileId)
         .setMaxResults(10)
         .execute();
// Got all revisions here
List<Revision> revisions = revList.getItems();
if (revisions == null || revisions.size() == 0) {
    System.out.println("No revisions found.");
} else {
    // Got the first revision I made to the file
    Revision rev = revisions.get(0);
    // Date is in 2015 for this particular revision
    String date = rev.getModifiedDate().toString();
    String filePath = System.getProperty("user.dir") + "/" +
            date.substring(0, date.indexOf('T'))+".pdf";            
    OutputStream out = new FileOutputStream(filePath);
    MediaHttpDownloader downloader =
        new MediaHttpDownloader(HTTP_TRANSPORT, service.getRequestFactory().getInitializer());
    downloader.setProgressListener(new MediaHttpDownloaderProgressListener() {
        public void progressChanged(MediaHttpDownloader downloader) {
            switch (downloader.getDownloadState()) {
                case MEDIA_IN_PROGRESS:
                    System.out.println(downloader.getProgress());
                    break;
                case MEDIA_COMPLETE:
                    System.out.println("Download is complete!");
            }
        }
    });
    downloader.download(new GenericUrl(rev.getExportLinks().get("application/pdf")), out);
}
RevisionList revList=service.revisions().list(fileId)
.setMaxResults(10)
.execute();
//这里有所有的修改
列表修订=revList.getItems();
如果(修订==null | |修订.size()==0){
System.out.println(“未找到修订”);
}否则{
//我对文件做了第一次修改
修订版本=修订版本。获取(0);
//本次修订的日期为2015年
字符串日期=rev.getModifiedDate().toString();
字符串filePath=System.getProperty(“user.dir”)+“/”+
date.substring(0,date.indexOf('T'))+“.pdf”;
OutputStream out=新文件OutputStream(文件路径);
MediaHttpDownloader下载程序=
新的MediaHttpDownloader(HTTP_传输,service.getRequestFactory().getInitializer());
setProgressListener(新的MediaHttpDownloaderProgressListener(){
public void progressChanged(MediaHttpDownloader下载程序){
开关(downloader.getDownloadState()){
正在进行的案例媒体:
System.out.println(downloader.getProgress());
打破
案例媒体完成:
System.out.println(“下载完成了!”);
}
}
});
downloader.download(新的GenericUrl(rev.getExportLinks().get(“application/pdf”)),out);
}

看起来这与修订id被忽略的地方也提到的有关。@AL-yes,你说得对,这就是问题所在。自从它被养大已经一年多了。v3明确禁止获取gdoc修订。我可能不得不重新考虑我的项目。不过还是要谢谢你。我的代码中也有同样的行为,对于一个有五个版本的google文档,每个PDF导出链接总是检索最新的文档版本。它可以很好地使用另一个MIMETYPE,比如docx或png。