Как преобразовать в PDF файл, зашифрованный паролем на C# и .NET


    Разница между OwnerPassword и UserPassword.

    SautinSoft.PdfMetamorphosis и p.PdfSettings.PdfSecurity.UserPassword = "0987654321";

Для открытия зашифрованного PDF-документа для просмотра потребуется пароль пользователя.
Разрешения, указанные в SautinSoft.Document.PdfEncryptionDetails.Permissions будут применяться программным обеспечением чтения.
Пароль пользователя может быть нулевым или пустой строкой, в этом случае при открытии PDF-документа от пользователя не потребуется пароль. Пароль пользователя не может совпадать с паролем владельца.

Например, если Вы откроете PDF-файл в программе просмотра и вставите пароль — «0987654321», Вы увидите, что Вы можете READ only этот PDF-файл, поскольку Вы являетесь пользователем этого файла:
Document Properties -> Security -> Document Restrictions Summary -> Not Allowed.

User password security

    SautinSoft.PdfMetamorphosis и p.PdfSettings.PdfSecurity.OwnerPassword = "1234567890";

Пароль владельца позволяет пользователю открывать зашифрованный PDF-документ без каких-либо ограничений доступа, указанных в SautinSoft.Document.PdfEncryptionDetails.Permissions.
Пароль владельца не может совпадать с паролем пользователя. Если вы не укажете пароль владельца, система сгенерирует случайный пароль при создании PDF-документа.

Например, если Вы откроете PDF-файл в программе просмотра и вставите пароль — «1234567890», Вы увидите, что Вы можете редактировать, распечатывая этот PDF-файл, поскольку Вы являетесь владельцем этого файла:
Document Properties -> Security -> Document Restrictions Summary -> Allowed.

Owner password security

Полный код

using System.IO;

namespace Sample
{
    class Test
    {

        static void Main(string[] args)
        {	
			// Before starting, we recommend to get a free 100-day key:
            // https://sautinsoft.com/start-for-free/
            
            // Apply the key here:
			// SautinSoft.PdfMetamorphosis.SetLicense("...");

            // Contains details for encrypting and access permissions for a PDF document.
            SautinSoft.PdfMetamorphosis p = new SautinSoft.PdfMetamorphosis();

            // Specify the owner password for the encrypted PDF document.
            p.PdfSettings.PdfSecurity.OwnerPassword = "1234567890";
			
			// Specify the user's password required to open the encrypted PDF document.
            p.PdfSettings.PdfSecurity.UserPassword = "0987654321";

            if (p != null)
            {
                string rtfPath = @"..\..\..\example.rtf";
                string pdfPath = Path.ChangeExtension(rtfPath, ".pdf");

                int i = p.RtfToPdfConvertFile(rtfPath, pdfPath);

                if (i != 0)
                {
                    System.Console.WriteLine("An error occurred during converting RTF to PDF!");
                }
                else
                {
                    System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(pdfPath) { UseShellExecute = true });
                }
            }
        }
    }
}

Download

Imports System.IO

Namespace Sample
	Friend Class Test

		Shared Sub Main(ByVal args() As String)
			' Before starting, we recommend to get a free 100-day key:
            ' https://sautinsoft.com/start-for-free/
            
            ' Apply the key here:
			' SautinSoft.PdfMetamorphosis.SetLicense("...");


			Dim p As New SautinSoft.PdfMetamorphosis()

			' Specify the owner password for the encrypted PDF document.
			p.PdfSettings.PdfSecurity.OwnerPassword = "1234567890"

			' Specify the user's password required to open the encrypted PDF document.
			p.PdfSettings.PdfSecurity.UserPassword = "0987654321"

			If p IsNot Nothing Then
				Dim rtfPath As String = "..\..\..\example.rtf"
				Dim pdfPath As String = Path.ChangeExtension(rtfPath, ".pdf")

				Dim i As Integer = p.RtfToPdfConvertFile(rtfPath, pdfPath)

				If i <> 0 Then
					System.Console.WriteLine("An error occurred during converting RTF to PDF!")
				Else
					System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(pdfPath) With {.UseShellExecute = True})
				End If
			End If
		End Sub
	End Class
End Namespace

Download


Если вам нужен пример кода или у вас есть вопрос: напишите нам по адресу support@sautinsoft.ru или спросите в онлайн-чате (правый нижний угол этой страницы) или используйте форму ниже:



Вопросы и предложения всегда приветствуются!

Мы разрабатываем компоненты .Net с 2002 года. Мы знаем форматы PDF, DOCX, RTF, HTML, XLSX и Images. Если вам нужна помощь в создании, изменении или преобразовании документов в различных форматах, мы можем вам помочь. Мы напишем для вас любой пример кода абсолютно бесплатно.