如何使用.net?
以编程方式使PDF不可打印答案 0 :(得分:5)
简短回答。你不能。您可以尝试设置DRM参数以防止打印,但这一切都取决于客户端用于呈现PDF的软件以及是否尊重DRM或是否。
此外,假设您能够查看PDF,则无法阻止用户对PDF中显示的内容进行屏幕截图。
答案 1 :(得分:1)
当然可以防止打印!当然,您无法阻止屏幕捕获,但绝对可以防止临时用户在Adobe Reader中打印PDF。我知道在导出PDF时,在我们的ActiveReports产品中,您可以指定各种安全选项,以确定查看PDF的用户是否可以打印。开发人员可以指定一个管理员密码,该密码可用于仅允许某些用户进行打印,同时防止没有密码的用户进行打印。
您可以在ActiveReports的PdfSecurity enumeration documentation中详细了解此信息。代码示例位于文档here中。按照该页面上的一些链接查看更多信息。
如果您想加载现有PDF并通常修改人们建议iTextSharp。虽然我没有使用它,但其他人高度推荐它,我认为它适用于这个读取+修改方案。我设法找到了一个示例,说明如何使用iTextSharp启用/禁用“AllowPrint”和其他权限here。
答案 2 :(得分:0)
听起来你真的正在寻找Active Directory中阻止用户打印的组策略对象吗?
<强>更新强>
什么阻止所述用户通过电子邮件将PDF发送给自己并在家中打印,而不是另一个GPO阻止具有给定扩展名或超过特定大小的附件?
答案 3 :(得分:0)
根据完整的需求详细信息,您有许多选项,但最简单的方法是在文档上设置密码加密。正如上面提到的一些人,您可以设置所有者密码和用户密码来加密文档。所有者密码基本上允许管理员级别访问,并完全打开所有操作的文档。用户密码打开文档但访问仅限于您在加密时指定的内容,例如,如果您关闭打印权限,则提供用户密码的人将无法打印PDF。
我们提供支持.NET的解决方案,可以轻松加密和解密PDF。如果您有兴趣了解API文档,请参阅以下链接:
http://www.pdfonline.com/easypdf/epsdk_manual/index.htm?page=reference%2Fpdfprocessorsdk%2Fpdfprocessor%2Fm_encrypt.htm
这个想法是调用上面的Encrypt()函数并传递一个Printing_Serm参数PRC_SEC_PRINT_PERM_NONE。如果您愿意,还可以设置其他访问权限,如修改,复制/粘贴等。
希望这有帮助。