使用云端硬盘API更新Google文档-格式丢失

时间:2018-06-25 17:24:18

标签: java google-drive-api

我正在尝试开发一个Java程序,该程序将从Google云端硬盘中检索文件,然后尝试“按原样”重新上传。但是,在此过程中,它会丢失格式。

这是我检索文件的方式:

private static java.io.File downloadFile(File uploadedFile)
        throws IOException {
    java.io.File downloadedFile = new java.io.File(parentDir, uploadedFile.getTitle() + UUID.randomUUID().toString());

    try (OutputStream out = new FileOutputStream(downloadedFile)) {
        drive.files().export(uploadedFile.getId(), "text/html").executeMediaAndDownloadTo(out);
    }

    return downloadedFile;
}

这是我更新文件的方式:

private static File updateFile(Drive service, String fileId, File file, java.io.File newContent) throws IOException {
        FileContent mediaContent = new FileContent("text/html", newContent);
        return service.files().update(fileId, file, mediaContent).execute();
}

这是我将这些方法(漂亮的假人)组合在一起的方法:

java.io.File downloaded = downloadFile(files.get(0));
updateFile(drive, files.get(0).getId(), files.get(0), downloaded);

这是之前和之后的文件: before-after

当我将Google文件导出并重新导入为RTF或PDF时,此过程很好,但是我确实需要可编辑的格式。我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

这是预期的结果。 PDF是确保保留格式的一种方法。对于Google文档来说,就不那么多了。