在日常工作中,人们通常通过加密PDF文档的方式来保护PDF文档。不管是公司还是个人,使用PDF加密术来设置一些权限是必不可少的。为了使PDF文档既可读又不能被未授权的用户所更改,一份PDF文档往往需要两个密码:所有者密码和用户密码。本文我将给大家分享如何使用一个免费版PDF组件—Free
Spire.PDF,以C#/VB.NET编程的方式来快速地加密PDF文档。

     
在日常工作中,我们经常需要把Excel文档转换为PDF文档。你是否在苦恼如何以C#,
VB.NET编程的方式将Excel文档转换为PDF文档呢?你是否查阅了许多资料,运用了大量的代码,但转换后的效果依旧不理想呢?别担心,本文将介绍一种很好的转换方式,在不需要运用大量代码的同时也能保证转换后的效果(转换后的PDF文档与原Excel文档一样)。

这个免费版的PDF组件是由E-iceblue公司开发的,它可以通过设置所有者密码和用户密码来加密PDF文档。所有者密码可以完全访问PDF文档,例如重置密码和权限;用户密码虽然可以允许用户打开对应的PDF文档,但也会受制于所有者设置的一些权限。

      我转换文档时使用了一款Spire.XLS
for.NET组件。该组件可以使.NET应用程序在不安装Microsoft
Office的前提下快速的生成、读、写和修改Excel文档。它支持多种转换,例如:Excel 转
PDF, Excel 转 HTML, Excel 转 CSV, Excel 转 Text, Excel 转 Image 和 Excel
转 XML。Spire.XLS
for.NET组件也能够将Excel文档里的图表、形状、SmartArt图形以及图像转换为PDF。

在加密方案中,命名空间Spire.PDFDocument.Security下的PDFSecurity类的实例对象用来设置所有者密码和用户密码。

     
我们都知道,一个工作簿里可以有多个工作表,有时我们并不需要把所有的工作表都转换为PDF格式,只需要转换其中特定的一个,当然,我所使用的这款组件同样也能实现这个功能。下面我将分开介绍如何以C#,
VB.NET编程的方式将Excel转换为PDF以及如何将Excel里特定的工作表转换为PDF。

如果您对该组件感兴趣,可以从官网下载,组件下载安装后,再加载您的PDF文档,然后就可以保护它了。

     
为了节省大家的时间,我将在文末提供该组件的下载地址,有需要的可以前往。

 

   

接下来我将介绍如何以C#/VB.NET编程的方式来加密PDF文档:

  •  如何以C#编程的方式将Excel文档转换为PDF文档

步骤1:新建一个PDF文档对象(因为我没有现有的PDF文档,所以就新建了一个)

步骤1:新建一个工作簿并加载需要转换的Excel文档

[C#]

      PdfDocument doc = new PdfDocument();
Workbook workbook = new Workbook();
workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\人数统计.xlsx", ExcelVersion.Version2010);

 

步骤2:保存并预览PDF文档

步骤2:通过“Spire.Pdf.Security.PdfEncryptionKeySize”的枚举值来设置密钥长度。密钥长度有3种可用的类型:Key128Bit,
Key256Bit 和 Key40Bit,您可以使用其中的任意一种。

workbook.SaveToFile("result.pdf", Spire.Xls.FileFormat.PDF);
System.Diagnostics.Process.Start("result.pdf");
[C#]

       doc.Security.KeySize = PdfEncryptionKeySize.Key256Bit;

 

 

以下是程序运行后原Excel文档与目标PDF文档的对比图:

步骤3:通过设置所有者密码和用户密码来加密PDF文档。注意:您所设置的密钥长度不能超过可用的密钥长度。

                               原Excel文档                                                                                     目标PDF文档                                      

[C#]

       doc.Security.OwnerPassword = "e-iceblue";
       doc.Security.UserPassword = "pdfcomponent";

图片 1               
图片 2

步骤4:指定用户密码的访问权限。在此方案中,有9种可用的权限,请查看下图:

C#完整代码:

                                    图片 3

using Spire.Xls;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Excel_To_PDF
{
    class Program
    {
        static void Main(string[] args)
        {
            Workbook workbook = new Workbook();
            workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\人数统计.xlsx", ExcelVersion.Version2010);
            workbook.SaveToFile("result.pdf", Spire.Xls.FileFormat.PDF);
            System.Diagnostics.Process.Start("result.pdf");


        }
    }
}
[C#]

       doc.Security.Permissions = PdfPermissionsFlags.Print | PdfPermissionsFlags.CopyContent;

 

 

  • 如何以C#,VB.NET编程的方式将Excel里特定的工作表转换为PDF文档

步骤5:保存文档

步骤1:新建一个工作簿并加载需要转换的Excel文档

[C#]

      doc.SaveToFile("result.pdf",FileFormat.PDF);
Workbook workbook = new Workbook();
workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\期末成绩.xlsx");

项目运行后,当你打开这个加密的PDF文档时就需要输入密码了。请看下面的效果截图:

 步骤2:获取第一个工作表(我选择的是第一个工作表,你可以根据你的需求来选择)

 

Worksheet sheet = workbook.Worksheets[0];

   图片 4

 步骤3:将选定的工作表转换为PDF并保存

 

sheet.SaveToPdf("toPDF.pdf");

C#完整代码:

 步骤4:预览PDF文档

using Spire.Pdf;
using Spire.Pdf.Security;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace __encryption
{
    class Program
    {
        static void Main(string[] args)
        {
           PdfDocument doc = new PdfDocument();
           doc.Security.KeySize = PdfEncryptionKeySize.Key256Bit;
           doc.Security.OwnerPassword = "e-iceblue";
           doc.Security.UserPassword = "pdfcomponent";
           doc.Security.Permissions = PdfPermissionsFlags.Print | PdfPermissionsFlags.CopyContent;
           doc.SaveToFile("result.pdf", FileFormat.PDF);
        }
    }
}
System.Diagnostics.Process.Start("toPDF.pdf");

 

以下是程序运行后原Excel文档与目标PDF文档的对比图:

VB.NET完整代码:

                                        原Excel文档                                                                                    目标PDF文档

Imports Spire.Pdf
Imports Spire.Pdf.Security
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text

Namespace __encryption
    Class Program
        Private Shared Sub Main(args As String())
            Dim doc As New PdfDocument()
            doc.Security.KeySize = PdfEncryptionKeySize.Key256Bit
            doc.Security.OwnerPassword = "e-iceblue"
            doc.Security.UserPassword = "pdfcomponent"
            doc.Security.Permissions = PdfPermissionsFlags.Print Or PdfPermissionsFlags.CopyContent
            doc.SaveToFile("result.pdf", FileFormat.PDF)
        End Sub
    End Class
End Namespace

图片 5          
图片 6

希望这篇文章能给您带来一定的帮助。感谢您的浏览。

 

C#完整代码:

using Spire.Xls;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Worksheet_To_PDF
{
    class Program
    {
        static void Main(string[] args)
        {
            Workbook workbook = new Workbook();
            workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\期末成绩.xlsx");
            Worksheet sheet = workbook.Worksheets[0];
            sheet.SaveToPdf("toPDF.pdf");
            System.Diagnostics.Process.Start("toPDF.pdf");

        }
    }
}

VB.NET完整代码:

Imports Spire.Xls
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text

Namespace Worksheet_To_PDF
    Class Program
        Private Shared Sub Main(args As String())
            Dim workbook As New Workbook()
            workbook.LoadFromFile("C:\Users\Administrator\Desktop\期末成绩.xlsx")
            Dim sheet As Worksheet = workbook.Worksheets(0)
            sheet.SaveToPdf("toPDF.pdf")
            System.Diagnostics.Process.Start("toPDF.pdf")

        End Sub
    End Class
End Namespace

组件下载地址:

https://www.e-iceblue.com/Download/download-excel-for-net-now.html 

 

本文到此已介绍完。感谢您的浏览。

相关文章