# pdftotext-Fehler bei der Archivierung

Einzelne Belege konnten bei einem Kunden nicht archiviert werden. In den Documents-Logs war keine Fehlermeldung zu sehen. Es wurde eine Meldung in den Status der Mappe geschrieben. Die wurde jedoch abgeschnitten. Im EDA werden Archivfehler in dieses Log geschrieben:  
**...\\Documents5\\eas\\http\\logs\\error.log**

Die komplette Fehlermeldung sieht wie im folgenden Beispiel aus. Entscheidend in dem Text ist der Aufruf der pdftotext.exe und die Fehlermeldung "**Copying of text from this document is not allowed**".

```JavaScript
[Wed Aug 31 12:12:28.794794 2022] [eas:error] [pid 5760:tid 1160] [client ::1:58829]
[mod_eas] D:\\GitLab-Runner\\builds\\ohPMyjtT\\0\\eas\\eas\\Core\\src\\otris\\eas\\transactions\\Transaction.cpp(68):
Throw in function void __cdecl otris::transactions::Transaction::commit(void)\nDynamic exception type: struct boost::wrapexcept
<struct otris::transactions::TransactionAbortedException>\nstd::exception::what:
D:\\GitLab-Runner\\builds\\ohPMyjtT\\0\\eas\\eas\\Core\\src\\otris\\eas\\parser\\ParseCommand.cpp(255):
Throw in function void __cdecl otris::parser::ParseCommand::read(const class std::basic_string
<char,struct std::char_traits<char>,class std::allocator<char> > &)\n
Dynamic exception type: struct boost::wrapexcept<struct otris::InvalidOperationException>\nstd::exception::what: Unknown exception\n
[struct otris::tag_message * __ptr64] = Unable to filter file!\n
[struct otris::tag_string_value * __ptr64] = D:/Applications/Documents5/eas/http/../config/stores/../../filter/pdftotext -enc
UTF-8 E:\\DATA\\DOCUMENTS_DATA\\Archive_RW\\store1\\SPOOL\\7fdbe951-0cf7-4f7c-b5fa-196c78945323.tmp -\nPermission
Error: Copying of text from this document is not allowed.
\r\n\n\n[struct otris::tag_inner_exception * __ptr64] =
D:\\GitLab-Runner\\builds\\ohPMyjtT\\0\\eas\\eas\\Core\\src\\otris\\eas\\parser\\ParseCommand.cpp(255):
Throw in function void __cdecl otris::parser::ParseCommand::read(const class std::basic_string
<char,struct std::char_traits<char>,class std::allocator<char> > &)\n
Dynamic exception type: struct boost::wrapexcept
<struct otris::InvalidOperationException>\nstd::exception::what:
Unknown exception\n
[struct otris::tag_message * __ptr64] = Unable to filter file!\n
[struct otris::tag_string_value * __ptr64] = 
D:/Applications/Documents5/eas/http/../config/stores/../../filter/pdftotext -enc
UTF-8 E:\\DATA\\DOCUMENTS_DATA\\Archive_RW\\store1\\SPOOL\\7fdbe951-0cf7-4f7c-b5fa-196c78945323.tmp -\n
Permission Error: Copying of text from this document is not allowed.
\r\n\n\n[struct otris::tag_message * __ptr64] = Transaction aborted!\n
```

Die **pdftotext.exe** schafft es nicht den PDF-Volltext zu generieren. Die einfachste Lösung ist es bei diesen Belegen auf den PDF-Volltext zu verzichten und die Verarbeitung auch bei Fehlern der **pdftotext.exe** einfach fortzusetzen. Hierzu muss in der ini-Datei zum Store ein passender Filter gesetzt werden.Die ini-Dateien befinden sich hier:  
**...\\Documents5\\eas\\config\\stores\\**

Standardmäßig ist in der ini bereits ein pdf-Eintrag gesetzt, der wie folgt geändert werden muss.

```INI
[filter]
;pdf=utf-8;../../filter/pdftotext -enc UTF-8 %d - ;Standard Windows
; Lösung Windows:
pdf=utf-8;suppress-error;../../filter/pdftotext.exe -q -enc UTF-8 %d -

; Lösung Linux:
;pdf=utf-8;suppress-error;pdftotext -q -enc UTF-8 '%d' - ``` 
```

Im Anschluss muss der Archiv-Dienst neu gestartet werden.