Инициализатор типа для iText.Commons.Actions.EventManager выдал исключениеC#

Место общения программистов C#
Ответить
Anonymous
 Инициализатор типа для iText.Commons.Actions.EventManager выдал исключение

Сообщение Anonymous »

Я пытаюсь создать простой командлет PowerShell, который будет использовать iText7 для открытия файла PDF и вывода текста. Я пробовал использовать iText7Module из галереи PowerShell, но LocationTextExtractionStrategy, являющаяся частью iText7, слишком специфична для вертикального расположения. Я хотел бы реализовать здесь подход iText7, считывающий строки в неправильном порядке, чтобы решить эту проблему. Единственная функциональность, которую я хочу получить от iText7, — это извлечение текста, поэтому я решил, что лучше всего создать собственный командлет, выполняющий только эту задачу (используя нестрогую стратегию извлечения).
Я постепенно создавал командлет. По сути, начиная с командлета «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);}
}
}
}

Затем попытка в PowerShell...

Код: Выделить всё

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()
Я озадачен тем, что ошибка, связанная с тем, что iText.Kernel.PDf.PDfDocument.Open(PdfVersion newPdfVersion) ссылается на тип PdfVersion>

Подробнее здесь: https://stackoverflow.com/questions/791 ... -exception
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»