Unity PDFRenderer

Unity PDFRenderer 一.PDFRenderer API1.PDFDocument该类表示一个 PDF 文档。它允许你将某一页渲染到一个新的 Texture2D或者渲染到已有的 Texture2D 中同时也可以获取文档及页面的相关信息。2.构造器PDFDocument(byte[] buffer, string password) PDFDocument(string filePath, string password)即使文档没有加密password参数也可以为null。3.属性bool IsValid该属性用于判断文档是否有效。以下情况会导致无效buffer 或文件路径无效文档被加密但未提供密码提供的密码不正确4.方法(1)获取页数int GetPageCount()(2)获取指定页面的尺寸信息。int GetPageWidth(int pageIndex) int GetPageHeight(int pageIndex) Vector2 GetPageSize(int pageIndex)(3)根据指定的渲染设置将页面渲染到一个新的Texture2D中。Texture2D RenderPageToTexture(int pageIndex, RenderSettings renderSettings) Texture2D RenderPageToTexture(int pageIndex, int width, int height, RenderSettings renderSettings)注意使用完该纹理后需要手动释放资源例如DestroyImmediate(tex); Resources.UnloadAsset(tex);(4)将页面渲染到一个已有的纹理中。void RenderPageToExistingTexture(int pageIndex, Texture2D texture, RenderSettings renderSettings)为了获得更快的渲染速度建议使用TextureFormat.RGBA32不使用 MipMap如果不满足上述条件PDFRenderer 会采用另一种兼容更多格式的渲染方式但速度会慢很多。推荐的纹理创建方式Texture2D tex new Texture2D(width, height, TextureFormat.RGBA32, false);5.例子PDFDocument pdfDocument new PDFDocument(pdf_sample.pdf, ); Texture2D tex pdfDocument.Renderer.RenderPageToTexture(3, 1024, 1024); GetComponentMeshRenderer().material.mainTexture tex;二.PDFViewer官方预制好的组件1.Loading optionsPDFViewer 提供了多种加载选项以便指定从何处加载要显示的 PDF 文件。(1)Loadingfrom the web采用这种加载模式时PDFViewer 会从网络加载 PDF 文件并向用户展示下载进度。(2)Loading from the StreamingAssets folder采用这种加载模式时PDFViewer 会从“StreamingAssets”文件夹中加载文件而该文件夹必须在“Assets”中创建。(3)Loading from the path of a file在这种加载方式下PDFViewer会根据参数中提供的路径相对路径或绝对路径来加载文件。当使用相对路径时该路径是相对于项目目录的也就是与Assets文件夹同级的位置。“Show File” 按钮可以打开文件浏览器并选择文件从而确保填写的路径信息是正确的。(4)Loading from a BytesArray当其他加载方式无法满足需求时可以使用这种方式。你只需要指定一个GameObject该对象需要实现一个无参数且返回byte[]字节数组的方法即可。2.Viewer settings用于控制文档的显示方式以及用户在文档中的浏览方式。Page Fitting页面适配设置页面如何适应查看器按宽度、按高度、整页、缩放。选择“缩放Zoom”时可以指定初始缩放比例。Page Margins页面边距页面之间的像素间距。Minimum / Maximum Zoom最小/最大缩放允许的缩放范围。Zoom Step缩放步长每次放大或缩小时的缩放增量。注意当缩放达到 200% 及以上时该步长会变为原来的 2 倍当缩放达到或超过 400% 时会变为 4 倍。Scroll Sensitivity滚动灵敏度使用鼠标滚轮时的滚动幅度。3.Rendering optionsMaximum Quality最大质量当用户放大文档时PDFViewer会以更高的缩放倍率重新渲染页面从而让画面更加清晰。但如果放大倍数过高生成的纹理尺寸会变得非常大导致生成速度变慢。因此该选项用于限制最大渲染质量。例如如果该参数设置为 4当用户的缩放超过 4 倍时渲染质量将不再继续提升Render Annotations渲染批注控制是否渲染 PDF 中的批注内容如高亮、下划线等。Render Grayscale灰度渲染控制是否以灰度模式渲染 PDF。