Member 12891079 Ответов: 0

Необходимо назначить / защитить существующий PDF-файл защищенному паролем файлу с помощью задачи сценария SSIS.


необходимо назначить / защитить существующий PDF-файл защищенному паролем файлу с помощью задачи сценария SSIS.

Я пробовал этот код в windows forms (C#), он работает нормально, но когда я использую его в задаче сценария SSIS, он выдает ошибку времени выполнения.

я добавил dll-файл itextsharp в свою ссылку на задачу скрипта.

можете ли вы предложить решение/ любые изменения в коде, которые должны быть сделаны, чтобы использовать его в задаче сценария ssis?

Itextsharp.dll добавил ссылку на папку задачи "скрипт".

пространства имен, которые я добавил.
использование системы.ИО;
с помощью iTextSharp.текст;
с помощью iTextSharp.текст.формат PDF;
код, используемый в моей задаче сценария ssis

общественного недействительными главный()
{
// TODO: добавьте свой код здесь

строка WorkingFolder = Environment.GetFolderPath(Environment.Специальная папка.Рабочий стол);
строка InputFile = Path.Combine (WorkingFolder, " Test. pdf");
строка OutputFile = Path.Combine (WorkingFolder, " Test_enc. pdf");

используя (входной поток = новый файловый поток(входной файл, содержит filemode.Открой, Файловый Процесс.Читай, Файлообменник.))
{
используя (выходной поток = новый хранилище FileStream(Выходной_файл, содержит filemode.Создать, FileAccess.Пиши, Файлообменник.))
{
PdfReader reader = новый PdfReader(ввод);
PdfEncryptor.Зашифровать (- ридер, выход, правда, "испытания", "секрет", PdfWriter.ALLOW_SCREENREADERS);
}
}

Dts. TaskResult = (int)ScriptResults.Успех;
}
Ниже приведена Ошибка времени выполнения, возникающая при выполнении задачи скрипта

в системе.RuntimeMethodHandle.InvokeMethod(Object target, Object [] arguments, Signature sig, Boolean constructor)
в системе.Отражение.RuntimeMethodInfo.UnsafeInvokeInternal(объект obj, объект[] параметров объекта[] аргументы)
в системе.Отражение.RuntimeMethodInfo.Вызов(объект obj, флаг bindingflags параметр invokeattr, связующее, связующего, объект[] параметров, свойство CultureInfo культуры)
в System. RuntimeType.Метод invokemember(имя строки, флаг bindingflags флаг bindingflags, связующее, связующего, цель, объект[] providedArgs, объект parametermodifier[] модификаторы, свойство CultureInfo культуры, строка[] namedParams)
в корпорации Microsoft.От SQLServer.ДЦ.Задачи.ScriptTask.VSTATaskScriptingEngine.ExecuteScript()

Что я уже пробовал:

using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
code used in my ssis script task

public void Main()
        {
            // TODO: Add your code here

            string WorkingFolder = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
            string InputFile = Path.Combine(WorkingFolder, "Test.pdf");
            string OutputFile = Path.Combine(WorkingFolder, "Test_enc.pdf");

            using (Stream input = new FileStream(InputFile, FileMode.Open, FileAccess.Read, FileShare.Read))
            {
                using (Stream output = new FileStream(OutputFile, FileMode.Create, FileAccess.Write, FileShare.None))
                {
                    PdfReader reader = new PdfReader(input);
                    PdfEncryptor.Encrypt(reader, output, true, "test", "secret", PdfWriter.ALLOW_SCREENREADERS);
                }
            }

            Dts.TaskResult = (int)ScriptResults.Success;
        }

0 Ответов