21/07/2015, 17:24
Taranan Dokümandan Veri Alınıp Tabloya Aktarılması
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
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
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
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.
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.