Проблема с Тессерактом приложения C# Windows FormC#

Место общения программистов C#
Ответить
Anonymous
 Проблема с Тессерактом приложения C# Windows Form

Сообщение Anonymous »

У меня большой проект и проблема. Программа должна использовать Tesseract OCR для поиска счетов в локальной сети.
Проблема в том, что программа работает нормально при использовании Visual Studio, но когда я ее публикую, она продолжает сообщать мне об этой ошибке. :
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
---> System.ArgumentNullException: Value cannot be null. (Parameter 'path1')
at System.ArgumentNullException.Throw(String paramName)
at System.IO.Path.Combine(String path1, String path2)
at InteropDotNet.LibraryLoader.InternalLoadLibrary(String baseDirectory, String platformName, String fileName)
at InteropDotNet.LibraryLoader.LoadLibrary(String fileName, String platformName)
at InteropRuntimeImplementer.LeptonicaApiSignaturesInstance.LeptonicaApiSignaturesImplementation..ctor(LibraryLoader loader)
at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span1 copyOfArgs, BindingFlags invokeAttr)

И вот мой код:
private void SearchAndCopyPDFsWithOCR(
ing sourceDirectory,
ing targetDirectory,
ing searchTerm,
aTable dataTableValues,
ing partnerPrefix,
ing wetenr)
{
string tessdataPath = @"C:\Program Files\Tesseract-OCR\tessdata";

if (!Directory.Exists(tessdataPath))
{
MessageBox.Show($"A tessdata mappa {tessdataPath} nem található!", "Hiba", Messag
return;
}

if (string.IsNullOrEmpty(searchTerm) || string.IsNullOrEmpty(partnerPrefix))
return;

var filteredDirectories = Directory.GetDirectories(sourceDirectory, $"{partnerPrefix}

// A TesseractEngine csak egyszer jön létre a metódus elején.
using (var ocrEngine = new TesseractEngine(tessdataPath, "eng", EngineMode.LstmOnly))

Я борюсь с этим уже около недели каждый день и думаю, что перепробовал все, чтобы справиться с этим. Возможно, вы, ребята, можете предоставить что-то, что я пропустил.
Очень признателен,
  • Я пытался записать параметры каждого Path.Combine, но пути отображались нормально.
  • Я пытался сделать обработку исключений if-s для регистрации ошибки, программа не показалась ввести эту часть кода, так что здесь тоже не повезло.
  • Проверил, что все параметры имеют значения, отличные от нуля, безуспешно
  • Теперь я запускаю Tesseract из предварительной версии -установлена ​​папка на диске C
  • Проверил, существует ли какая-то политика для сетевых папок, поэтому дал мой рабочий стол для sourcePathДругие свойства проекта:
  • Использование ClickOne для публикации проекта
  • Я использую движок Tesseract в метод
Программа отображает первый исходный каталог нормально, как я и предполагал, но сразу после этого всплывает ошибка . Я предоставляю вам часть вызывающего кода метода ниже:
// Mappa ellenőrzése és PDF keresés
if (sourceDirectory == null || evszam == null)
{
MessageBox.Show($"sourceDirectory vagy evszam null {sourceDirectory}, {evszam}");
}
else
{
if (sourceDirectory == null || Path.GetFileName(evszam) == null)
{
throw new ArgumentNullException($"{sourceDirectory} vagy {Path.GetFileName(evszam)} nem lehet null.");
}
specificSourceDirectory = Path.Combine(sourceDirectory, evszam);

MessageBox.Show(specificSourceDirectory);
}

if (Directory.Exists(specificSourceDirectory))
{
SearchAndCopyPDFsWithOCR(
specificSourceDirectory,
targetDirectory,
szamlaszam,
dataTableValues,
partnerPrefix,
wetenr);
}
else
{

SearchAndCopyPDFsWithOCR(
sourceDirectory,
targetDirectory,
szamlaszam,
dataTableValues,
partnerPrefix,
wetenr);
}


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

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

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

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

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

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