zathura_error_t djvu_document_save_as(zathura_document_t* document, djvu_document_t* djvu_document, const char* path) { if (document == NULL || djvu_document == NULL || path == NULL) { return ZATHURA_ERROR_INVALID_ARGUMENTS; } FILE* fp = fopen(path, "w"); if (fp == NULL) { return ZATHURA_ERROR_UNKNOWN; } const char* extension = get_extension(path); ddjvu_job_t* job = NULL; if (extension != NULL && g_strcmp0(extension, "ps") == 0) { job = ddjvu_document_print(djvu_document->document, fp, 0, NULL); } else { job = ddjvu_document_save(djvu_document->document, fp, 0, NULL); } while (ddjvu_job_done(job) != true) { handle_messages(djvu_document, true); } fclose(fp); return ZATHURA_ERROR_OK; }
bool Model::DjVuDocument::save(const QString& filePath, bool withChanges) const { Q_UNUSED(withChanges); QMutexLocker mutexLocker(&m_mutex); FILE* file = fopen(QFile::encodeName(filePath), "w+"); if(file == 0) { return false; } ddjvu_job_t* job = ddjvu_document_save(m_document, file, 0, 0); while(!ddjvu_job_done(job)) { clearMessageQueue(m_context, true); } fclose(file); return !ddjvu_job_error(job); }