Я постепенно создавал командлет. По сути, начиная с командлета «Hello, World», я добавлял необходимые команды iText7. Это работало, пока я не попытался создать объект PdfDocument. Когда я запускаю командлет, я получаю:
Инициализатор типа для iText.Commons.Actions.EventManager выдал исключение.
Я использую код Visual Studio. Заранее прошу прощения, мои навыки разработки на C#/NET довольно ограничены (вся остальная тяжелая работа по этому проекту будет выполнена в PowerShell).
Код: Выделить всё
using System;
using System.Management.Automation;
using iText.Kernel.Pdf;
namespace TestCmdlet{
[Cmdlet(VerbsCommon.Get, "LaxPDFText")]
public class LaxPDFText : PSCmdlet {
[Parameter(Mandatory = true)]
public string filePath {get; set;}
[Parameter(Mandatory = true)]
public int laxRange {get; set;}
protected override void BeginProcessing()
{
WriteObject("filePath: " + filePath);
WriteObject("laxRange: " + laxRange);
try {
PdfReader pdfReader = new PdfReader(filePath);
try {
PdfDocument pdfDocument = new PdfDocument(pdfReader);
pdfDocument.Close();
}
catch (Exception e) {WriteObject("Couldn't create pdfDocument"); WriteObject(e.Message); WriteObject(e.StackTrace);}
pdfReader.Close();
}
catch (Exception e) {WriteObject("Couldn't create pdfReader"); WriteObject(e.Message); WriteObject(e.StackTrace);}
}
}
}
Код: Выделить всё
PS C:\Users\Van Drunens\documents> import-module TestCmdlet
PS C:\Users\Van Drunens\documents> Get-LaxPDFText -filePath "c:\users\van drunens\documents\test.pdf" -laxRange 5
filePath: c:\users\van drunens\documents\test.pdf
laxRange: 5
Couldn't create pdfDocument
The type initializer for 'iText.Commons.Actions.EventManager' threw an exception.
at iText.Kernel.Pdf.PdfDocument.Open(PdfVersion newPdfVersion)
at TestCmdlet.LaxPDFText.BeginProcessing()
Подробнее здесь: https://stackoverflow.com/questions/791 ... -exception
Мобильная версия