Hediye Excel Kitabı Ve Altın Üyelik Çekiliş Sonuçları İçin [Tıklayınız]
 Konu Araçları | Seçenekler: | Gösterim Stili
Tarih
01/10/2017 23:01
Konu Sahibi
Uğur ŞİRİN
Yorumlar
3
Okunma
284
Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 5
  • 4
  • 3
  • 2
  • 1

Derecelendirme: 0/5 - 0 oy

Uğur ŞİRİN

Aktif Üye
Kullanici Avatari
Aktif Üye
U.... Ş....
37
05/06/2017
10
03/10/2017,20:48
Çözüldü 
Merhaba arkadaşlar, elimde 30.000 adet pdf var. Bu pdf sayfalar müşteri bilgilerini barındırıyor. Her bir pdf de müşteriye ait bilgiler var. Bu pdf lerde bulunan bilgileri veritabanina aktarmak istiyorum. 30.000 kişinin adı, soyadı, telefon numarası, adresi, araç bilgileri, çalıştığı iş yeri vb. bilgiler kayıtlı.

Her sayfadaki bilgileri ilgili sutunlara aktarmak istiyorum. Böylece tüm müşterilere ait elimde veri bankası olacak ve arama yöntemi ile araç sahibi olanları ayrı, meslek gruplarına göre ayrı ayrı, cinsiyet ve yaş durumlarına göre ayrı ayrı kategorilemek için veritabanı yapmak istiyorum. 

Danışmak istediğim husus: pdf den verileri ayrı ayrı arayarak veritabanına çekmem mümkün mü? 

Her PDF form şeklinde yani her bilginin yeri PDF icinde aynı yerde..


Cevapla

alpeki99

Düşünmek en zor iştir...
Kullanici Avatari
Uzman
O....
6.113
29/10/2008
Bursa
Yazılım Geliştirici
Ofis 2010 32 Bit
12/02/2018,13:24
iTextSharp kullanarak PDF belgelerinizin içeriğini okuyabilirsiniz. İşin klasördeki PDF leri dolaşması, okunanları farklı bir yere taşıması, hatalı olanların loglanması gibi pek çok yan işlerini unutmamak lazım


AccessTr.Net teknik konular içeren bir sitedir. Bu tip sitelerde en iyi şekilde yardım alabilmeniz için Site Kurallarını mutlaka okumanız ve buna göre hareket etmeniz lazım.
Cevapla

drummers

Omur Can
Kullanici Avatari
Destek
O.... C....
407
11/05/2009
125
İzmir
Ofis 2003
17/02/2018,11:15
(01/10/2017, 23:01)Uğur ŞİRİN Adlı Kullanıcıdan Alıntı: Merhaba arkadaşlar, elimde 30.000 adet pdf var. Bu pdf sayfalar müşteri bilgilerini barındırıyor. Her bir pdf de müşteriye ait bilgiler var. Bu pdf lerde bulunan bilgileri veritabanina aktarmak istiyorum. 30.000 kişinin adı, soyadı, telefon numarası, adresi, araç bilgileri, çalıştığı iş yeri vb. bilgiler kayıtlı.

Her sayfadaki bilgileri ilgili sutunlara aktarmak istiyorum. Böylece tüm müşterilere ait elimde veri bankası olacak ve arama yöntemi ile araç sahibi olanları ayrı, meslek gruplarına göre ayrı ayrı, cinsiyet ve yaş durumlarına göre ayrı ayrı kategorilemek için veritabanı yapmak istiyorum. 

Danışmak istediğim husus: pdf den verileri ayrı ayrı arayarak veritabanına çekmem mümkün mü? 

Her PDF form şeklinde yani her bilginin yeri PDF icinde aynı yerde..

Ben kdv, geçici tahakkuklarını önce datagridde yolu ile listeletiyorum aynı anda ödemesi çıkanlarıda açtırıp şu şekilde okutuyorum.
Örnek kod :

Visual Basic Code
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
 Public Function ParsePdfText(ByVal sourcePDF As String, Optional ByVal fromPageNum As Integer = 0, Optional ByVal toPageNum As Integer = 0) As String
        Dim sb As New System.Text.StringBuilder()
        Dim reader As New PdfReader(sourcePDF)
        Dim pageBytes() As Byte = Nothing
        Dim raFile As iTextSharp.text.pdf.RandomAccessFileOrArray = Nothing
        raFile = New iTextSharp.text.pdf.RandomAccessFileOrArray(sourcePDF)
        Dim token As PRTokeniser = New iTextSharp.text.pdf.PRTokeniser(raFile)
        Dim tknType As Integer = -1
        Dim tknValue As String = String.Empty
        If fromPageNum = 0 Then

            fromPageNum = 1
        End If
        If toPageNum = 0 Then
            toPageNum = reader.NumberOfPages
        End If
        If fromPageNum > toPageNum Then
            Throw New ApplicationException("Parameter error: The value of fromPageNum can not be larger than the value of toPageNum")
        End If
        For i As Integer = fromPageNum To toPageNum Step 1
            pageBytes = reader.GetPageContent(i)
            If Not IsNothing(pageBytes) Then
                ' token = New iTextSharp.text.pdf.PRTokeniser(pageBytes)
                While token.NextToken()
                    tknType = token.TokenType()
                    tknValue = token.StringValue
                    Select Case tknType
                        Case iTextSharp.text.pdf.PRTokeniser.TokType.NUMBER      '1
                            Dim dValue As Double
                            If Double.TryParse(tknValue, dValue) Then
                                If dValue < -8000 Then
                                    sb.Append(ControlChars.Tab)
                                End If
                            End If
                        Case iTextSharp.text.pdf.PRTokeniser.TokType.STRING      '2
                            sb.Append(token.StringValue)
                        Case iTextSharp.text.pdf.PRTokeniser.TokType.NAME        '3
                  'Ignore
                        Case iTextSharp.text.pdf.PRTokeniser.TokType.COMMENT     '4
                  'Ignore
                        Case iTextSharp.text.pdf.PRTokeniser.TokType.START_ARRAY '5
                  'Ignore
                        Case iTextSharp.text.pdf.PRTokeniser.TokType.END_ARRAY   '6
                            sb.Append(" ")
                        Case iTextSharp.text.pdf.PRTokeniser.TokType.START_DIC   '7
                  'Ignore
                        Case iTextSharp.text.pdf.PRTokeniser.TokType.END_DIC     '8
                  'Ignore
                        Case iTextSharp.text.pdf.PRTokeniser.TokType.REF         '9
                  'Ignore
                        Case iTextSharp.text.pdf.PRTokeniser.TokType.OTHER       '10
                            Select Case tknValue
                                Case "TJ"
                                    sb.Append(" ")
                                Case "ET", "TD", "Td", "Tm", "T*"
                                    sb.Append(Environment.NewLine)
                            End Select
                    End Select
                End While
            End If
        Next i
        Return sb.ToString()


    End Function

    Public Function PDFToText(file As String) As String

        Using reader As New PdfReader(file)
            Dim text As New StringBuilder()
            For i As Integer = 1 To reader.NumberOfPages
                text.Append(PdfTextExtractor.GetTextFromPage(reader, i))
            Next
            Return text.ToString()
        End Using

    End Function

    Public Function TRSiz(ByVal vdata As String) As String
        Dim tmp As String
        tmp = Replace(vdata, "Ý", "İ")
        tmp = Replace(tmp, "ý", "ı")
        tmp = Replace(tmp, "Ð", "Ğ")
        tmp = Replace(tmp, "ğ", "g")
        tmp = Replace(tmp, "Þ", "Ş")
        tmp = Replace(tmp, "þ", "ş")
        TRSiz = tmp
    End Function


Visual Basic Code
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
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click


        Dim Secim As Boolean
        For Each Ana_Klasor In Directory.GetDirectories(TextBox1.Text)
            Dim Mukellef_Isim As New System.IO.FileInfo(Ana_Klasor)
            If Ana_Klasor.ToString.Length > 0 Then
                Try
                    For Each Donemi In Directory.GetDirectories(Ana_Klasor, "08 2017" & "-" & "08 2017", SearchOption.AllDirectories)
                        Dim Donem_Klasor As New System.IO.FileInfo(Donemi)
                        For Each Evrak In Directory.GetFiles(Donemi)
                            Dim Evraklar As New System.IO.FileInfo(Evrak)

                            If Evrak.Contains("KDV1_tahakkuk") Or Evrak.Contains("KDV2_tahakkuk") Then
                                Dim Dizi() As String
                                Dizi = Evraklar.Name.Split("_")

                                Dim yol As String = Ana_Klasor & "\" & Donem_Klasor.Name & "\" & Evraklar.Name
                                ' Dim oku As String = TRSiz(yol).Substring(yazitoplam + 6, yaziislem - yazitoplam - 6)


                                Dim str99 As String = PDFToText(yol)
                                Dim i As Integer = TRSiz(str99).IndexOf("TOPLAM")
                                Dim c As Integer = TRSiz(str99).IndexOf("İşlem")
                                Dim x As Integer = TRSiz(str99).IndexOf("VADESİ")
                                Dim str98 As String = TRSiz(str99).Substring(x + 6, c - x - 6)
                                Dim w As Integer = TRSiz(str98).IndexOf("/")
                                Dim str97 As String = TRSiz(str98).Substring(w - 2, 10)
                                Dim oku As String = TRSiz(str99).Substring(i + 6, c - i - 6)

                                DataGridView1.Rows.Add(Secim, Mukellef_Isim.Name, Donem_Klasor.Name, Dizi(0) & " " & UCase(Dizi(1)), Ana_Klasor & "\" & Donem_Klasor.Name & "\" & Evraklar.Name, Evraklar.LastAccessTime, oku)

                            End If
                        Next
                    Next
                Catch ex As Exception

                End Try
            End If
        Next
End Sub


Kodlar işine yarıyacaktır.


drummers, 11-05-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla

alpeki99

Düşünmek en zor iştir...
Kullanici Avatari
Uzman
O....
6.113
29/10/2008
Bursa
Yazılım Geliştirici
Ofis 2010 32 Bit
12/02/2018,13:24
Şu soruyu sorupta verilen cevaplara yanıt vermiyorlarmı insanı hakikaten merak ediyor. Madem takip etmeyeceksiniz neden soru soruyorsunuz? Konuyu çözülmüş konulara taşıyorum.


AccessTr.Net teknik konular içeren bir sitedir. Bu tip sitelerde en iyi şekilde yardım alabilmeniz için Site Kurallarını mutlaka okumanız ve buna göre hareket etmeniz lazım.
Cevapla


Konuyu Okuyanlar: 1 Ziyaretçi

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Tarih Son Yorum
Çözüldü Picturebox A Yazı Ekleme Ve Kaydetme drummers 5 409 04/07/2017, 17:44 drummers
Çözüldü Access veritabanına kayıt Sorunu Black_Trouble 4 2.252 06/03/2014, 22:44 ozcan35
Çözüldü c# dilinde toplama SqL_MaN 3 1.828 28/01/2013, 17:07 goldmoon07
Çözüldü Dosyayı Kaydetme [OTOMATIK] SenKimsin 6 2.671 13/06/2012, 14:41 SenKimsin
Çözüldü Aynı anda iki veritabanına kayıt hk. drummers 22 4.882 14/12/2011, 00:46 drummers

Türkçe Çeviri: MCTR, Yazılım: MyBB, © 2002-2018 MyBB Group.
 
 
Forum use Krzysztof "Supryk" Supryczynski addons.