Exemplo n.º 1
0
        public static PDFJS_Promise <PDFDocument> LoadDocumentFromUrlAsync(string url)
        {
            PDFJS_Promise <PDFDocument> documentPromise = new PDFJS_Promise <PDFDocument>();

#if !UNITY_WEBGL || UNITY_EDITOR
            PDFJS_Library.Instance.PreparePromiseCoroutine(LoadDocumentFromWWWCoroutine, documentPromise, url).Start();
#else
            LoadDocumentParameters parameters = new LoadDocumentParameters();
            parameters.url = url;

            PDFJS_Library.Instance.PreparePromiseCoroutine(LoadDocumentCoroutine, documentPromise, parameters).Start();
#endif

            return(documentPromise);
        }
Exemplo n.º 2
0
        public static PDFJS_Promise <PDFDocument> LoadDocumentFromBytesAsync(byte[] bytes)
        {
            PDFJS_Promise <PDFDocument> documentPromise = new PDFJS_Promise <PDFDocument>();

#if !UNITY_WEBGL || UNITY_EDITOR
            documentPromise.HasFinished           = true;
            documentPromise.HasSucceeded          = true;
            documentPromise.HasReceivedJSResponse = true;
            documentPromise.Result = new PDFDocument(bytes);
#else
            LoadDocumentParameters parameters = new LoadDocumentParameters();
            parameters.bytes = bytes;

            PDFJS_Library.Instance.PreparePromiseCoroutine(LoadDocumentCoroutine, documentPromise, parameters).Start();
#endif

            return(documentPromise);
        }
Exemplo n.º 3
0
        private static IEnumerator LoadDocumentCoroutine(PDFJS_PromiseCoroutine promiseCoroutine, IPDFJS_Promise promise, object pars)
        {
            PDFJS_Promise <PDFDocument> documentPromise = promise as PDFJS_Promise <PDFDocument>;

            PDFLibrary.Instance.EnsureInitialized();
            while (!PDFLibrary.Instance.IsInitialized)
            {
                yield return(null);
            }

            LoadDocumentParameters parameters = pars as LoadDocumentParameters;

            if (!string.IsNullOrEmpty(parameters.url))
            {
                PDFJS_LoadDocumentFromURL(promise.PromiseHandle, parameters.url);
            }
            else
            {
                PDFJS_LoadDocumentFromBytes(promise.PromiseHandle, Convert.ToBase64String(parameters.bytes));
            }

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

            if (documentPromise.HasSucceeded)
            {
                int         documentHandle = int.Parse(promiseCoroutine.Promise.JSObjectHandle);
                PDFDocument document       = new PDFDocument(new IntPtr(documentHandle));

                documentPromise.Result      = document;
                documentPromise.HasFinished = true;

                promiseCoroutine.ExecuteThenAction(true, documentHandle);
            }
            else
            {
                documentPromise.Result      = null;
                documentPromise.HasFinished = true;

                promiseCoroutine.ExecuteThenAction(false, null);
            }
        }