public static IEnumerator UpdatePageWithNewTexture(PDFDocument document, int pageIndex, PDFPageTextureHolder[] pageTextureHolderList, int width, int height) { PDFJS_Promise <PDFPage> pagePromise = document.GetPageAsync(pageIndex); while (!pagePromise.HasFinished) { yield return(null); } if (pagePromise.HasSucceeded) { PDFJS_Promise <Texture2D> renderPromise = PDFRenderer.RenderPageToTextureAsync(pagePromise.Result, width, height); pageTextureHolderList[pageIndex].m_RenderingPromise = renderPromise; while (!renderPromise.HasFinished) { yield return(null); } pageTextureHolderList[pageIndex].m_RenderingPromise = null; pageTextureHolderList[pageIndex].m_RenderingStarted = false; if (renderPromise.HasSucceeded) { if (pageTextureHolderList[pageIndex].Texture != null) { UnityEngine.Object.DestroyImmediate(pageTextureHolderList[pageIndex].Texture); Resources.UnloadAsset(pageTextureHolderList[pageIndex].Texture); pageTextureHolderList[pageIndex].Texture = null; } if (pageTextureHolderList[pageIndex].m_Visible) { pageTextureHolderList[pageIndex].Texture = renderPromise.Result; } else { UnityEngine.Object.DestroyImmediate(renderPromise.Result); Resources.UnloadAsset(renderPromise.Result); renderPromise.Result = null; } } } else { pageTextureHolderList[pageIndex].m_RenderingPromise = null; pageTextureHolderList[pageIndex].m_RenderingStarted = false; } }
IEnumerator Start() { Debug.Log("WebGLTest: "); PDFJS_Promise <PDFDocument> documentPromise = PDFDocument.LoadDocumentFromUrlAsync("https://crossorigin.me/http://www.pdf995.com/samples/pdf.pdf"); while (!documentPromise.HasFinished) { yield return(null); } if (!documentPromise.HasSucceeded) { Debug.Log("Fail: documentPromise"); yield break; } else { Debug.Log("Success: documentPromise"); } PDFDocument document = documentPromise.Result; PDFJS_Promise <PDFPage> pagePromise = document.GetPageAsync(0); while (!pagePromise.HasFinished) { yield return(null); } if (!pagePromise.HasSucceeded) { Debug.Log("Fail: pagePromise"); yield break; } else { Debug.Log("Success: pagePromise"); } PDFPage page = pagePromise.Result; PDFJS_Promise <Texture2D> renderPromise = PDFRenderer.RenderPageToTextureAsync(page, (int)page.GetPageSize().x, (int)page.GetPageSize().y); while (!renderPromise.HasFinished) { yield return(null); } if (!renderPromise.HasSucceeded) { Debug.Log("Fail: pagePromise"); yield break; } Texture2D renderedPageTexture = renderPromise.Result; (m_RawImage.transform as RectTransform).sizeDelta = new Vector2(renderedPageTexture.width, renderedPageTexture.height); m_RawImage.texture = renderedPageTexture; yield return(new WaitForSeconds(2.5f)); }