void PageInfo::Update(GP<DjVuImage> pImage) { if (pImage == NULL) return; if (!bDecoded) { nInitialRotate = GetTotalRotate(pImage, 0); szPage = CSize(pImage->get_width(), pImage->get_height()); if (nInitialRotate % 2 != 0) swap(szPage.cx, szPage.cy); nDPI = pImage->get_dpi(); if (szPage.cx <= 0 || szPage.cy <= 0) { szPage.cx = 100; szPage.cy = 100; nDPI = 100; } bHasText = !!(pImage->get_djvu_file()->text != NULL); bDecoded = true; } try { if (bHasText && !bTextDecoded) DecodeText(pImage->get_text()); } catch (GException&) { } try { if (!bAnnoDecoded) DecodeAnno(pImage->get_anno()); } catch (GException&) { } }