powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / сканированный документ
162 сообщений из 162, показаны все 7 страниц
сканированный документ
    #34579969
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всем привет.
у меня такая проблема:
есть сканированный документ, ссылка на который сохраняется в базу данных. возможно ли вообще со сканированного документа вытащить какие либо данные, если знать постоянное расположение этих данных?
...
Рейтинг: 0 / 0
сканированный документ
    #34580010
Karfaqen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если ваш скан-файл в некотором текстовом формате, то можете просто открыть его, поискать там ваши "постоянные расположения" и вычитать из них нужные вам данные.
...
Рейтинг: 0 / 0
сканированный документ
    #34580023
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это все мне понятно. но проблема в том, что:
сканирует документ - 1 отдел, 2 отдел открывает журнал и видит, что документ загружен, т.к. документов много, необходимо видеть из этого документа название фирмы и номер ПП, чтобы не открывать все в подряд. :)
...
Рейтинг: 0 / 0
сканированный документ
    #34580143
Karfaqen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kobraнеобходимо видеть из этого документа название фирмы и номер ПП, чтобы не открывать все в подряд.Мой ответ был именно про это. В процедуре, вызываемой при занесении в базу ссылки на файл, открываете этот самый свой сканированный файл, находите в нем название фирмы и пишете в нужное поле.
...
Рейтинг: 0 / 0
сканированный документ
    #34580197
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если не трудно, может подскажите как это сделать? или примерчик какой-нибудь.
...
Рейтинг: 0 / 0
сканированный документ
    #34580213
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вручную данные вносятся, вручную. Глазами ищется и ручками вносится. И какой примерчик Вам нужен?
...
Рейтинг: 0 / 0
сканированный документ
    #34580265
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а я вот хочу автоматически при загрузке :)
...
Рейтинг: 0 / 0
сканированный документ
    #34580324
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Using the Microsoft Office Document Imaging 2003 Viewer Control

The Microsoft® Office Document Imaging Library 2003 (MODI) object model makes it possible to develop custom applications for managing document images (such as scanned and faxed documents) and the recognizable text that they contain. The MODI components include the MODI Viewer Control, an ActiveX® control that you can use to display MODI documents.

http://msdn2.microsoft.com/en-us/library/aa167614(office.11).aspx
...
Рейтинг: 0 / 0
сканированный документ
    #34580408
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-во. Надо самому сделать что-то аналогичное Fine Reader. Так что флаг Вам в руки. А вдруг получится? Поделитесь опытом...
...
Рейтинг: 0 / 0
сканированный документ
    #34580454
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 kobra
Вы так и не ответили - после сканирования у вас текстовый документ или графика?
...
Рейтинг: 0 / 0
сканированный документ
    #34580471
Karfaqen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kobraможет подскажите как это сделать?Допустим, нужное вам наименование находится у вас в первой строке ваших текстовых скан-файлов. Тогда можно сделать простую функцию которая из указанного файла читает и возвращает первую строку (см. Open, Input, Close в справке VBA).

И в некий программный момент, когда у вас есть имя файла, с которым вы устанавливаете связь - например, для текущей записи формы, вы вызываете эту функцию, передавая ей это имя файла, а возвращенное этой функцией значение (искомое наименование) заносите в нужное поле текущей формы.
...
Рейтинг: 0 / 0
сканированный документ
    #34580510
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mds_world
Вы так и не ответили - после сканирования у вас текстовый документ или графика?

формат файла получается графический. из которого надо вытащить текст.
...
Рейтинг: 0 / 0
сканированный документ
    #34580535
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Боюсь, что средствами ВБА и Акцесс у вас не получится. Сначала надо превратить графику в распознаваемый текст.
...
Рейтинг: 0 / 0
сканированный документ
    #34580545
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот, я нашла какую-то прогу RasterID. сейчас сижу смотрю, что с ней можно сделать :)
...
Рейтинг: 0 / 0
сканированный документ
    #34580637
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kobraвот, я нашла какую-то прогу RasterID.

RaserID одно из лучших решений на рынке и стоит всего 850
...
Рейтинг: 0 / 0
сканированный документ
    #34580979
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понимаю, в чем проблема написать это через MODI...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Sub TestText()

  Dim miDoc As MODI.Document
  Dim miLayout As MODI.Layout
  Dim strText As String
  Dim strWord as String

  Set miDoc = New MODI.Document
  miDoc.Create "C:\document1.tif"
  miDoc.Images( 0 ).OCR
  Set miLayout = miDoc.Images( 0 ).Layout
  strText = miLayout.Text
  strWord = miLayout.Words( 0 ).Text
  Debug.Print strWord
  Debug.Print strText

  Set miLayout = Nothing
  Set miDoc = Nothing

End Sub

Сканировать сразу в TIF можно через WIA.
...
Рейтинг: 0 / 0
сканированный документ
    #34580994
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подключить в референсах Microsoft Office Document Imaging 11.0 Type Libriary
...
Рейтинг: 0 / 0
сканированный документ
    #34581079
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
%?*?% , а куда это надо вставить ??? :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Sub TestText()

  Dim miDoc As MODI.Document
  Dim miLayout As MODI.Layout
  Dim strText As String
  Dim strWord as String

  Set miDoc = New MODI.Document
  miDoc.Create "C:\document1.tif"
  miDoc.Images( 0 ).OCR
  Set miLayout = miDoc.Images( 0 ).Layout
  strText = miLayout.Text
  strWord = miLayout.Words( 0 ).Text
  Debug.Print strWord
  Debug.Print strText

  Set miLayout = Nothing
  Set miDoc = Nothing

End Sub
...
Рейтинг: 0 / 0
сканированный документ
    #34581116
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автора куда это надо вставить ???

Смутили прямо-таки, аж покраснел... такие вопросы - в рабочее время...

Куда вам нужно - хотите, чтоб текст из сканированного документа куда-то сохранялся? Сделайте из этого функцию и добавьте в оканчание процедуры сканирования, после сохранения имиджа - получить текст и сохранить в соотвествующее поле, той же записи, где сохраняете путь.
...
Рейтинг: 0 / 0
сканированный документ
    #34581155
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нне хотела вгонять Вас в краску :).
у меня в программе, после выбора файла, пользователь нажимает на кнопку, после чего появляется ссылка на файл:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Private Sub Кнопка2_Click()
On Error Resume Next
Me!f1 = OpenDialogFileName
fdate = Date
ftime = Time
Dim rst As Recordset

Set rst = CurrentDb.OpenRecordset("Doc")

With rst
.AddNew
![Login] = fOSUserName
![FIO] = DLookup("[FIO]", "Login", "[Login] = '" & fOSUserName & "' ")
![Doc] = Me!f1
![DateDoc] = CDate(fdate + ftime)
.Update
End With

rst.Close

MsgBox "Ссылка на документ загружена в программу !"
Me.f1 = Null
End Sub
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Private Declare Function GetOpenFileName Lib "comdlg32.dll" _
   Alias "GetOpenFileNameA" (pOpenFileName As OpehFileName) As Long
Public Function OpenDialogFileName(Optional strStartDir As String) As Variant
Dim d As OpehFileName, Res As Long, S As String, SS As String
Dim I As Byte
Dim a As Integer
d.lpstrInitialDir = strStartDir  ' Здесь твой каталог по умолчанию
d.lpStructSize =  76 
d.nMaxFile =  256 
d.lpstrFile = String( 255 ,  32 )
d.hWndOwner = Application.hWndAccessApp


d.lpstrTitle = "Выбоp файла"
'd.Flags = &H200 Or &H1000 Or &H80000

Res = GetOpenFileName(d)
S = ""
For I =  1  To  255 
 SS = Mid(d.lpstrFile, I,  1 )
 If SS <> Chr( 0 ) Then S = S & SS Else Exit For
Next I
OpenDialogFileName = S
End Function
вот...
Подскажите что и куда :)
я уже просто совсем запуталась
...
Рейтинг: 0 / 0
сканированный документ
    #34581278
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решение, предложенное %?*?%, предполагает сканирование и распознавание документа. Вписывается ли это в вашу технологию? Судя по всему, сканирование у вас осуществляют совершенно иные люди, не те которые впоследствии работают с документами?
Можно, конечно, выделить блок распознавания отдельно после выбора отсканированного документа, но опять таки вопрос - распознавание входит в обязанности человека, который "после выбора файла, пользователь нажимает на кнопку, после чего появляется ссылка на файл"?

Не лучше ли придумать систему именования документов при сканировании, при которой в имени отсканированного имиджа сразу были бы нужные реквизиты? Тогда, при выборе файла, очень легко строку названия превратить в нужный параметр и поместить на форме.
...
Рейтинг: 0 / 0
сканированный документ
    #34581295
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Примерно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Function txtOCR(fName as string) as String

  Dim miDoc As MODI.Document
  Dim miLayout As MODI.Layout
  Dim strText As String
  Dim strWord as String

  Set miDoc = New MODI.Document
  miDoc.Create fName
  miDoc.Images( 0 ).OCR
  Set miLayout = miDoc.Images( 0 ).Layout
  txtOCR = miLayout.Text
  
  Set miLayout = Nothing
  Set miDoc = Nothing

End Function

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Private Sub Кнопка2_Click()
On Error Resume Next
Me!f1 = OpenDialogFileName
fdate = Date
ftime = Time
Dim rst As Recordset

Set rst = CurrentDb.OpenRecordset("Doc")

With rst
.AddNew
![Login] = fOSUserName
![FIO] = DLookup("[FIO]", "Login", "[Login] = '" & fOSUserName & "' ")
![Doc] = Me!f1
![DateDoc] = CDate(fdate + ftime)
![TextDoc] = txtOCR(Me!f1)
.Update
End With

rst.Close

MsgBox "Ссылка на документ загружена в программу !"
Me.f1 = Null
End Sub
...
Рейтинг: 0 / 0
сканированный документ
    #34581321
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1 этап программы (1-ый пользователь). сканирует документ (док.очень много), второй человек, открывает форму, нажимает на кнопку, открывается стандартное окно выбора файла, Ок - и ссылка сохраняется в поле таблицы.
и по существу, лучше бы, конечно, когда этот пользователь проводит эту процедуру, при сохранении ссылки, должны вытаскиваться из док. два заданных поля и вставляться в форму (соотв. и в табличу тоже.)
либо присваивать файлу имя при сканировании состоящим из этих двух полей.
...
Рейтинг: 0 / 0
сканированный документ
    #34581356
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы в поле TextDoc попалал не весь текст из документа, а только выбранные значения - поигнайтесь с strWord = miLayout.Words(0).Text - Words(0) - вернет первое слово, если документ стандартный и поля стандартные, можно опытным путем подобрать значение Words(x), чтоб в него попадало то, что нужно.
...
Рейтинг: 0 / 0
сканированный документ
    #34581375
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 kobra
Решение, предлагаемое %?*?%, очень интересное само себе, но потребует от вас немалой работы по выделению и поиску нужного места в файле. А с учетом того, что русский текст далеко не всегда надежно распознается программами OCR, остается вероятность неверной идентификации документа. Если этот момент важен, то полагаться только на распознавание нельзя.
...
Рейтинг: 0 / 0
сканированный документ
    #34581379
Фотография BULK INSERT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
%?*?%поигнайтесь

велик могучим Русским языка
...
Рейтинг: 0 / 0
сканированный документ
    #34581394
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да, документ стандартный, постоянно идин и тот же... сначала заголовок, далее в виде таблице.
и мне надо, чтобы вытаскивалось - 5-ая строка (не считая пустых). как это правильно указать? и имеет ли существенное значение, что документ содержит таблицу?
...
Рейтинг: 0 / 0
сканированный документ
    #34581406
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BULK INSERT
я не совсем поняла..
это так распознается текст?
у меня поля два: первое - название фирмы, а второе- сумма перевода. цифры тоже так же **** будут?
...
Рейтинг: 0 / 0
сканированный документ
    #34581422
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, это возможная картинка при распознавании. ИМХО, для вас лучший выбор - кодировка нужных реквизитов документа в названии отсканированного файла.
...
Рейтинг: 0 / 0
сканированный документ
    #34581456
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mds_world
хорошо, если переходить на это...как это делается ?
Знаю, что уже всех достала, просто нигде не могу найти подобной информации. тема поднималась, но быстро закрывалась не решившись :) а хочется все это добить до конца. должен же быть какой-то выход...
...
Рейтинг: 0 / 0
сканированный документ
    #34581472
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BULK INSERT %?*?%поигнайтесь

велик могучим Русским языка

Клавиатура без русской раскладки - уж не серчайте, дяденька, промахиваюсь иногда...

Проверить установленый язык можно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Sub TestLayoutProperties()

  Dim miDoc As MODI.Document
  Dim miLayout As MODI.Layout
  Dim strLayoutInfo As String
  
  Set miDoc = New MODI.Document
  miDoc.Create "C:\document1.tif"
  
  miDoc.Images( 0 ).OCR
  
  Set miLayout = miDoc.Images( 0 ).Layout
  strLayoutInfo = _
    "Language: " & miLayout.Language & vbCrLf & _
    "Number of characters: " & miLayout.NumChars & vbCrLf & _
    "Number of fonts: " & miLayout.NumFonts & vbCrLf & _
    "Number of words: " & miLayout.NumWords & vbCrLf & _
    "Beginning of text: " & Left(miLayout.Text,  50 ) & vbCrLf & _
    "First word of text: " & miLayout.Words( 0 ).Text
  MsgBox strLayoutInfo, vbInformation + vbOKOnly, _
    "Layout Information"
  
  Set miLayout = Nothing
  Set miDoc = Nothing

End Sub

Могу кинуть полный хелп по MODI.
...
Рейтинг: 0 / 0
сканированный документ
    #34581489
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kobramds_world
хорошо, если переходить на это...как это делается ?
Знаю, что уже всех достала, просто нигде не могу найти подобной информации. тема поднималась, но быстро закрывалась не решившись :) а хочется все это добить до конца. должен же быть какой-то выход...Какие реквизиты документа важны для вас? Что находится на 5-ой строке?
...
Рейтинг: 0 / 0
сканированный документ
    #34581491
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
help было бы замечательно.
а эту проверку куда...???
...
Рейтинг: 0 / 0
сканированный документ
    #34581502
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mds_world

Идея хороша - своей простотой, прежде всего... Но люди слишком часто ошибаются - одна неверная буква - и документ не будет найден. В результате - скандал на фирме. Кто будет крайний? Разработчик, конечно - плохую систему сделал - потому как секретарша, конечно, дура, но программа-то - умная. Я это уже имел (или меня этим имели...)
...
Рейтинг: 0 / 0
сканированный документ
    #34581520
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kobrahelp было бы замечательно.
а эту проверку куда...???

Да просто - запустите один раз, чтоб убедиться, что стоит нужный язык.

Давайте почту - хелп весит 356 кило.
...
Рейтинг: 0 / 0
сканированный документ
    #34581556
Фотография BULK INSERT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kobraя не совсем поняла

да, так в MODI распознается текст таможенной декларации на русском языке на компьютере где установлен не локализованный офис.

идея предложенная 57875 хороша, но ИМХО не достаточно хорошо реализована в инструменте к которому предлагается прибегнуть.
...
Рейтинг: 0 / 0
сканированный документ
    #34581576
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хелп тут:

http://]http://www.microsoft.com/downloads/details.aspx?familyid=7B6D9193-A1C8-4934-8007-47089FDE37DE&displaylang=en
...
Рейтинг: 0 / 0
сканированный документ
    #34581577
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
eivchenkoСОБАЧКАbankТОЧКАrsТОЧКАru
...
Рейтинг: 0 / 0
сканированный документ
    #34581586
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mds_world
в 5-й строке находится название фирмы.
мне хотя бы это вытащить :)
...
Рейтинг: 0 / 0
сканированный документ
    #34581597
Фотография BULK INSERT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
%?*?%Кто будет крайний? Разработчик, конечно...

не знаю каков ваш опыт разработчика, но если вы не в курсе позволю себе внести уточнение - крайним разработчик будет ВСЕГДА.

готов вам позавидовать если у вас еще не было повода вынести это досадное стойкое и безапелляционное убеждение самому.

самый простой способ - использовать специальные программы типа ФайнРидера для трассировки и распознавания текста еще на этапе сканирования - пусть оператор сам сканирует документ и сразу его распознает (и проверяет)

если сканируются типовые документы задача еще более упрощается - можно использовать "заточенные" пакеты например ФормРидер

на этапе сканирования документ уже будет проанализирован распознан и разнесен по полям таблиц...

париться с этой задачей из под Access от луквого ИМХО
...
Рейтинг: 0 / 0
сканированный документ
    #34581608
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kobramds_world
в 5-й строке находится название фирмы.
мне хотя бы это вытащить :)Я ничего не предлагал вытаскивать. Я предложил набивать название документа при сканировании по специально разработанной схеме, в которой бы учитывались нужные реквизиты документа. Например "ООО Рога и копыта-07-06-2007.jpg"
...
Рейтинг: 0 / 0
сканированный документ
    #34581616
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отправил - MSPAUTO.chm называется.
...
Рейтинг: 0 / 0
сканированный документ
    #34581629
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
набивать как? ручками? если да то это не пойдет.
...
Рейтинг: 0 / 0
сканированный документ
    #34581653
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BULK INSERT %?*?%Кто будет крайний? Разработчик, конечно...

не знаю каков ваш опыт разработчика, но если вы не в курсе позволю себе внести уточнение - крайним разработчик будет ВСЕГДА.

готов вам позавидовать если у вас еще не было повода вынести это досадное стойкое и безапелляционное убеждение самому.

самый простой способ - использовать специальные программы типа ФайнРидера для трассировки и распознавания текста еще на этапе сканирования - пусть оператор сам сканирует документ и сразу его распознает (и проверяет)

если сканируются типовые документы задача еще более упрощается - можно использовать "заточенные" пакеты например ФормРидер

на этапе сканирования документ уже будет проанализирован распознан и разнесен по полям таблиц...

париться с этой задачей из под Access от луквого ИМХО

Не знаю, каков ваш опыт разработчика - но предложение купить и поставить программу - дело системного аналитика. Дело разработчика - раз его уже пригласили, получить техзадание и реализовать по написанному. Что я и делаю. И у меня это работает, заказчик доволен.

Все остальное - от луквого ИМХО

Ну а по поводу страшной опасности нелокализованного офиса - спасибо, улыбнулся...
...
Рейтинг: 0 / 0
сканированный документ
    #34581668
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kobraнабивать как? ручками? если да то это не пойдет.Да, ручками. Почти уверен, что именно так и будет.
...
Рейтинг: 0 / 0
сканированный документ
    #34581709
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это не решит проблем, тогда вообще программа не нужна. хочется автоматизировать документооборот внутри подразделения, а если ручками, то то будет еще дольше :)
...
Рейтинг: 0 / 0
сканированный документ
    #34581857
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу распознавания языков:

OCR Method


Performs optical character recognition (OCR) on the specified document or image.

expression.OCR(LangId, OCROrientImage, OCRStraightenImage)
expression Required. An expression that returns a Document object or an Image object.

LangId Optional MiLANGUAGES. The language to use when performing OCR. Default is miLANG_SYSDEFAULT .

LangId can be one of the following MiLANGUAGES constants.
miLANG_CHINESE_SIMPLIFIED (2052, &H804)
miLANG_CHINESE_TRADITIONAL (1028, &H404)
miLANG_CZECH (5)
miLANG_DANISH (6)
miLANG_DUTCH (19, &H13)
miLANG_ENGLISH (9)
miLANG_FINNISH (11)
miLANG_FRENCH (12)
miLANG_GERMAN (7)
miLANG_GREEK (8)
miLANG_HUNGARIAN (14)
miLANG_ITALIAN (16, &H10)
miLANG_JAPANESE (17, &H11)
miLANG_KOREAN (18, &H12)
miLANG_NORWEGIAN (20, &H14)
miLANG_POLISH (21, &H15)
miLANG_PORTUGUESE (22, &H16)
miLANG_RUSSIAN (25, &H19)
miLANG_SPANISH (10)
miLANG_SWEDISH (29, &H1D)
miLANG_SYSDEFAULT (2048, &H800)
miLANG_TURKISH (31, &H1F)


OCROrientImage Optional Boolean. Specifies whether the OCR engine attempts to determine the orientation of the page. Default is true.

OCRStraightenImage Optional Boolean. Specifies whether the OCR engine attempts to "de-skew" the page to correct for small angles of misalignment from the vertical. Default is true.



Remarks
The OCR engine always defaults to the user's regional settings for the LangID argument, unless you specify the language explicitly when calling the OCR method; it does not retain the previously used setting. In a mixed-language environment, it is a good practice to specify the LangID argument explicitly in every call to the OCR method.
...
Рейтинг: 0 / 0
сканированный документ
    #34581897
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
Function txtOCR(fName as string) as String

  Dim miDoc As MODI.Document
  Dim miLayout As MODI.Layout
  Dim strText As String
  Dim strWord as String

  Set miDoc = New MODI.Document
  miDoc.Create fName
  miDoc.Images( 0 ).OCR
  Set miLayout = miDoc.Images( 0 ).Layout
  txtOCR = miLayout.Text
  
  Set miLayout = Nothing
  Set miDoc = Nothing

End Function


Private Sub Кнопка2_Click()
On Error Resume Next
Me!f1 = OpenDialogFileName
fdate = Date
ftime = Time
Dim rst As Recordset

Set rst = CurrentDb.OpenRecordset("Doc")

With rst
.AddNew
![Login] = fOSUserName
![FIO] = DLookup("[FIO]", "Login", "[Login] = '" & fOSUserName & "' ")
![Doc] = Me!f1
![DateDoc] = CDate(fdate + ftime)
![TextDoc] = txtOCR(Me!f1)
.Update
End With

rst.Close

MsgBox "Ссылка на документ загружена в программу !"
Me.f1 = Null
End Sub
это я вписала. %?*?% что дальше делать, что должно получиться?
...
Рейтинг: 0 / 0
сканированный документ
    #34581970
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
miDoc.Images( 0 ).OCR ( 25 )

Это чтоб точно распознал русский.

После этого у вас в поле txtDoc таблицы Doc будет загружен весь текст из отсканированного имиджа. Если нужен не весь, а определенная строка, то можно сделать

Код: plaintext
txtOCR = miLayout.Words( 37 ) & Space( 1 ) & miLayout.Words( 38 )

Крнкретные числа нужно подобрать опытным путем - отсканировав документ и посмотрев, что вернет txtOCR. Можно написать отдельную функцию для поиска определенного текста - например через vbScript.RegExp (VBScript Regular Expressions 5.5) - по маске - если речь идет о коде документа.
...
Рейтинг: 0 / 0
сканированный документ
    #34582000
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
точнее:

Код: plaintext
miDoc.Images( 0 ).OCR ( miLANG_RUSSIAN,  0 ,  0  )
...
Рейтинг: 0 / 0
сканированный документ
    #34582024
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
?%*%?
спасибо за помощь.
Код: plaintext
txtOCR = miLayout.Words( 37 ) & Space( 1 ) & miLayout.Words( 38 )
но, чтобы я здесь не подставляла (любую цифру), ничего в поле не появляется в чем может быть проблема?
...
Рейтинг: 0 / 0
сканированный документ
    #34582040
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а txtOCR = miLayout.Text - появляется? ПолеTextDoc вы создали? Добавьте после txtOCR = miLayout.Text
Код: plaintext
msgBox Left(txtOCR, 100 )

И посмотрите, что он возвращает
...
Рейтинг: 0 / 0
сканированный документ
    #34582770
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Склепал рабочий примерчик. Сканирует, распознает текст, разбивает по словам - все как просили.
Для сканирования использует Windows Image Acquisition Automation Library v2.0. Скачать можно тут:

http://www.microsoft.com/downloads/details.aspx?FamilyID=a332a77a-01b8-4de6-91c2-b7ea32537e29&DisplayLang=en

Скачиваем WIAAutSDK.zip, берем оттуда wiaaut.dll, кидаем в system32, регистрируем. После этого можно запускать приложенный пример.
...
Рейтинг: 0 / 0
сканированный документ
    #34582775
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Картинка теста. Просто взял первый пост этой ветки, часть текста пихнул в табличку, часть оставил обычным текстом, распечатал, сунул в сканер и нажал кнопочку на форме. Прогнал тест раз 10 - никаких сбоев не было, текст выходит нормально. Не FineRider, конечно, но для поставленой задачи - вполне годится...

Вверху формы - полный текст после OCR, слева - по словам, внизу - изображение отсканированной картинки. Сканер старенький Umax Astra 3400.
...
Рейтинг: 0 / 0
сканированный документ
    #34584354
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
?%*%?
Спасибо огроменное.!!!!!!!
все просто супер.
а мне твердили, что это невозможно :)
...
Рейтинг: 0 / 0
сканированный документ
    #34588937
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а под ХР как заставить работать?
...
Рейтинг: 0 / 0
сканированный документ
    #34588967
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Увы.

The Microsoft® Office XP version of Document Imaging did not include a progammable object model

Надо искать других путей.
...
Рейтинг: 0 / 0
сканированный документ
    #34588971
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
жаль.......
...
Рейтинг: 0 / 0
сканированный документ
    #34590529
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а в 2007 такое возможно?
...
Рейтинг: 0 / 0
сканированный документ
    #34590530
Фотография ILL HEAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
про 2007 - тормоз конкретный
или я
хотя моделька там кажется другая (побогаче будет)
...
Рейтинг: 0 / 0
сканированный документ
    #34590690
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дак чё брать 2007 или 2003?
с учётом данного применения?
...
Рейтинг: 0 / 0
сканированный документ
    #34590697
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а кто-нить пробовал использовать формат DjVu с аксом?
...
Рейтинг: 0 / 0
сканированный документ
    #34590702
Фотография ILL HEAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
только вчера его вод виндоус заюзал... не понял смысла в этом формате
...
Рейтинг: 0 / 0
сканированный документ
    #34590772
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
сканированный документ
    #34591023
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ILL HEADтолько вчера его вод виндоус заюзал... не понял смысла в этом формате

классно жмет. журналы , книги - бесподобно.

http://www.djvu-inf.narod.ru/

если для конторы - договора, и пр. документы - хранить в эл. виде - оптимально.
доступно для всех, в отличие от m$.
вот ещё б читать из акса .
...
Рейтинг: 0 / 0
сканированный документ
    #34591970
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня стоит DjVu Browser Plugin 6.1 от LizardTech. В компонентах он виден, кинуть его на форму - нет никаких проблем. Вся модель описана в хелпе, который идет вместе с ним. Загрузить документ -

Код: plaintext
DjVuCtl.SRC="file://d:/sampleimages/inhocannodomini.djvu"

С остальным не проблема разобраться... Если же речь о том, чтоб на лету создавать документы в этом формате - можно у той же LizardTech в SDK покапаться...

Хотя, если честно - не вижу особых оснований отказываться от pdf в пользу DjVu...
...
Рейтинг: 0 / 0
сканированный документ
    #34592501
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадяа под ХР как заставить работать?
у меня XP, все работает как часы. :)
только свот не знаю теперь как под 2000 заставить работать
...
Рейтинг: 0 / 0
сканированный документ
    #34592517
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а кому надо под XP, пишите
...
Рейтинг: 0 / 0
сканированный документ
    #34592521
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вынужден признать свою неправоту, а пессимизм необоснованым.

2 %?*?%
Спасибо, попробовал ваши идеи. Все отточено.
...
Рейтинг: 0 / 0
сканированный документ
    #34592575
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторХотя, если честно - не вижу особых оснований отказываться от pdf в пользу DjVu...

размеры файлов....
буду пробовать


автора кому надо под XP, пишите

считай что написал...
...
Рейтинг: 0 / 0
сканированный документ
    #34592616
Фотография Quiet333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kobraа кому надо под XP, пишите
и мне тоже, при попутном ветре
...
Рейтинг: 0 / 0
сканированный документ
    #34592623
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вопрос - библиотека wiaaut.dll уже загружена и зарегистрирована?
...
Рейтинг: 0 / 0
сканированный документ
    #34592675
Фотография Quiet333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kobraвопрос - библиотека wiaaut.dll уже загружена и зарегистрирована?
ещё нет
...
Рейтинг: 0 / 0
сканированный документ
    #34592692
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сначала надо записать в папку system32 wiaaut.dll, затем зарегистрировать (открыть в этой же папке command.com и указать d cnhjrt RegSvr32 wiaaut.dll)
в этом разделе есть ссылка на библиотеки :) кто не нашел, пишите адрес электронки.
...
Рейтинг: 0 / 0
сканированный документ
    #34593197
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня зарегистрировао , но не хочет робить..
...
Рейтинг: 0 / 0
сканированный документ
    #34593199
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мыло в профиле,
dll загружено и зарегистрировано.
...
Рейтинг: 0 / 0
сканированный документ
    #34593923
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ХР?
если да, то после регистрации должно работать. выслала по почте попробуй немного переделанный вариант.
...
Рейтинг: 0 / 0
сканированный документ
    #34593934
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а это есть wiaacmgr.exe в sysnem32&
...
Рейтинг: 0 / 0
сканированный документ
    #34594191
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я имел в виду ХР (2002 или 10) офис, а у тебя, судя по референсам стоит 2003 (11)
...
Рейтинг: 0 / 0
сканированный документ
    #34594209
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а пишет
отсутствует объект в данном элементе управления
...
Рейтинг: 0 / 0
сканированный документ
    #34594278
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в 2002 идет. а так, да, у меня 2003. после подключения библиотек.
а так у меня проблема с 2000.
наскалько я изучила, wiaaut.dii идет только под ХР.
если у тебя ХР, wiaaut.dii зарегистрирован, библиотеки подключены, должно работать.
...
Рейтинг: 0 / 0
сканированный документ
    #34594306
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот этого и достаточно, что у тебя 2003...
попробуй на компе , где нет 2003.
и не было...
...
Рейтинг: 0 / 0
сканированный документ
    #34606619
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всем привет.
продолжение темы.
кто-нибудь знает как сделать тоже самое но на сетевом сканере?
где надо прописать адрес сетевой?
...
Рейтинг: 0 / 0
сканированный документ
    #34606646
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нет, все-таки сканер установлен локально, и проблема, что установлено МФУ.
...
Рейтинг: 0 / 0
сканированный документ
    #34637564
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в продолжение ко всему написанному ранее.
т.к. файлов может быть много(но данные периодически удаляется), я решила записывать сам файл в поле Ole вместе со всеми данными в таблицу.

теперь вопрос такой.
есть
форма, в которой происходит сканирование документа, затем, данные выборочно записываются в ячейки (весь распознанный текст, путь к файлу, и выбранный фразы из текста), а еще есть поле miVwr(Элемент ActiveX), куда вставляется картинкака сканированного документа.
есть код на сохранение данных:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Dim rst As Recordset
Dim ws As Workspace
Dim dbname As String
Dim dbnew As Database


Set rst = CurrentDb.OpenRecordset("Doc_Temp")

With rst
.AddNew
![Login] = fOSUserName
![FIO] = DLookup("[FIO]", "Login", "[Login] = '" & fOSUserName & "' ")
![Doc] = Me!Label3
![Klient] = Me!Label4
![Summ] = Me!Label5
![DateDoc] = CDate(Date + Time)
![№] = Me!Label6

![Picture] = ??????????????

.Update
End With
rst.Close

надо в поле picture (поле Ole), записать саму картинку.

помогите...
...
Рейтинг: 0 / 0
сканированный документ
    #34637902
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
Dim rst As Recordset
Dim ws As Workspace
Dim dbname As String
Dim dbnew As Database
Dim Img, IP

Set Img = CreateObject("WIA.ImageFile")
Set IP = CreateObject("WIA.ImageProcess")

Set rst = CurrentDb.OpenRecordset("Doc_Temp")

With rst
.AddNew
![Login] = fOSUserName
![FIO] = DLookup("[FIO]", "Login", "[Login] = '" & fOSUserName & "' ")
![Doc] = Me!Label3
![Klient] = Me!Label4
![Summ] = Me!Label5
![DateDoc] = CDate(Date + Time)
![№] = Me!Label6

Img.LoadFile "C:\MyTestPic.tif"

IP.Filters.Add IP.FilterInfos("Convert").FilterID
IP.Filters( 1 ).Properties("FormatID").Value = wiaFormatJPEG
IP.Filters( 1 ).Properties("Quality").Value =  5 

Set Img = IP.Apply(Img)
rst("Picture") = Img

.Update
End With
rst.Close
...
Рейтинг: 0 / 0
сканированный документ
    #34638053
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ошибка 438 на строке

Код: plaintext
rst("picture") = Img
...
Рейтинг: 0 / 0
сканированный документ
    #34638161
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
%?*?% , хелп
ты же, знаешь, как надо исправить :(
...
Рейтинг: 0 / 0
сканированный документ
    #34638303
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только вечером смогу посмотреть...
...
Рейтинг: 0 / 0
сканированный документ
    #34638309
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
может тебе файл выслать с тем, что у меня есть?
...
Рейтинг: 0 / 0
сканированный документ
    #34638315
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кидай. Почта моя у тебя есть.
...
Рейтинг: 0 / 0
сканированный документ
    #34638919
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пропустил...

Код: plaintext
rst("Picture") = Img.FileData
...
Рейтинг: 0 / 0
сканированный документ
    #34639010
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
теперь ошибка -450
...
Рейтинг: 0 / 0
сканированный документ
    #34639031
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ok, вечером дома буду смотреть. :)
...
Рейтинг: 0 / 0
сканированный документ
    #34639034
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
%?*?%
спасибо, огромное :)
...
Рейтинг: 0 / 0
сканированный документ
    #34639922
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
%?*?% , привет.
ну как там код?
...
Рейтинг: 0 / 0
сканированный документ
    #34640184
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не успел вчера... Сейчас по ходу разберемся...

Да, там должен быть вектор:


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
Dim rst As Recordset
Dim ws As Workspace
Dim dbname As String
Dim dbnew As Database
Dim Img, IP, vc

Set Img = CreateObject("WIA.ImageFile")
Set IP = CreateObject("WIA.ImageProcess")
Set vc = CreateObject("WIA.Vector")

Set rst = CurrentDb.OpenRecordset("Doc_Temp")

With rst
.AddNew
![Login] = fOSUserName
![FIO] = DLookup("[FIO]", "Login", "[Login] = '" & fOSUserName & "' ")
![Doc] = Me!Label3
![Klient] = Me!Label4
![Summ] = Me!Label5
![DateDoc] = CDate(Date + Time)
![№] = Me!Label6

Img.LoadFile "C:\MyTestPic.tif"

IP.Filters.Add IP.FilterInfos("Convert").FilterID
IP.Filters( 1 ).Properties("FormatID").Value = wiaFormatBMP
IP.Filters( 1 ).Properties("Quality").Value =  5 

Set Img = IP.Apply(Img)
Set vc = Img.FileData
rst("Picture") = vc.BinaryData

.Update
End With
rst.Close

Так он сохранит в бинарном формате.
...
Рейтинг: 0 / 0
сканированный документ
    #34640295
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ты меня в очередной раз спасаешь :)
даж не знаю, как выразить свою благодарность.
только мне еще малюсечная деталька нужна. мне надо в отчет юту картинку запихнуть :)
поможешь?
...
Рейтинг: 0 / 0
сканированный документ
    #34640616
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С отчетом сложнее, у меня сейчас под рукой только всякий богопротивный дотнет.

Выкладывайте код, будем смотреть :)
...
Рейтинг: 0 / 0
сканированный документ
    #34640644
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот, с этим и проблема. отчет построила просто но основе таблицы. данные вставлюжтся, сделала поле Рисунок - Foto.
и туда и надо вставить данные из поля picture ^(
...
Рейтинг: 0 / 0
сканированный документ
    #34640916
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это должна быть функция, что-то вроде

Код: plaintext
1.
2.
Set vc = CreateObject("WIA.Vector")
vc.Add rs("picData")
MyPic.PictureData = vc.Picture

Но проверить сейчас не могу.
...
Рейтинг: 0 / 0
сканированный документ
    #34641563
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
попробовала это и чего-то еще, что нашла на форумах...
ничего у меня не получается:(
...
Рейтинг: 0 / 0
сканированный документ
    #34641933
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kobra,
прикреплённый пример работает?
...
Рейтинг: 0 / 0
сканированный документ
    #34644123
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо %?*?% и Бенедикт !!!!
все заработало :)
чтобы я делала без вас....
...
Рейтинг: 0 / 0
сканированный документ
    #34646362
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Раз уж начал - закончу. Тоже самое - с использованием WIA Automation Layer.
Просто, чтоб было видно, насколько он упрощает жизнь среднего (посредственного) прикладника... :)

Бенедикту - очередной раз почтение и респект, у меня так и не хватило терпения на GDI+...
...
Рейтинг: 0 / 0
сканированный документ
    #34647476
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
еще раз огромное спасибо !!!
...
Рейтинг: 0 / 0
сканированный документ
    #34649037
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kobra,
пожалуйста.

%?*?%,
думаю, если б GDI+ Flat API был бы нормально документирован, думаю, терпения бы хватило ;).
...
Рейтинг: 0 / 0
сканированный документ
    #34649259
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет еще раз, Бенедикт и %?*?%
Думаю, что это будет последний вопрос по данной теме :)
Что-то у меня совсем переклинило. Надо этот код немного изменить.
Путь к файлу+имя - ячейка Me!Label3, сохраняется в таблицу - ![Doc] = Me!Label3
так вот, мне надо вместо
Код: plaintext
Img.LoadFile "C:\Documents and Settings\eivchenko\Мои документы\Мои рисунки\MyTestPic.tif"

было сохранение этого файла (который был отсканирован)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Set Img = CreateObject("WIA.ImageFile")
Set IP = CreateObject("WIA.ImageProcess")
Set vc = CreateObject("WIA.Vector")

Set rst = CurrentDb.OpenRecordset("Doc_Temp")

With rst
.AddNew
![Login] = fOSUserName
![FIO] = DLookup("[FIO]", "Login", "[Login] = '" & fOSUserName & "' ")
![Doc] = Me!Label3
![Klient] = Me!Label4
![Summ] = Me!Label5
![DateDoc] = CDate(Date + Time)
![№] = Me!Label6
![KodVal] = Me!Label7

Img.LoadFile "C:\Documents and Settings\eivchenko\Мои документы\Мои рисунки\MyTestPic.tif"

IP.Filters.Add IP.FilterInfos("Convert").FilterID
IP.Filters( 1 ).Properties("FormatID").Value = wiaFormatBMP
IP.Filters( 1 ).Properties("Quality").Value =  5 

Set Img = IP.Apply(Img)
Set vc = Img.FileData
rst("BinData") = vc.BinaryData

.Update
End With
rst.Close
...
Рейтинг: 0 / 0
сканированный документ
    #34649519
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понял - файл уже был сохранен в конце процедуры сканирования - иначе откуда бы взялся "Путь к файлу+имя - ячейка Me!Label3"? Здесь идет вызов этого же файла для того чтоб загрузить в таблицу БД. То есть должно быть -

Код: plaintext
Img.LoadFile Me!Label3.Caption
...
Рейтинг: 0 / 0
сканированный документ
    #34649628
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на этой строке пишет ошибку 438.
...
Рейтинг: 0 / 0
сканированный документ
    #34649652
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а если оставить просто
Код: plaintext
Img.LoadFile Me.Label3
пишет, что файл занят другим процессом.
...
Рейтинг: 0 / 0
сканированный документ
    #34649719
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теперь дошло. :)

авторна этой строке пишет ошибку 438.

Label3 - это текстбокс? Тогда конечно никаких Caption. Только лучше переименовать в txtFilePath - чтоб не сбивало с толку...

авторпишет, что файл занят другим процессом.

Добавь в начало:

Код: plaintext
1.
2.
3.
4.
Dim miDoc As MODI.Document

Set miDoc = miVwr.Document
miDoc.Close True
miVwr.Document = ""
...
Рейтинг: 0 / 0
сканированный документ
    #34649766
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или просто - miVwr.Document.Close
...
Рейтинг: 0 / 0
сканированный документ
    #34649768
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ты, конечно, извини, но, видимо я совсем тормоз
чего я опять не так сделала???

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
Dim rst As Recordset
Dim ws As Workspace
Dim dbname As String
Dim dbnew As Database
Dim Img, IP, vc

Dim miDoc As MODI.Document

Set miDoc = miVwr.Document
miDoc.Close True
miVwr.Document = ""

Set Img = CreateObject("WIA.ImageFile")
Set IP = CreateObject("WIA.ImageProcess")
Set vc = CreateObject("WIA.Vector")

Set rst = CurrentDb.OpenRecordset("Doc_Temp")

With rst
.AddNew
![Login] = fOSUserName
![FIO] = DLookup("[FIO]", "Login", "[Login] = '" & fOSUserName & "' ")
![Doc] = Me!Label3
![Klient] = Me!Label4
![Summ] = Me!Label5
![DateDoc] = CDate(Date + Time)
![№] = Me!Label6
![KodVal] = Me!Label7


Img.LoadFile Me.Label3

IP.Filters.Add IP.FilterInfos("Convert").FilterID
IP.Filters( 1 ).Properties("FormatID").Value = wiaFormatBMP
IP.Filters( 1 ).Properties("Quality").Value =  5 

Set Img = IP.Apply(Img)
Set vc = Img.FileData
rst("BinData") = vc.BinaryData

.Update
End With
rst.Close
...
Рейтинг: 0 / 0
сканированный документ
    #34649781
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где ошибку-то выдает?
...
Рейтинг: 0 / 0
сканированный документ
    #34649786
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
теперь здесь ошибка 91
Код: plaintext
miDoc.Close True
...
Рейтинг: 0 / 0
сканированный документ
    #34649796
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miVwr.Document.Close

или

Dim miDoc As MODI.Document

Set miDoc = miVwr.Document
miVwr.Document = ""
miDoc.Close True
...
Рейтинг: 0 / 0
сканированный документ
    #34649830
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если
Код: plaintext
miVwr.Document.Close
пишет ошибку 424 - object required

а если
Код: plaintext
1.
2.
3.
4.
Dim miDoc As MODI.Document

Set miDoc = miVwr.Document
miVwr.Document = ""
miDoc.Close True
выдает ошибку 13 - Type mismatch
...
Рейтинг: 0 / 0
сканированный документ
    #34649835
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ошибка несоответствия на строке
Код: plaintext
miVwr.Document = ""
...
Рейтинг: 0 / 0
сканированный документ
    #34649947
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чувствую, что пока ты допишешь свою прогу, я буду знать объектные модели WIA и MODI наизусть...

Попробуй так:

Код: plaintext
1.
2.
3.
4.
5.
Dim miDoc As MODI.Document

Set miDoc = Me.MiDocView1.Document
Me.MiDocView1.FileName = ""
miDoc.Close
Set miDoc = Nothing
...
Рейтинг: 0 / 0
сканированный документ
    #34649959
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо MiDocView1 - miVwr
...
Рейтинг: 0 / 0
сканированный документ
    #34650049
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я уже много перечитала и перепробовала с этой прогой.
изначально планировалось одно, а постепенно функции растут и растут
все указала, как ты написал, опять - процесс не может получить доступ к файлу, т.к. этот файл занят другим приложением.
Код: plaintext
Img.LoadFile Me.Label3
это просто ужас какой-то...
эта программа достала меня, а я тебя...)))
...
Рейтинг: 0 / 0
сканированный документ
    #34650151
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно... Ладно, сейчас попробую проверить, что это за зверюшка там порылась... У тебя там нет никаких дополнительных процедур между сканированием и сохранением? Проверь, что везде убиваются созданные экземпляры:

Set a = ...
...
Set a = Nothing

На край всегда можно сделать так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Private Declare Function apiCopyFile Lib "kernel32" Alias "CopyFileA" _
(ByVal lpExistingFileName As String, _
ByVal lpNewFileName As String, _
ByVal bFailIfExists As Long) As Long


Sub ....

..... ' whatever you need

sDir = Me!Label3
tDir = "c:\"
fNm = MyFileName

apiCopyFile(sDir & fNm, tDir & fNm, False)

Img.LoadFile tDir  & fNm

..... ' whatever you wish

Kill tDir & fNm

End sub
...
Рейтинг: 0 / 0
сканированный документ
    #34650260
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну, смотри.
на форме у меня две кнопки: сканировать и сохранить.
вроде все просмотрела, ничего не нашла подозрительного
сейчас, я просто не сканирую, а открываю файл с диска.
в общем код такой:
Код: plaintext
1.
2.
3.
Option Compare Database
Option Explicit
Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _
    "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Код: plaintext
1.
2.
3.
4.
5.
Private Sub Command1_Click()
Dim a As Boolean

a = DocScan1()
MsgBox ("Проверьте правильность указания суммы !!!")
End Sub
DocScan1- открытие файла

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Private Function DocScan1() As Boolean

Dim blnResult As Boolean
Dim WIADevice As WIA.Device
Dim WIAProcess As WIA.ImageProcess
Dim WIAItem As WIA.Item
Dim WIAProperty As WIA.Property
Dim WIAImage As WIA.ImageFile
Dim d As String
Dim m_tempfile As String
Dim wiaDialog As New WIA.CommonDialog
Dim sArr As Variant

m_tempfile = "C:\Documents and Settings\eivchenko\Мои документы\Мои рисунки\М0304-3013 от 28.05.07.tif"

        d = txtOCR(m_tempfile)
        Me.Label2 = d
        sArr = Split(d, " ")
        Me.Label3 = m_tempfile
        Me.Label4 = sArr( 19 ) & " " & sArr( 20 )
End Function

если сканировать, то на кнопке
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
Private Function DocScan() As Boolean
On Error GoTo error_DocScan

Dim blnResult As Boolean
Dim WIADevice As WIA.Device
Dim WIAProcess As WIA.ImageProcess
Dim WIAItem As WIA.Item
Dim WIAProperty As WIA.Property
Dim WIAImage As WIA.ImageFile
Dim d As String
Dim m_tempfile As String
Dim wiaDialog As New WIA.CommonDialog
Dim sArr As Variant
Dim ii, i
Dim counter1, counter2
Dim str_val As String
Dim str1 As String
Dim mask_sym As Boolean


m_tempfile = "\\Srvparus.rs.ru\groups\OTD\Projects-Ryzhov\Документооборот_по_валютным_переводам\заявления\заявление" _
& "_" & DatePart("d", Now()) & "_" & DatePart("m", Now()) & DatePart("y", Now()) _
& "_" & DatePart("h", Now()) & "_" _
& DatePart("n", Now()) & "_" & DatePart("s", Now()) & ".tif"


blnResult = True
Set WIADevice = wiaDialog.ShowSelectDevice(WIA.WiaDeviceType.ScannerDeviceType, False, True)

If WIADevice.Type = WIA.ScannerDeviceType Then
    Set WIAProcess = CreateObject("Wia.ImageProcess")
    WIAProcess.Filters.Add WIAProcess.FilterInfos("Convert").FilterID
    WIAProcess.Filters(WIAProcess.Filters.Count).Properties("FormatID").Value = _
    WIA.wiaFormatTIFF
    
    For Each WIAItem In WIADevice.Items
        DoEvents

        For Each WIAProperty In WIAItem.Properties
            Select Case WIAProperty.PropertyID
                Case  6146  ' Current Intent
                    WIAProperty.Value =  4 
                Case  6147  ' Horizontal Resolution
                    WIAProperty.Value =  2400  ' 300 DPI
                Case  6148  ' Vertical Resolution
                    WIAProperty.Value =  2400  ' 300 DPI
            End Select
        Next

        Set WIAImage = WIAItem.Transfer
        Set WIAImage = WIAProcess.Apply(WIAImage)
        WIAImage.SaveFile m_tempfile
        d = txtOCR(m_tempfile)
        Me.Label2 = d
        sArr = Split(d, " ")
        Me.Label3 = m_tempfile
        
        Me.Label4 = Null
        Me.Label5 = Null
        Me.Label6 = Null
        
        mask_sym = False
        counter1 =  0 
        counter2 =  0 
        
        For i =  0  To UBound(sArr)
        
        If mask_sym = True And (((sArr(i) Like "###*") = True And (sArr(i) Like "000") = False) Or (sArr(i) Like "*Россия*") = True Or (sArr(i) Like "*М*ск*в*") = True) Then
        counter2 = i -  1 
        Exit For
        End If
        
        If (sArr(i) Like "##########") = True Then
        counter1 = i +  1 
        mask_sym = True
        End If
        
        Next i
        
        str_val = ""
        For i = counter1 To counter2
        If (sArr(i) Like "*щ*тв*") = True Or (sArr(i) Like "*гр*нич*" = True) Or (sArr(i) Like "*тв*енн*" = True) Then
        str1 = "О"
        Else
        If (sArr(i) Like "*акрыт*" = True) Then
        str1 = "З"
        Else
        If (sArr(i) Like "акц*н*рн*" = True) Then
        str1 = "А"
        Else
        If (sArr(i) Like "с" = True) Then
        str1 = ""
        Else
        str1 = sArr(i) + " "
        End If
        End If
        End If
        End If
        
        str_val = str_val + str1
        If (str_val Like "ЗАО") = True Or (str_val Like "ООО") = True Then
        str_val = str_val + " "
        End If
        Next i
        
        For i = counter2 To UBound(sArr)
        If (sArr(i) Like "*#.##") = True Then
        Me.Label5 = sArr(i)
        Exit For
        End If
        
        If (sArr(i) Like "*банк") = True Then
        Exit For
        End If
        Next i
        
        Me.Label4 = str_val
    
    Next
Else
    blnResult = False
    MsgBox "Scanner not found"
End If

DocScan = blnResult
Exit Function

error_DocScan:
DocScan = False
MsgBox "Scanning failed - " & Err.Description
Err.Clear
End Function

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Private Function txtOCR(fName As String) As String

Dim miDoc As MODI.Document
Dim miWord As MODI.Word
Dim j As Integer, i As Integer
  
  Set miDoc = New MODI.Document
  miDoc.Create fName
  miDoc.Images( 0 ).OCR miLANG_RUSSIAN,  0 ,  0 
  j = miDoc.Images( 0 ).Layout.Words.Count -  1 
  For i =  0  To j
  Set miWord = miDoc.Images( 0 ).Layout.Words(i)
  txtOCR = txtOCR & Space( 1 ) & miWord.Text
  txtOCR = Trim(txtOCR)
  Next
  miVwr.FitMode = miByWidth
  miVwr.Document = miDoc
  Set miWord = Nothing
  Set miDoc = Nothing

End Function

и кнопка сохранить
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
Private Sub Save_Click()

Dim rst As Recordset
Dim ws As Workspace
Dim dbname As String
Dim dbnew As Database
Dim Img, IP, vc


Set Img = CreateObject("WIA.ImageFile")
Set IP = CreateObject("WIA.ImageProcess")
Set vc = CreateObject("WIA.Vector")

Set rst = CurrentDb.OpenRecordset("Doc_Temp")

With rst
.AddNew
![Login] = fOSUserName
![FIO] = DLookup("[FIO]", "Login", "[Login] = '" & fOSUserName & "' ")
![Doc] = Me!Label3
![Klient] = Me!Label4
![Summ] = Me!Label5
![DateDoc] = CDate(Date + Time)
![№] = Me!Label6
![KodVal] = Me!Label7


Img.LoadFile Me.Label3

IP.Filters.Add IP.FilterInfos("Convert").FilterID
IP.Filters( 1 ).Properties("FormatID").Value = wiaFormatBMP
IP.Filters( 1 ).Properties("Quality").Value =  5 

Set Img = IP.Apply(Img)
Set vc = Img.FileData
rst("BinData") = vc.BinaryData

.Update
End With
rst.Close

End Sub
...
Рейтинг: 0 / 0
сканированный документ
    #34650275
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, и в конце этой процедуры должно идти

Set Img = Nothing
Set IP = Nothing
Set vc = Nothing

Проверил, у меня файл освобождается нормально -

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Private Sub Command1_Click()

MiDocView1.FileName = "C:\Test.tif"
MiDocView1.FitMode = miByTextWidth

End Sub

Private Sub Command2_Click()
Dim miDoc As MODI.Document

Set miDoc = Me.MiDocView1.Document
Me.MiDocView1.FileName = ""
miDoc.Close
Set miDoc = Nothing

End Sub

Private Sub Command3_Click()
Dim Img As New WIA.ImageFile

Img.LoadFile "C:\Test.tif"
Set Img = Nothing

End Sub

Все отрабатывает без ошибок в последовательности Command1 > Command2 > Command3
...
Рейтинг: 0 / 0
сканированный документ
    #34650457
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бардак у тебя в коде, матушка! Созданные экземпляры объектов надо уничтожать!

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
Private Function DocScan1() As Boolean

Dim blnResult As Boolean
Dim d As String
Dim m_tempfile As String
Dim sArr As Variant

m_tempfile = "..."
miVwr.FileName = m_tempfile
miVwr.FitMode = miByTextWidth

        d = txtOCR(m_tempfile)
        Me.Label2 = d
        sArr = Split(d, " ")
        Me.Label3 = m_tempfile
        Me.Label4 = sArr( 19 ) & " " & sArr( 20 )
End Function



Private Function DocScan() As Boolean
On Error GoTo error_DocScan

Dim blnResult As Boolean
Dim WIADevice As WIA.Device
Dim WIAProcess As WIA.ImageProcess
Dim WIAItem As WIA.Item
Dim WIAProperty As WIA.Property
Dim WIAImage As WIA.ImageFile
Dim d As String
Dim m_tempfile As String
Dim wiaDialog As New WIA.CommonDialog
Dim sArr As Variant
Dim ii, i
Dim counter1, counter2
Dim str_val As String
Dim str1 As String
Dim mask_sym As Boolean


m_tempfile = "\\Srvparus.rs.ru\groups\OTD\Projects-Ryzhov\???????????????_??_????????_?????????\?????????\?????????" _
& "_" & DatePart("d", Now()) & "_" & DatePart("m", Now()) & DatePart("y", Now()) _
& "_" & DatePart("h", Now()) & "_" _
& DatePart("n", Now()) & "_" & DatePart("s", Now()) & ".tif"


blnResult = True
Set WIADevice = wiaDialog.ShowSelectDevice(WIA.WiaDeviceType.ScannerDeviceType, False, True)

If WIADevice.Type = WIA.ScannerDeviceType Then
    Set WIAProcess = CreateObject("Wia.ImageProcess")
    WIAProcess.Filters.Add WIAProcess.FilterInfos("Convert").FilterID
    WIAProcess.Filters(WIAProcess.Filters.Count).Properties("FormatID").Value = _
    WIA.wiaFormatTIFF
    
    For Each WIAItem In WIADevice.Items
        DoEvents

        For Each WIAProperty In WIAItem.Properties
            Select Case WIAProperty.PropertyID
                Case  6146  ' Current Intent
                    WIAProperty.Value =  4 
                Case  6147  ' Horizontal Resolution
                    WIAProperty.Value =  2400  ' 300 DPI
                Case  6148  ' Vertical Resolution
                    WIAProperty.Value =  2400  ' 300 DPI
            End Select
        Next

        Set WIAImage = WIAItem.Transfer
        Set WIAImage = WIAProcess.Apply(WIAImage)
        WIAImage.SaveFile m_tempfile
        d = txtOCR(m_tempfile)
        Me.Label2 = d
        sArr = Split(d, " ")
        Me.Label3 = m_tempfile
        
        Me.Label4 = Null
        Me.Label5 = Null
        Me.Label6 = Null
        
        mask_sym = False
        counter1 =  0 
        counter2 =  0 
        
        For i =  0  To UBound(sArr)
        
        If mask_sym = True And (((sArr(i) Like "###*") = True And (sArr(i) Like "000") = False) Or (sArr(i) Like "*??????*") = True Or (sArr(i) Like "*?*??*?*") = True) Then
        counter2 = i -  1 
        Exit For
        End If
        
        If (sArr(i) Like "##########") = True Then
        counter1 = i +  1 
        mask_sym = True
        End If
        
        Next i
        
        str_val = ""
        For i = counter1 To counter2
        If (sArr(i) Like "*?*??*") = True Or (sArr(i) Like "*??*???*" = True) Or (sArr(i) Like "*??*???*" = True) Then
        str1 = "?"
        Else
        If (sArr(i) Like "*?????*" = True) Then
        str1 = "?"
        Else
        If (sArr(i) Like "???*?*??*" = True) Then
        str1 = "?"
        Else
        If (sArr(i) Like "?" = True) Then
        str1 = ""
        Else
        str1 = sArr(i) + " "
        End If
        End If
        End If
        End If
        
        str_val = str_val + str1
        If (str_val Like "???") = True Or (str_val Like "???") = True Then
        str_val = str_val + " "
        End If
        Next i
        
        For i = counter2 To UBound(sArr)
        If (sArr(i) Like "*#.##") = True Then
        Me.Label5 = sArr(i)
        Exit For
        End If
        
        If (sArr(i) Like "*????") = True Then
        Exit For
        End If
        Next i
        
        Me.Label4 = str_val
    
    Next
Else
    blnResult = False
    MsgBox "Scanner not found"
End If

DocScan = blnResult

Set WIADevice = Nothing
Set WIAProcess = Nothing
Set WIAItem = Nothing
Set WIAProperty = Nothing
Set WIAImage = Nothing
Set wiaDialog = Nothing

Exit Function

error_DocScan:
DocScan = False
MsgBox "Scanning failed - " & Err.Description
Err.Clear
End Function



Private Sub Save_Click()

Dim rst As Recordset
Dim ws As Workspace
Dim dbname As String
Dim dbnew As Database
Dim Img As New WIA.ImageFile
Dim IP As New WIA.ImageProcess
Dim vc As New WIA.Vector
Dim miDoc As MODI.Document

If Me.MiDocView1.FileName <> "" Then
    Set miDoc = Me.MiDocView1.Document
    Me.MiDocView1.FileName = ""
    miDoc.Close
    Set miDoc = Nothing
End If

Set rst = CurrentDb.OpenRecordset("Doc_Temp")

With rst
.AddNew
![Login] = fOSUserName
![FIO] = DLookup("[FIO]", "Login", "[Login] = '" & fOSUserName & "' ")
![Doc] = Me!Label3
![Klient] = Me!Label4
![Summ] = Me!Label5
![DateDoc] = CDate(Date + Time)
![?] = Me!Label6
![KodVal] = Me!Label7


Img.LoadFile Me.Label3

IP.Filters.Add IP.FilterInfos("Convert").FilterID
IP.Filters( 1 ).Properties("FormatID").Value = wiaFormatBMP
IP.Filters( 1 ).Properties("Quality").Value =  5 

Set Img = IP.Apply(Img)
Set vc = Img.FileData
rst("BinData") = vc.BinaryData

.Update
End With
rst.Close
Set Img = Nothing
Set IP = Nothing
Set vc = Nothing
Set rst = Nothing

End Sub
...
Рейтинг: 0 / 0
сканированный документ
    #34653285
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет, %?*?%
сделала все как ты писал...
но у меня опять пишет, что файл занят (((
я скоро повешусь на шнуре от мышки...
...
Рейтинг: 0 / 0
сканированный документ
    #34653353
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
m_tempfile = "\\Srvparus.rs.ru\groups\OTD\Projects-Ryzhov\

Это уже какие-то косяки с сервером - права доступа и прочее. Сохраняй файл сначала локально. После завершения всех операций - копируй на сервер. При открытии сохраненного файла - копируй его в локал через API, который я приводил на прошлой странице, при закрытии - стирай.

Или разбирайся с сервером...

PS Может мне в ваш банк уже штатным IT консультантом устроиться? Я не жадный, много не попрошу...
...
Рейтинг: 0 / 0
сканированный документ
    #34653512
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я сейчас вообще просто пытаюсь открыть файл локально(не сканировать и сохранять на сервер :(( )
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Dim blnResult As Boolean
Dim d As String
Dim m_tempfile As String
Dim sArr As Variant

Me.Label2 = Null
Me.Label3 = Null
Me.Label4 = Null
Me.Label5 = Null
Me.Label6 = Null

m_tempfile = "C:\Documents and Settings\Мои документы\Мои рисунки\М0304-3013 от 28.05.07.tif"

miVwr.FileName = m_tempfile
miVwr.FitMode = miByTextWidth

        d = txtOCR(m_tempfile)
        Me.Label2 = d
        sArr = Split(d, " ")
        Me.Label3 = m_tempfile
        Me.Label4 = sArr( 19 ) & " " & sArr( 20 )
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Private Function txtOCR(fName As String) As String

Dim miDoc As MODI.Document
Dim miWord As MODI.Word
Dim j As Integer, i As Integer
  
  Set miDoc = New MODI.Document
  miDoc.Create fName
  miDoc.Images( 0 ).OCR miLANG_RUSSIAN,  0 ,  0 
  j = miDoc.Images( 0 ).Layout.Words.Count -  1 
  For i =  0  To j
  Set miWord = miDoc.Images( 0 ).Layout.Words(i)
  txtOCR = txtOCR & Space( 1 ) & miWord.Text
  txtOCR = Trim(txtOCR)
  Next
  miVwr.FitMode = miByWidth
  miVwr.Document = miDoc
  
  Set miWord = Nothing
  Set miDoc = Nothing

  
End Function

а ты из какого города?
...
Рейтинг: 0 / 0
сканированный документ
    #34653562
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отключи везде вывод изображения в miVwr. Без него работает?
...
Рейтинг: 0 / 0
сканированный документ
    #34653698
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ты просто волшебник :)
отключила вывод изображения в форму - заработало УРА
...
Рейтинг: 0 / 0
сканированный документ
    #34653863
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит у тебя где-то все-таки зависает экземпляр объкта, использующего файл... Не могу понять где - у меня такого не происходит, файл освобождается нормально.

Можно и отказаться от MODI Viewer - все равно ты его фичи не используешь, и выводить загруженную картинку в обычный Image control.

автора ты из какого города?

Из столицы... государства Израиль :)
...
Рейтинг: 0 / 0
сканированный документ
    #34653981
kobra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ладно, я уже ничего менять не хочу, а вдруг опять слетит... и перестанет работать. я этого не переживу :)
...
Рейтинг: 0 / 0
сканированный документ
    #34655359
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кажется, нашел в чем причина такого поведения. Хоть Microsoft этого и не требует, но объект Document всегда надо закрывать перед обнулением...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dim miDoc as MODI.Document

Set miDoc = ...

...

miDoc.Close
Set miDoc = Nothing
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
сканированный документ
    #36525600
Fleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решил поднять данную тему так как столкнулся с непреодолимой для меня задачей по этому вопросу.
Обсуждаемые здесь примеры у меня замечательно работают при работе с обычным планшетным сканером, но есть проблемы при использовании сканера с автоматической подачей документов. При выполнении
Код: plaintext
Set WIAImage = WIAItem.Transfer
выдает ошибку при окончании бумаги в лотке авто подачи
-2145320957 The user requested a scan and there are no documents left in the document feeder.
Пробовал перехватывать ошибку, и продолжить выполнение функции, при выполнении следующего
Код: plaintext
Set WIAImage = WIAProcess.Apply(WIAImage)

выдает аналогичную ошибку об окончании бумаги ,но уже с другим кодом ошибки.

В целом задача состоит в следующем, после каждой отсканированной страницы, выполнить сканирование и поиск необходимого фрагмента текста, сохранить изображение в БД, перейти к сканированию следующей страницы, и так до окончания бумаги в лотке автоподачи т.е суть проблемы состоит в том чтобы определить событие которое происходит после сканирования каждой страницы.
Может быть кто-нибудь сталкивался с аналогичной проблемой? подскажите в какую сторону копать?
...
Рейтинг: 0 / 0
сканированный документ
    #36525792
%%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
%%
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    On Error Resume Next

    Set WIAImage = WIAItem.Transfer
    Set WIAImage = WIAProcess.Apply(WIAImage)

    If Err.Number <>  0  Then 
      ... ' get out!
    End If
...
Рейтинг: 0 / 0
сканированный документ
    #36525886
Fleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
On Error Resume Next

        Set WIAImage = WIAItem.Transfer
        Set WIAImage = WIAProcess.Apply(WIAImage)
после выполнения объект WIAImage = Nothing
соответственно дальнейшие действия - бессмысленны.
...
Рейтинг: 0 / 0
сканированный документ
    #36529842
Фотография udgeen69
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, как задать для камеры фокусное расстояние? А то фото сделать получается, но вот с фокусом - беда. Фотик: canan power shot s3 is (хотя это небось не важно...)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Dim WIADevice As WIA.Device
Dim WIAProcess As WIA.ImageProcess
Dim WIAItem As WIA.Item
Dim WIAProperty As WIA.Property
Dim WIAImage As WIA.ImageFile
Dim wiaDialog As New WIA.CommonDialog
Dim dc As DeviceCommand


Set WIADevice = wiaDialog.ShowSelectDevice(, False, True)

    Set WIAProcess = New WIA.ImageProcess
    WIAProcess.Filters.Add WIAProcess.FilterInfos("Convert").FilterID
    
    
    WIAProcess.Filters(WIAProcess.Filters.Count).Properties("FormatID").Value = _
    WIA.wiaFormatJPEG
   Set WIAItem = WIADevice.ExecuteCommand(wiaCommandTakePicture)
 

   Set WIAImage = WIAItem.Transfer
   Set WIAImage = WIAProcess.Apply(WIAImage)
   If Dir("C:\Test.jpg") <> "" Then Kill "C:\Test.jpg"
   WIAImage.SaveFile "C:\Test.jpg"
   Me.Image2.Picture = LoadPicture("C:\Test.jpg")
Вот тут
ссылка
есть слова:
CameraDeviceFocusMode WIA_DPC_FOCUS_MODE
CameraDeviceManualDist WIA_DPC_FOCUS_MANUAL_DIST
Без примера не понимаю, как использовать... А без фокуса в моей задаче - труба.
...
Рейтинг: 0 / 0
сканированный документ
    #36769921
jbond81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скажите, а MODI (Off 2007) можно распространять royalty free (как например Access 2007 Runtime?)

или для этого обязательна лицензия Office 2007 на End-User-PC?
...
Рейтинг: 0 / 0
сканированный документ
    #36991228
Уважающий ВсехВас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
%?*?%Подключить в референсах Microsoft Office Document Imaging 11.0 Type Libriary


Ну вот я получил из файла с разширением DjVu файл с расширением .tif!
Перегнал его в Microsoft Office Document Imaging.
ВРОДЕ БЫ ЗДЕСЬ(!?) я могу выполнять с этим файлом простейшие редакторские функции,а как-то:
-выделить часть текста;
-перенести часть текста;
-удалить....
Однка файл "висит" как рисунок.
Вопрос №1.
Как мне подключить вышеуказанную библиотеку?
И где в пакете Microsoft Office Document Imaging "референсы"?
Заранее благодарен за ответ в любой форме, ......
а размер моей благодарности тов. Ёжик'у не знает границ! (Это к слову).
...
Рейтинг: 0 / 0
сканированный документ
    #36998443
MikeK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважающий ВсехВас, если не государственная тайна - поделись секретом Золотого Ключика - как djvu в tiff переделал? Я, например, создаю COM-объект DjVuControl.DjVuCtl, свойство SRC = "file://c:/filename.djvu", а дальше не могу ни один метод вызвать (например, PrintDocTo() - можно было бы прямо в MODI принтер печатать), да и остальные свойства странные... Делаю все в PowerShell.
...
Рейтинг: 0 / 0
сканированный документ
    #37045083
Jogkin_Kot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток.
Что то ни как не могу понять:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Private Function txtOCR(fName As String) As String

Dim miDoc As MODI.Document
Dim miWord As MODI.Word
Dim j As Integer, i As Integer
  
  Set miDoc = New MODI.Document
  miDoc.Create fName
  miDoc.Images( 0 ).OCR miLANG_RUSSIAN,  0 ,  0 
  j = miDoc.Images( 0 ).Layout.Words.Count -  1 
  For i =  0  To j
  Set miWord = miDoc.Images( 0 ).Layout.Words(i)
  txtOCR = txtOCR & Space( 1 ) & miWord.Text
  txtOCR = Trim(txtOCR)
  Next
  miVwr.FitMode = miByWidth
  miVwr.Document = miDoc
  
  Set miWord = Nothing
  Set miDoc = Nothing
  
End Function

Вот в этом месте:
Код: plaintext
  Set miDoc = New MODI.Document
выдает ошибку 429 - ActivX component cant's create object.
Что я не так делаю???
...
Рейтинг: 0 / 0
сканированный документ
    #37045945
Уважающий ВсехВас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikeK,

Сожалею, что не смог сразу ответить, (по весьма уважительным причинам). Но м.б. это и к лучшему.Но вначале выскажу свою точку зрения, а решать Вам.
У меня стояла задача "перегнать" текст с рисунками в Word, и там с ним работать.
Из жизненых соображений я сразу же искал пакет, который из DjVu перегонит в один из наиболее распространёных форматов, например .BMP. Сейчас работаю с пакетом DjVu Viewer.
Ну а перегнав в .BMP, с помощью пакета ABBYY FineReader 8.0 уже сохраняю в Word, где обширнейшее море об"ектов.
...
Рейтинг: 0 / 0
сканированный документ
    #37059238
ALEXIS_22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые, у меня Windos XP, файл winaaut.dll отсутствует. Нет у кого-нибудь возможности поделиться. Спасибо.
...
Рейтинг: 0 / 0
сканированный документ
    #37059256
Фотография Гарри2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALEXIS_22,
а там брать пробовали? 4245541
...
Рейтинг: 0 / 0
сканированный документ
    #37059259
оно там
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
сканированный документ
    #37059281
ALEXIS_22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Каюсь, пропустил ссылку. ("мартышка к старости слаба глазами стала ...")
Дело в том, что на рабочем месте имею ограничение на скачивание потенциально небезопасных файлов. До наших информационщиков достучаться нелегко. поэтому если есть укого возможность - буду благодарен.
...
Рейтинг: 0 / 0
сканированный документ
    #37059298
Фотография Гарри2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALEXIS_22,
Алексу от Юстаса
...
Рейтинг: 0 / 0
сканированный документ
    #37059302
Фотография Гарри2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
сканированный документ
    #37059303
Фотография Гарри2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
сканированный документ
    #37059305
Фотография Гарри2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
сканированный документ
    #37059331
ALEXIS_22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гарри2010, спасибо !!!
...
Рейтинг: 0 / 0
сканированный документ
    #37059434
ALEXIS_22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожалению ошибка -

"Scannig failed - no WIA devise of the selected type is available"
Если я правильно понимаю, на компьютере должен быть установлен сканер, а если мне нужно просто сканированный файл распознать?
...
Рейтинг: 0 / 0
сканированный документ
    #37059782
OCR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OCR
Гость
ALEXIS_22,

Распознать - это OCR? Пробуйте MODI (Microsoft Office Document Imaging).
...
Рейтинг: 0 / 0
сканированный документ
    #37097973
vikips
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ставлю на форму Microsoft Office Document Imaging Viewer Control, access 2003

при установке любых свойств, в частности
MiDocView6.FileName = "E:\test.tif"
пишет что не поддерживает данное свойство
...
Рейтинг: 0 / 0
сканированный документ
    #37098344
vikips,
Код: plaintext
1.
2.
 Dim mdv As MiDocView
 Set mdv = MiDocView6.Object
 mdv.FileName = "E:\test.tif"
...
Рейтинг: 0 / 0
сканированный документ
    #37098452
vikips
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Set mdv = MiDocView6.Object
ругается:
отсутствует объект в данным элементе управления
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
сканированный документ
    #37811639
ALEXIS_22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу прощения, но возвращаюсь к теме вновь.
Подключен сканер, скачаны и зарегистрированы необходимые библиотеки (у меня Windows XP (SP3)).
Пример 4245541 не могу запустить. При открытии формы пишет "Отсутствует объект в элементе управления".
Компиляция кода проходит без ошибок.

Надо ли понимать, что дело в этом.
%?*?% Увы.

The Microsoft® Office XP version of Document Imaging did not include a progammable object model

Надо искать других путей.

Ведь вроде бы далее топикстартер писала, что у нее тоже XP и все нормально.
...
Рейтинг: 0 / 0
сканированный документ
    #37817123
ALEXIS_22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALEXIS_22При открытии формы пишет "Отсутствует объект в элементе управления".
С этим разобрался. После регистрации заменил этот элемент на такой же на своей машине. Не сразу ( !!!), но ошибка исчезла.
Далее сканирование происходит нормально , создается файл, но при последующем его распознавании возникает ошибка (см. Рис.). Если кто, что-то подскажет, буду очень признателен.
На всякий случай еще раз напомню о каком примере из этого топика идет речь ( 4245541 )
...
Рейтинг: 0 / 0
сканированный документ
    #37817450
ALEXIS_22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробовал изменить на
Код: vbnet
1.
2.
miDoc.Create fName
miDoc.Images(0).OCR

,
но та же ошибка
...
Рейтинг: 0 / 0
сканированный документ
    #37817735
ALEXIS_22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
miDoc.Create fName


Объект создается. Далее например, можно его сохранить под другим именем (проверил) и создать файл
Но вот попытка использовать
Код: vbnet
1.
miDoc.Images(0)

вызывает ошибку.
Так что пока "Увы"
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
сканированный документ
    #38820955
AtiX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А кто-то пробовал реализовать запрос следующей страницы для сканирования? Чтобы в один TIF файл отсканировать многостраничный документ.
...
Рейтинг: 0 / 0
162 сообщений из 162, показаны все 7 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / сканированный документ
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]