C# 构建自定义PDF浏览器暨查看器:在exe中捆绑PDF

C# 构建自定义PDF浏览器暨查看器:在exe中捆绑PDF,c#,.net,pdf,encryption,C#,.net,Pdf,Encryption,我想构建一个应用程序来查看一堆PDF文件。它将有一些树来浏览内容,我将在我的应用程序中使用一些免费提供的PDF查看器库。 但是,我想将这些PDF捆绑在我的应用程序的exe中(如果可能的话,对它们进行加密)。原因是我不希望用户能够保存文件。我希望他们只读取文件。 这可能吗 PS:说到.net开发,我是个新手。因此,请随意提出任何能达到我目的的替代方案 如果可能的话,还建议一个好的免费PDF查看器库,它只允许读取而不允许保存/打印。基本上,您希望在EXE中嵌入一个碰巧是加密PDF的资源。您可以脱机加

我想构建一个应用程序来查看一堆PDF文件。它将有一些树来浏览内容,我将在我的应用程序中使用一些免费提供的PDF查看器库。
但是,我想将这些PDF捆绑在我的应用程序的exe中(如果可能的话,对它们进行加密)。原因是我不希望用户能够保存文件。我希望他们只读取文件。 这可能吗

PS:说到.net开发,我是个新手。因此,请随意提出任何能达到我目的的替代方案


如果可能的话,还建议一个好的免费PDF查看器库,它只允许读取而不允许保存/打印。

基本上,您希望在EXE中嵌入一个碰巧是加密PDF的资源。您可以脱机加密它们,然后将它们作为文件添加到Visual Studio项目中。将“生成操作”属性设置为嵌入式资源

这一个回答了如何枚举嵌入式资源:

拥有资源后,必须解密数据并将其传递给所选的PDF查看器

这篇文章解释了如何使用AES对称算法加密和解密.NET:


解密后,将数据传递到PDF查看器。如果你在网上搜索,你会发现很多。

作为一个免费库,请使用itextsharp。正如你所知,你可以这样做只是为了提高复制PDF的难度。但是,由于PDF需要在客户端计算机上解密才能查看,因此没有简单的方法可以防止他们复制和分发数据。@kostas ch.iTextSharp无法呈现PDF。一个小查询,以这种方式嵌入的资源是否可以使用资源黑客之类的工具提取?如果是的话,我有什么办法可以阻止它吗?没有,但是在他们提取了资源之后,它就被加密了。因为你将从你自己的代码中解密,所以它不是完全安全的。我不是在寻找一些最先进的安全性…只是足够安全以防止普通人破坏我的措施…顺便说一句,当我解密时,它将临时存储在本地磁盘上,对吗?那么,用户可以从那里复制它吗?不,你可以从内存和到内存解密。如果您查看所提供的链接,您将看到如何使用。