コード例 #1
0
        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;
            }
        }
コード例 #2
0
    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));
    }