Taranan Dokümandan Veri Alınıp Tabloya Aktarılması

1 2 3
21/07/2015, 17:24

mehmetdemiral

Dediğiniz konuyu araştırayım, yardımcı olurum. Şaka da arada iyi gidiyor değil mi O da lazım insana.
21/07/2015, 18:00

aliyuzen

zaman ayırdığınız için teşekkürler.
27/07/2015, 22:26

esrefigit

Şayet makinelerden gelen formlar senin eklediğin gibi standart bir formdaysa formlari tarayıcıya koyar sonra hepsini çok sayfali tif olrak tararsin ondan sonra asagidaki kod ile cebelleserek yapsbilirsin
Sub OCRReader()
Dim doc1 As MODI.Document
Dim inputFile As String
Dim strRecText As String
Dim imageCounter As Integer
inputFile = Application.GetOpenFilename
strRecText = ""
Set doc1 = New MODI.Document
doc1.Create (inputFile)
doc1.OCR ' this will ocr all pages of a multi-page tiff file
For imageCounter = 0 To (doc1.Images.Count - 1) ' work your way through each page of results
strRecText = strRecText & doc1.Images(imageCounter).Layout.Text ' this puts the ocr results into a string
Next
fnum = FreeFile()
Open "C:\Test\testmodi.txt" For Output As fnum
Print #fnum, strRecText
Close #fnum
doc1.Close
End Sub
Bu arada modi referansını etkinleştirmeyi unutma ve bu kod basit hali
27/07/2015, 23:15

esrefigit

Function Get_Purchase_Order(fileName As String) As String

Dim MDoc As MODI.Document
Dim MLayout As MODI.Layout
Dim MWord As MODI.Word
Dim OCRtext As String
Dim p1 As Long, p2 As Long

Set MDoc = New MODI.Document

MDoc.Create fileName
MDoc.Images(0).OCR

Set MLayout = MDoc.Images(0).Layout
OCRtext = ""
For Each MWord In MLayout.Words
OCRtext = OCRtext & " " & MWord.Text
Next
MDoc.Close False

Get_Purchase_Order = ""

p1 = InStr(OCRtext, "Purchase Order:")
If p1 > 0 Then
p1 = p1 + Len("Purchase Order:")
p2 = InStr(p1, OCRtext, "Job Number:")
If p2 > 0 Then Get_Purchase_Order = Mid(OCRtext, p1, p2 - p1)
End If

Set MLayout = Nothing
Set MDoc = Nothing

End Function
Buda belgedeki metnin bir bölümünü alma
28/07/2015, 00:11

esrefigit

Sadece sayfada beli bir bölümü alacaksan
Set miLayout = miDoc.Images(0).Layout
miLayout.Words(36).Text
Yani 36 kelime yi alır sen artık kalanını araştır ben sana yolunu gösterdim eski günler olsaydi sana örnek yapardim ancak zamanim yok
28/07/2015, 11:13

esrefigit

senin office versiyonunu bilmiyorum modi kodları 2007 office sonrasında çalışmıyor 2010 için bir yükleme önerisi var ama hiç denemedim ondan dolayı sana daha basit bir pdf tarama kodu gönderiyorum ancak bu kodu kullanabbilmen için sayfaları çoksayfalı ve aranabilir pdf olarak kaydedeceksin 
Sub pdftara()

    Dim objApp As Object
    Dim objPDDoc As Object
    Dim objjso As Object
    Dim wordsCount As Long
    Dim page As Long
    Dim i As Long
    Dim strData As String
    Dim strFileName As String
      strFileName = CurrentProject.Path & "\" & "20150716110246646.pdf"
    Set objApp = CreateObject("AcroExch.App")
    Set objPDDoc = CreateObject("AcroExch.PDDoc")
    'AD.1 open file, if =false file is damage
    If objPDDoc.Open(strFileName) Then
        Set objjso = objPDDoc.GetJSObject
        For page = 0 To objPDDoc.GetNumPages - 1
            wordsCount = objjso.GetPageNumWords(page)
          MsgBox objjso.getPageNthWord(page, 10)
        Next
          Else
       End If
End Sub
 kod ilk sayfaya gidiyor sayfadaki metinleri sayıyor senin sayfada 49 metin var ve bunun 10. olanı makinenin seriali olan  V9414800324 metin ve bunu msgbox ile gösteriyor sonra diğer sayfaya gidiyor ve ordaki seriali gösteriyor anlayacağın her metinin bir sırası var 27. metin ise 12004 bu işte sen bu şekilde metinlerin sırasını belirterek 2000 tane makinenin çıktılarını tek bir tıklama ile veritabanına aktarırsın örnek ektedir.
1 2 3