|
Извлечение текста из файла | ☑ | ||
---|---|---|---|---|
0
sunshineuee
01.04.21
✎
12:10
|
Подскажите, пожалуйста,
как можно извлечь текст из файла кроме ЧтениеТекста? Не могу добиться ЧтениемТекста того, что вижу при открытии Notepad++, хоть обстену. COMОбъект("ADODB.???") |
|||
1
Kassern
01.04.21
✎
12:11
|
(0) а что за файл то?
|
|||
2
sunshineuee
01.04.21
✎
12:15
|
(1) по контектсу любой. отлаживаю на пдф. но мне нужно его отправить в post запросом и в пост положить исходное текстовое представление
|
|||
3
Волшебник
01.04.21
✎
12:19
|
(2) Если любой — это слишком сложная задача. Научитесь сначала работать с TXT, DOC/DOCX.
Файлы PDF оставьте на десерт. |
|||
4
sunshineuee
01.04.21
✎
12:22
|
(3) Постман из любого файла формаирует файл отправки... и делает это не двоичными данными
|
|||
5
Волшебник
01.04.21
✎
12:24
|
(4) Постман молодец.
|
|||
6
Kassern
01.04.21
✎
12:25
|
(4) берешь API постмана и делаешь все то же самое уже через 1с)
|
|||
7
Галахад
гуру
01.04.21
✎
12:26
|
(0) Попробуй "ИзвлечениеТекста".
|
|||
8
sunshineuee
01.04.21
✎
12:36
|
Я уже получаю даже TXT, который мне нужен через COMОбъект("ADODB.Stream"). Но не могу даже из него нормально извлечь текст, 1совское ЧтениеТекста все коверкает...
|
|||
9
Волшебник
01.04.21
✎
12:37
|
(8) Покажи программный код
|
|||
10
sunshineuee
01.04.21
✎
12:42
|
(8) Вот так я получаю нужный мне файл TXT из PDF
Файл=Новый COMОбъект("ADODB.Stream"); Файл.Mode=3; // r/w Файл.Type=2; //1-Binary, 2-Text Файл.Open(); Файл.LoadFromFile("\\server-edo\EDO_USDEP\SPECDEP\PIF\Мегаполис-Инвест\Виноградный\Входящие\20210119\ДКПБН 34 - 316.pdf"); Файл.Position=3; ТекстБезБОМ=Новый COMОбъект("ADODB.Stream"); ТекстБезБОМ.Mode=3; // r/w ТекстБезБОМ.Type=1; //1-Binary, 2-Text ТекстБезБОМ.Open(); Файл.CopyTo(ТекстБезБОМ); Файл.Close(); ТекстБезБОМ.SaveToFile("\\server-edo\EDO_USDEP\SPECDEP\PIF\TEST_CLIENT\TEST_FOND\Бумажные\q.txt",2); ТекстБезБОМ.Close(); Но даже из этого TXT я не могу извлечь текст как нужно. ФАЙл => ЧтениеТекст => ЗаписьТекста=> Другой файл... |
|||
11
Волшебник
01.04.21
✎
12:44
|
(10) Здесь нет "ЧтениеТекста"
|
|||
12
sunshineuee
01.04.21
✎
12:44
|
Кодировка везде UTF-8
|
|||
13
sunshineuee
01.04.21
✎
12:47
|
(11)
ЧтениеТекста = Новый ЧтениеТекста("\\server-edo\EDO_USDEP\SPECDEP\PIF\TEST_CLIENT\TEST_FOND\Бумажные\q.txt", КодировкаТекста.UTF8); ЗаписьТекста = Новый ЗаписьТекста("\\server-edo\EDO_USDEP\SPECDEP\PIF\TEST_CLIENT\TEST_FOND\Бумажные\q1.txt"); ЗаписьТекста.Записать(ЧтениеТекста.Прочитать()); ЗаписьТекста.Закрыть(); |
|||
14
sunshineuee
01.04.21
✎
12:49
|
(11) Ппоправил для чистоты эксперимента коировку
ЧтениеТекста = Новый ЧтениеТекста("\\server-edo\EDO_USDEP\SPECDEP\PIF\TEST_CLIENT\TEST_FOND\Бумажные\q.txt", КодировкаТекста.UTF8); ЗаписьТекста = Новый ЗаписьТекста("\\server-edo\EDO_USDEP\SPECDEP\PIF\TEST_CLIENT\TEST_FOND\Бумажные\q1.txt", КодировкаТекста.UTF8); ЗаписьТекста.Записать(ЧтениеТекста.Прочитать()); ЗаписьТекста.Закрыть(); На выходе получаю файлы отличающиеся в двое по размеру, с похожим но ИНЫМ содержанием |
|||
15
Йохохо
01.04.21
✎
12:54
|
(10) какая магия по вашему происходит при смене расширения файла и удаления бом?
|
|||
16
sunshineuee
01.04.21
✎
13:35
|
(15) Возможно никакой. Если бы я извлек текст нормально извлек текст нормально из ПДФ, мне бы не потребовалось менять расширение)
|
|||
17
Почему 1С
01.04.21
✎
13:40
|
двочиныеданныеПДФ = Новый ДвоичныеДанные("путь к файлу пдф");
кодированныйпфдвтексте = Base64Строка(кодированныйпфдвтексте); |
|||
18
Почему 1С
01.04.21
✎
13:42
|
(17) кодированныйпфдвтексте = Base64Строка(двочиныеданныеПДФ ); апичатка
|
|||
19
acht
01.04.21
✎
13:44
|
(0) ИзвлечениеТекста
|
|||
20
sunshineuee
01.04.21
✎
13:53
|
Base64Строка(ДД) и ИзвлечениеТекста дают тоже другой результат. Файл тоже меняется
|
|||
21
Почему 1С
01.04.21
✎
13:56
|
(20) Base64Значение(кодированныйпфдвтексте) вернет исходные данные
|
|||
22
Почему 1С
01.04.21
✎
13:58
|
http сервис куда отправляешь файл тоже на 1с?
|
|||
23
sunshineuee
01.04.21
✎
13:58
|
(21)
(20) PDF-1.3 %sƗ 1 0 obj <</ColorSpace/DeviceRGB/Width 2481/Length 985268/BitsPerComponent 8/Height 3507/Filter[/DCTDecode]/Type/XObject/Subtype/Image/Name/Im1>>stream �� JFIF ,, �� $.' ",#(7),01444'9=82<.342�� ИЛИ UERGLTEuMw0KJaGzxdcNCjEgMCBvYmoNCjw8L0NvbG9yU3BhY2UvRGV2aWNlUkdC L1dpZHRoIDI0ODEvTGVuZ3RoIDk4NTI2OC9CaXRzUGVyQ29tcG9uZW50IDgvSGVp Z2h0IDM1MDcvRmlsdGVyWy9EQ1REZWNvZGVdL1R5cGUvWE9iamVjdC9TdWJ0eXBl Вообще не похоже |
|||
24
sunshineuee
01.04.21
✎
13:59
|
(22) )))))
Если б его можно было изменить, я бы пошел этим путем. Сервис не в 1с, не редактируется, даже в отладку не ставится |
|||
25
polosov
01.04.21
✎
14:00
|
(10) Пользуйся нормальными продуктами https://dl.xpdfreader.com/xpdf-tools-win-4.03.zip
|
|||
26
polosov
01.04.21
✎
14:00
|
+(25) В составе увидишь утилиту pdftotext
|
|||
27
Почему 1С
01.04.21
✎
14:04
|
(26) да ему извлечение текста пдф надо, а сам файлик отослать через http post на сервер, это на сколько я понял
|
|||
28
Почему 1С
01.04.21
✎
14:04
|
не извлечение текста
|
|||
29
sunshineuee
01.04.21
✎
14:06
|
(27) вообще мне нужно извлечь текст и отправить на сервер. И проблема в том, что извлекаемый текст при чтении меняется
|
|||
30
sunshineuee
01.04.21
✎
14:07
|
(26) Как этим пользоваться?
|
|||
31
polosov
01.04.21
✎
14:09
|
||||
32
Почему 1С
01.04.21
✎
14:09
|
(29) По показаниям в (4) сдается мне что вы не верно изъясняетесь
|
|||
33
sunshineuee
01.04.21
✎
19:35
|
//https://its.1c.ru/db/metod8dev/content/5917/hdoc
ПотокоТело = Новый ПотокВПамяти(); ЗаписьТекста = Новый ЗаписьДанных(ПотокоТело); ЗаписьТекста.ЗаписатьСтроку("----------------------------" + Boundary); ЗаписьТекста.Записать(СоздатьСообщениеСДанными(ИмяФайлаЗагрузки, "\\server-edo\EDO_USDEP\SPECDEP\PIF\Мегаполис-Инвест\Виноградный\Входящие\20210119\ДКПБН 34 - 316.pdf")); ЗаписьТекста.ЗаписатьСтроку("----------------------------" + Boundary); // ДвоичныеДанныеТело = ПотокоТело.ЗакрытьИПолучитьДвоичныеДанные(); ЗаголовокHTTP = Новый Соответствие(); ЗаголовокHTTP.Вставить("Host", "vm-ario:61100"); ЗаголовокHTTP.Вставить("Content-Type", "multipart/form-data; boundary=" + "--------------------------" + Boundary); Запрос = Новый HTTPЗапрос(Ресурс, ЗаголовокHTTP); Запрос.УстановитьТелоИзДвоичныхДанных(ДвоичныеДанныеТело); Ответ = Соединение.ОтправитьДляОбработки(Запрос); Функция СоздатьСообщениеСДанными(ИмяФайлаЗагрузки, ПутьКФайлу) Поток = Новый ПотокВПамяти(); ЗаписьДанных = Новый ЗаписьДанных(Поток); ЗаписьДанных.ЗаписатьСтроку("Content-Disposition: form-data; name=""file""; filename=""" + ИмяФайлаЗагрузки + """"); ЗаписьДанных.ЗаписатьСтроку("Content-Type: application/pdf"); ЗаписьДанных.ЗаписатьСтроку(""); //Данные = Base64Строка(Новый ДвоичныеДанные(ПутьКФайлу)); ЗаписьДанных.Записать(Новый ДвоичныеДанные(ПутьКФайлу)); ЗаписьДанных.Закрыть(); Возврат Поток.ЗакрытьИПолучитьДвоичныеДанные(); КонецФункции //Вопрос решён, хотя соглашусь, что в ключе такого решения сам вопрос поставлен некорректно. Предполагаемым путем вопрос не решился |
|||
34
Вафель
01.04.21
✎
20:36
|
есть же родное Извлечение Текста
|
|||
35
DES
01.04.21
✎
21:49
|
(34) оно строки кучкует в одну
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |