Unity 基于Paroxe PDFRenderer 实现PC/WebGL 平台PDF 读取显示及下载

导入Paroxe PDFRenderer 插件

首先导入Paroxe PDFRenderer 插件

显示PDF

PC

参考

Unity3D 加载PDF文件以及简单的切换页面_unity 打开word pdf_菜菜ANY的博客-CSDN博客先导入插件 PDFRenderer链接: https://pan.baidu.com/s/1Un-FoINPmK8iVBRLS0jkTw 提取码: z78q然后使用以下代码就可以using Paroxe.PdfRenderer;using System.Collections;using System.Collections.Generic;using System.IO;using UnityEngine;using UnityEngine.Networking;using U._unity 打开word pdfhttps://blog.csdn.net/qq_34421469/article/details/122193945

实现 

UnityWebRequest 读取PDF

UnityWebRequest request = UnityWebRequest.Get(url);
yield return request.SendWebRequest();

if (!request.isNetworkError && request.isDone)
{
    bytesDocument = request.downloadHandler.data;
}

使用获取到的字节数组打开PDF

documentPDF = new PDFDocument(bytesDocument);

RawImage 显示PDF

currentPage = 0;
Texture2D pdf = documentPDF.Renderer.RenderPageToTexture(documentPDF.GetPage(currentPage));

rawImageShowPDF.texture = pdf;

显示效果

WebGL

实现

UnityWebRequest 读取PDF

UnityWebRequest request = UnityWebRequest.Get(url);
yield return request.SendWebRequest();

if (!request.isNetworkError && request.isDone)
{
    bytesDocument = request.downloadHandler.data;
}

使用获取到的字节数组打开PDF 

PDFJS_Promise<PDFDocument> documentPromise = PDFDocument.LoadDocumentFromBytesAsync(bytesDocument);

while (!documentPromise.HasFinished)
{
    yield return null;
}

if (!documentPromise.HasSucceeded)
{
    yield break;
}

documentPDF = documentPromise.Result;

RawImage 显示PDF 

currentPage = 0;
PDFJS_Promise<PDFPage> pagePromise = documentPDF.GetPageAsync(currentPage);

while (!pagePromise.HasFinished)
{
    yield return null;
}

if (!pagePromise.HasSucceeded)
{
    yield break;
}

PDFPage pagePDF = pagePromise.Result;

PDFJS_Promise<Texture2D> renderPromise = PDFRenderer.RenderPageToTextureAsync(pagePDF, (int)pagePDF.GetPageSize().x, (int)pagePDF.GetPageSize().y);

while (!renderPromise.HasFinished)
{
    yield return null;
}

if (!renderPromise.HasSucceeded)
{
    yield break;
}

Texture2D pdf = renderPromise.Result;

rawImageShowPDF.texture = pdf;

显示效果

翻页

PC 平台通过PDFDocument.GetPage(int) 获取指定页码的PDF,WebGL 平台通过PDFDocument.GetPageAsync(int) 获取指定页码的PDF,修改参数即可实现翻页

sumPages = documentPDF.GetPageCount(); //PDF总页码

//下一页
currentPage += 1;
if (currentPage >= sumPages)
{
    currentPage = 0;
}

/* todo
* 切换显示PDF
*/

//上一页
currentPage -= 1;
if (currentPage < 0)
{
    currentPage = sumPages - 1;
}

/* todo
* 切换显示PDF
*/

下载PDF

PC

参考 

Unity3D 加载PDF文件以及简单的切换页面_unity 打开word pdf_菜菜ANY的博客-CSDN博客先导入插件 PDFRenderer链接: https://pan.baidu.com/s/1Un-FoINPmK8iVBRLS0jkTw 提取码: z78q然后使用以下代码就可以using Paroxe.PdfRenderer;using System.Collections;using System.Collections.Generic;using System.IO;using UnityEngine;using UnityEngine.Networking;using U._unity 打开word pdfhttps://blog.csdn.net/qq_34421469/article/details/122193945

实现 

if (!Directory.Exists(downloadPath))
{
    Directory.CreateDirectory(downloadPath);
}

string downloadFileName = url.Substring(url.LastIndexOf('/') + 1);
string localPath = downloadPath + "/" + downloadFileName;

UnityWebRequest webRequest = UnityWebRequest.Get(url);
yield return webRequest.SendWebRequest();
if (webRequest.isNetworkError)
{
    if (File.Exists(localPath))
    {
        File.Delete(localPath);
    }
}
else
{
    var file = webRequest.downloadHandler.data;
    FileStream fileStream = new FileStream(localPath, FileMode.Create);
    fileStream.Write(file, 0, file.Length);
    fileStream.Close();
}

WebGL

参考

UnityWebGL截图/图片/文件调用浏览器下载 | 梓喵出没 (azimiao.com)icon-default.png?t=N7T8https://www.azimiao.com/5355.html

实现

根据参考编写jslib,并放入Plugins 文件夹

引入dll

[DllImport("__Internal")]
private static extern void PDFDownloader(string strData, string fileName);

实现下载 

string downloadFileName = url.Substring(url.LastIndexOf('/') + 1);

UnityWebRequest request = UnityWebRequest.Get(url);
yield return request.SendWebRequest();

if (!request.isNetworkError && request.isDone)
{
    byte[] downloadBytes = request.downloadHandler.data;
    if (downloadBytes != null)
    {
        PDFDownloader(System.Convert.ToBase64String(downloadBytes), downloadFileName);
    }
}

效果

拓展 

Android 平台读取显示PDF

Android用PdfRenderer类开发打开pdf文件的功能_android pdfrenderer-CSDN博客PdfRenderer是Android官方用于开发打开pdf文件功能的类,今天介绍一下它的最基本的使用。 使用PdfRenderer有这么几步: 1、用文件的路径生成一个File对象: File file = new File("/mnt/sdcard/printTemplate.pdf"); 2、然后需要用ParcelFileDescriptor类对File对象打一下包: ParcelFileD..._android pdfrendererhttps://blog.csdn.net/actionwind/article/details/112390174

各种文件对应的ContentType 

各种文件对应的ContentType,拿来即用_pdf的contenttype_way_more的博客-CSDN博客Content-TypeContent-Type即内容类型,Content-Type用于定义网络文件的类型和网页的编码,决定文件接收方将以什么形式、什么编码读取这个文件,这就是经常看到一些网页点击的结果却是下载到的一个文件或一张图片的原因。ContentType属性指定响应的 HTTP内容类型。如果未指定 ContentType,默认为TEXT/HTML。我们在代码也经常需要定义ContentType,用于指定响应的类型例:response.setCharacterEncoding("utf-8"_pdf的contenttypehttps://blog.csdn.net/qq_36551991/article/details/109499487

 Unity 常用路径

【100个 Unity实用技能】| Unity中常用的几种路径 分析,不同平台路径总结_unity 路径_呆呆敲代码的小Y的博客-CSDN博客在Unity中有很多种路径,尤其是在不同的平台上,同一种路径的写法可能最终是不一样的。本文就来总结一下Unity中的几种路径,以及简单的使用方法。_unity 路径https://blog.csdn.net/zhangay1998/article/details/126569031

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Unity PDFRendererUnity 引擎的一个插件,用于在游戏或应用中显示和处理 PDF 文件。要下载 Unity PDFRenderer,可以按照以下步骤进行: 1. 打开 Unity 中的 Asset Store。 2. 在 Asset Store 的搜索栏中输入 "PDFRenderer"。 3. 在搜索结果中找到 Unity PDFRenderer 插件,并点击打开插件页面。 4. 在插件页面中,可以查看有关插件功能、要求和定价的信息。 5. 如果确定要购买或下载插件,点击 "Add to My Assets" 或 "Buy" 按钮。 6. 如果需要购买插件,根据提示完成付款流程。 7. 下载完成后,在 Unity 中打开所需的项目。 8. 在 Unity 编辑器的 Assets 窗口中,找到并选择下载PDFRenderer 插件。 9. 在 Inspector 窗口中,可以设置和配置插件的参数和功能。 10. 使用 Unity 提供的文档和示例代码,开始在项目中使用 PDFRenderer。 这样,您就可以使用 Unity PDFRenderer 在您的项目中显示和处理 PDF 文件了。请注意,下载和使用插件可能需要支付费用,并且一些功能可能需要额外的配置和设置。所以在下载之前,请确保您已经了解了插件的功能和要求,并且确认您的项目需要使用此插件。 ### 回答2: Unity PDFRendererUnity 中一个用于在游戏中渲染 PDF 文件的插件,可以方便地加载和显示 PDF 文件。要下载 Unity PDFRenderer,可以按照以下步骤进行操作: 1. 打开 Unity 官方网站 (https://unity.com/),在顶部导航栏中找到 "下载" 选项,并点击进入下载页面。 2. 在下载页面中,选择适合您操作系统的 Unity 版本,并点击下载按钮。确保选择的 Unity 版本与您的操作系统兼容。 3. 下载完成后,双击 .exe 文件或运行安装程序,按照提示完成 Unity 的安装。 4. 打开 Unity 编辑器,创建一个新的项目或打开现有的项目。 5. 右键点击 "Assets" 窗口中的某个文件夹,选择 "Import Package",然后选择 "Custom Package"。 6. 在弹出的对话框中,浏览您的计算机文件夹, 找到您下载Unity PDFRenderer 插件文件(通常是一个 .unitypackage 文件),并点击 "打开"。 7. 在弹出的对话框中,确保所有需要导入的内容都被选中,然后点击 "导入"。 8. Unity 将会自动导入并加载 Unity PDFRenderer 插件。导入完成后,您可以在项目资源中找到插件相关的文件。 9. 现在您可以在 Unity 编辑器中使用 Unity PDFRenderer 插件了。您可以通过代码或拖放方式将 PDF 文件加载到场景中,并在游戏中渲染显示。 这是下载和安装 Unity PDFRenderer 插件的简要步骤。确保按照上述步骤进行操作,就可以成功下载和使用 Unity PDFRenderer 插件了。 ### 回答3: 要使用Unity PDFRenderer插件进行下载,你需要按照以下步骤进行操作: 1. 首先,确保你已经安装了Unity开发环境。如果还没有安装,你可以从Unity官网上下载并安装它。 2. 在Unity的Asset Store中搜索“PDFRenderer”。你会找到一个名为“PDFRenderer - PDF Viewer SDK”的插件。点击“下载”并安装它。 3. 安装完成后,你可以在Unity的Assets菜单中找到“PDFRenderer”选项。点击它以打开插件的页面。 4. 在插件页面上,你可以找到关于如何使用PDFRenderer插件的详细说明和示例代码。你可以根据你的需求阅读并应用这些说明。 5. 要下载PDF文件,你需要首先获取文件的URL。你可以通过网络请求或其他方式得到文件的URL。然后,使用PDFRenderer插件提供的下载功能来下载该文件。 6. 根据插件的说明,你可以使用指定的方法来进行PDF文件的下载和处理。请按照说明书中的步骤操作。 7. 下载完毕后,你可以使用PDFRenderer插件中的其他方法来打开和渲染PDF文件,以便于你在Unity中进行显示和处理。 希望这些步骤能帮助你成功下载和使用Unity PDFRenderer插件。如果你需要进一步的帮助,请检查插件的文档或寻求官方支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值