zathura_error_t ps_page_init(zathura_page_t* page, SpectrePage* spectre_page) { if (page == NULL) { return ZATHURA_ERROR_INVALID_ARGUMENTS; } zathura_document_t* document = zathura_page_get_document(page); SpectreDocument* spectre_document = zathura_document_get_data(document); SpectrePage* ps_page = spectre_document_get_page(spectre_document, zathura_page_get_index(page)); if (ps_page == NULL) { return ZATHURA_ERROR_UNKNOWN; } int page_width; int page_height; spectre_page_get_size(ps_page, &(page_width), &(page_height)); zathura_page_set_width(page, page_width); zathura_page_set_height(page, page_height); zathura_page_set_data(page, ps_page); return ZATHURA_ERROR_OK; }
zathura_error_t djvu_page_init(zathura_page_t* page, void* UNUSED(data)) { if (page == NULL) { return ZATHURA_ERROR_INVALID_ARGUMENTS; } zathura_document_t* document = zathura_page_get_document(page); djvu_document_t* djvu_document = zathura_document_get_data(document); ddjvu_status_t status; ddjvu_pageinfo_t page_info; unsigned int index = zathura_page_get_index(page); while ((status = ddjvu_document_get_pageinfo(djvu_document->document, index, &page_info)) < DDJVU_JOB_OK) { handle_messages(djvu_document, true); } if (status >= DDJVU_JOB_FAILED) { handle_messages(djvu_document, true); return ZATHURA_ERROR_UNKNOWN; } zathura_page_set_width(page, ZATHURA_DJVU_SCALE * page_info.width); zathura_page_set_height(page, ZATHURA_DJVU_SCALE * page_info.height); return ZATHURA_ERROR_OK; }