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); }
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); }
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); } }