C# 将Word转为PDF时,设置PDF文档保护

本文以C#代码示例展示如何将Word转为PDF时,设置PDF文档保护,可设置PDF文档打开密码保护以及权限密码保护。附VB.NET代码,有需要可供参考。

程序环境:

1.Word测试文档:.docx

2. .NetFramework 4.8

3. 程序集引用:

程序中需引用spire.doc.dll和spire.pdf.dll。注意这里的两个dll均来自于同一个spire.doc for .net中的文件夹路径,如本次使用的版本为9.6的包,即,两个dll文件路径为:

C:\Program Files (x86)\e-iceblue\Spire.Doc\Bin\NET4.0\Spire.Doc.dll

C:\Program Files (x86)\e-iceblue\Spire.Doc\Bin\NET4.0\Spire.Pdf.dll

dll引用结果如图:

C#

using Spire.Doc;
using Spire.Pdf.Security;

namespace WordToPDFAndEncrypt_PDF
{
    class Program
    {
        static void Main(string[] args)
        {
            //加载Word测试文档
            Document doc = new Document();
            doc.LoadFromFile("test.docx");

            //转为PDF时,设置PDF打开密码和权限密码
            ToPdfParameterList topdf = new ToPdfParameterList();
            topdf.PdfSecurity.Encrypt("open", "permission", PdfPermissionsFlags.Print | PdfPermissionsFlags.CopyContent, PdfEncryptionKeySize.Key128Bit);
            

            //将文档保存为PDF格式
            doc.SaveToFile("result.pdf", topdf);
            System.Diagnostics.Process.Start("result.pdf");
        }
    }
}

VB.NET

Imports Spire.Doc
Imports Spire.Pdf.Security

Namespace WordToPDFAndEncrypt_PDF
	Class Program
		Private Shared Sub Main(args As String())
			'加载Word测试文档
			Dim doc As New Document()
			doc.LoadFromFile("test.docx")

			'转为PDF时,设置PDF打开密码和权限密码
			Dim topdf As New ToPdfParameterList()
			topdf.PdfSecurity.Encrypt("open", "permission", PdfPermissionsFlags.Print Or PdfPermissionsFlags.CopyContent, PdfEncryptionKeySize.Key128Bit)


			'将文档保存为PDF格式
			doc.SaveToFile("result.pdf", topdf)
			System.Diagnostics.Process.Start("result.pdf")
		End Sub
	End Class
End Namespace

 

执行程序,生成的文档路径为程序项目文件夹路径,即C:\Users\Administrator\Documents\Visual Studio 2013\Projects\Doc2PDF\WordToPDFAndEncrypt_PDF\bin\Debug\result.pdf,路径也可以自定义为其他路径。打开生成的PDF文件后,提示需输入密码,如下图:

输入密码打开文档后,也可以查看对PDF文档保护设置,如图:

—End—

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用NPOI库中的WordToPdfConverter类将Word文档转换PDF格式。以下是一个简单的示例代码: ```csharp using NPOI.XWPF.UserModel; using NPOI.XWPF.UserModel.Extensions; using NPOI.OpenXmlFormats.Wordprocessing; using NPOI.Util; using System.IO; // 读取Word文档 XWPFDocument doc = new XWPFDocument(File.OpenRead("doc.docx")); // 创建PDF输出流 FileStream pdfStream = new FileStream("doc.pdf", FileMode.Create); // 将Word文档转换PDF格式 doc.EnsureMinimumCompatibility(XWPFDocument.MINIMUM_COMPATIBILITY); doc.GetPackage().SetPartContentType("/word/document.xml", "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"); doc.GetPackage().SetPartContentType("/word/styles.xml", "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml"); doc.GetPackage().SetPartContentType("/word/fontTable.xml", "application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml"); doc.GetPackage().SetPartContentType("/word/settings.xml", "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml"); doc.GetPackage().SetPartContentType("/word/webSettings.xml", "application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml"); doc.GetPackage().SetPartContentType("/word/theme/theme1.xml", "application/vnd.openxmlformats-officedocument.theme+xml"); doc.GetPackage().SetPartContentType("/docProps/core.xml", "application/vnd.openxmlformats-package.core-properties+xml"); doc.GetPackage().SetPartContentType("/docProps/app.xml", "application/vnd.openxmlformats-officedocument.extended-properties+xml"); doc.GetPackage().SetPartContentType("/word/_rels/document.xml.rels", "application/vnd.openxmlformats-package.relationships+xml"); doc.Write(pdfStream); // 关闭流 pdfStream.Close(); doc.Close(); ``` 在代码中,我们首先读取要转换Word文档,然后创建一个PDF输出流,最后使用WordToPdfConverter类将文档转换PDF格式并写入输出流。请注意,此代码示例仅适用于使用NPOI创建的Word文档。如果您需要转换其他格式的Word文档,可能需要使用其他库或工具。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值