Ejemplo n.º 1
0
        public static PDFJS_Promise <PDFPage> LoadPageAsync(PDFDocument document, int pageIndex)
        {
            PDFJS_Promise <PDFPage> pagePromise = new PDFJS_Promise <PDFPage>();

#if UNITY_WEBGL && !UNITY_EDITOR
            LoadPageParameters parameters = new LoadPageParameters(document, pageIndex);

            PDFJS_Library.Instance.PreparePromiseCoroutine(LoadPageCoroutine, pagePromise, parameters).Start();
#else
            pagePromise.HasFinished           = true;
            pagePromise.HasSucceeded          = true;
            pagePromise.HasReceivedJSResponse = true;
            pagePromise.Result = document.GetPage(pageIndex);
#endif

            return(pagePromise);
        }
Ejemplo n.º 2
0
        private static IEnumerator LoadPageCoroutine(PDFJS_PromiseCoroutine promiseCoroutine, IPDFJS_Promise promise, object par)
        {
            PDFLibrary.Instance.EnsureInitialized();
            while (!PDFLibrary.Instance.IsInitialized)
            {
                yield return(null);
            }

            PDFJS_Promise <PDFPage> pagePromise = promise as PDFJS_Promise <PDFPage>;

            LoadPageParameters parameters = par as LoadPageParameters;

            PDFJS_LoadPage(promise.PromiseHandle, parameters.document.NativePointer.ToInt32(), parameters.pageIndex + 1);

            while (!pagePromise.HasReceivedJSResponse)
            {
                yield return(null);
            }

            if (pagePromise.HasSucceeded)
            {
                int     pageHandle = int.Parse(pagePromise.JSObjectHandle);
                PDFPage page       = new PDFPage(parameters.document, new IntPtr(pageHandle), parameters.pageIndex);

                pagePromise.Result      = page;
                pagePromise.HasFinished = true;

                promiseCoroutine.ExecuteThenAction(true, page);
            }
            else
            {
                pagePromise.Result      = null;
                pagePromise.HasFinished = true;

                promiseCoroutine.ExecuteThenAction(false, null);
            }
        }