Обновите Google Doc с помощью Drive API - формат потерян - PullRequest
0 голосов
/ 25 июня 2018

Я пытаюсь разработать программу на 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 голосов
/ 26 июня 2018

Это ожидаемый результат. PDF-файлы являются одним из способов сохранения форматов. Для Документов Google не так уж много.

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