محمد أبوعبدالله قام بنشر أغسطس 29, 2020 قام بنشر أغسطس 29, 2020 بسم الله الرحمن الرحيم الاخوة الكرام السلام عليكم ورحمة الله وبركاته اعتقد ان مشكلة استيراد البيانات من ملف pdf وتخزين البيانات في جدول قد تعرض لها الكثير من المستخدمين هذه المشكلة لها حل ببعض البرامج او بعض مواقع الانترنت تقوم بتحويل البيانات الى ملف اكسيل مثلا ثم تخزينها في جدول اكسيس ولكن هل لأحد الاخوة تجربة في كتابة كود برمجي يمكن من خلاله تنفيذ هذه العملية خاصة ان البرامج والمواقع لا تدعم اللغة العربية بنسبة 100% لذلك ارجو ان يفيدنا احد الاخوة بتجربة ناجحة ولكم الشكر تحياتي
jjafferr قام بنشر أغسطس 29, 2020 قام بنشر أغسطس 29, 2020 وعليكم السلام 🙂 في سنة 2009 كان لي تجربة مع برنامج https://www.abbyy.com/ والظاهر الآن اسمه https://pdf.abbyy.com/ كان الافضل (في اللغة الانجليزية) في تحويل الصور (صور الرسائل التي تم ادخالها في الكمبيوتر بالماسح الضوئي scanner ، او ملفات pdf التي تحتوي على صور) الى ملف وورد بصيغة كلمات يمكن التعديل عليها ، ويمكن بنسخة Corporate ، ان يقوم البرنامج بالعمل تلقائيا ، وممكن ان يقوم الاكسس بإعطاء التعليمات ، وفي النهاية يكون عندك ملف txt وتأخذ بياناته الى جدول الاكسس. للغة العربية ، وقتها كانت نسبة صحّة/دقة البيانات المأخوذة من الصور تساوي حوالي 30-50% ، ولا علم لي بها الآن 🙂 جعفر
محمد أبوعبدالله قام بنشر أغسطس 29, 2020 الكاتب قام بنشر أغسطس 29, 2020 جزاكم الله خيرا استاذي الفاضل وفعلا جربت البرنامج المذكور ABBYY FineReader 15 ولكن كما ذكرت اللغة العربية ليست 100% كما انه يستهلك جميع موارد الجهاز بطريقة مخيفة وكنت ارجو ان يكون لدى الاكسيس امكانية للتعامل مع ملفات pdf من حيث تخزين البيانات وقد وجدت مع فيجوال دوت نت اداة Aspose.Pdf وللاسف هي تعمل في بيئة الدوت نت ولا تعمل مع اكسيس هذه الاداة يمكن من خلالها تخزين البيانات من pdf الى datagrid ثم نسخ البيانات الى اي برنامج قواعد بيانات وارجو ان يكون لدى الاكسيس امكانية للتعامل مع ملفات pdf باي اداة جتى لو كانت مدفوعه تحياتي
jjafferr قام بنشر أغسطس 29, 2020 قام بنشر أغسطس 29, 2020 ملفات pdf نوعين: - نوع النص ، ويمكن استخلاص النص عن طريق بعض البرامج الصغيرة بأوامر Command Line من الاكسس ، وقد جربت احد البرامج فأعطاني النص حسب الحقول في الملف (اي انها مبعثرة بدون مسميات الحقول) ، - نوع الصور ، مثل الملفات اللي ينتجها السكانر ، ولإستيراد البيانات منها ، يجب تحويلها اولا الى نص عن طريق برامج OCR ، ولا توجد برامج صغيرة لعمل هذا للغة العربية 🙂 للعلم ، انا كنت من ضمن فريق عمل Abbyy في تجربة استعمال برنامجها Fine Reader لتحويل الصور الى نص عن طريق OCR في بداية مشوارهم ، واذكر اني اقترحت عليهم بعض الملاحظات التي كان لها دور في عمل قفزة لعمل البرنامج (لا اتكلم برمجيا ، وإنما بملاحظاتي كوني اتحدث واكتب العربية) ، ولكني ولشدة ضغط العمل في اوقات معينة ، فلم استطع تلبية طلباتهم ، وتوقفت عنهم 🙂 جعفر 1
محمد أبوعبدالله قام بنشر أغسطس 29, 2020 الكاتب قام بنشر أغسطس 29, 2020 منذ ساعه, jjafferr said: نوع النص ، ويمكن استخلاص النص عن طريق بعض البرامج الصغيرة بأوامر Command Line من الاكسس ، وقد جربت احد البرامج فأعطاني النص حسب الحقول في الملف (اي انها مبعثرة بدون مسميات الحقول) ، افيدنا بلطريقة الله يرضى عليك منذ ساعه, jjafferr said: للعلم ، انا كنت من ضمن فريق عمل Abbyy في تجربة استعمال برنامجها Fine Reader لتحويل الصور الى نص عن طريق OCR في بداية مشوارهم ، واذكر اني اقترحت عليهم بعض الملاحظات التي كان لها دور في عمل قفزة لعمل البرنامج (لا اتكلم برمجيا ، وإنما بملاحظاتي كوني اتحدث واكتب العربية) ، ولكني ولشدة ضغط العمل في اوقات معينة ، فلم استطع تلبية طلباتهم ، وتوقفت عنهم 🙂 الله يسامحك ويغفر لك كان لنا يد عندهم لو ما زلت في الفريق تحياتي
محمد أبوعبدالله قام بنشر أغسطس 29, 2020 الكاتب قام بنشر أغسطس 29, 2020 الفكرة ببساطو ان لدي جداول pdf واريد تحويلها الى جداول من اي نوع اكسيل او اكسيس المهم التحويل والبيانات باللغة العربية
jjafferr قام بنشر أغسطس 30, 2020 قام بنشر أغسطس 30, 2020 السلام عليكم 🙂 هذا احد البرامج 🙂 الموقع : http://www.xpdfreader.com/about.html رابط التحميل : https://dl.xpdfreader.com/xpdf-tools-win-4.02.zip رابط البرامج في ملف التنزيل : http://www.xpdfreader.com/support.html وتوجد في الملف اوامر كل برنامج منهم ، وهذه اوامر البرنامج pdftoText الذي تريد العمل عليه : http://www.xpdfreader.com/pdftotext-man.html تجربتي قبل ان اكتب هذه المشاركة : استعملت احدى هذه الاوامر : pdftotext -enc UTF-8 -table M.pdf M.csv pdftotext -enc UTF-8 -table -nopgbrk M.pdf M.txt . وبالاكسس يصبح (رجاء مراعاة اسماء مجلدات مكان البرنامج ، وملف pdf ، وملف النتيجة txt ) : Dim App_Name As String Dim Input_File As String Dim Output_File As String Dim Command_Line As String App_Name = Chr(34) & Application.CurrentProject.Path & "\Data\pdftotext.exe" & Chr(34) Input_File = Chr(34) & Application.CurrentProject.Path & "\pdf_Files\abc.pdf" & Chr(34) Output_File = Chr(34) & Application.CurrentProject.Path & "\txt_Files\myTxt_from_pdf.txt" & Chr(34) Command_Line = App_Name & " -enc UTF-8 -table -nopgbrk " & Input_File & " " & Output_File 'Debug.Print Command_Line Shell_n_Wait Command_Line, vbHide . والوحدة النمطية Shell_n_Wait موجودة في البرنامج في هذا الرابط : https://www.officena.net/ib/topic/90906-كارنيهات-باستخدام-باركود-ماتركس-qr-code/ ثم لما نستورد/نربط ملف txt او csv لآول مرة الى الاكسس ، يجب ان نخبره بأن بتنسيق وصيغة البيانات : . . . ومثل ما اخبرتك في مشاركتي السابقة ، النتيجة لن تكون بالتنسيق الذي تريده ، فيجب عليك استعمال مجموعة من الاستعلامات في الاكسس ، لتفريق البيانات على الحقول الصحيحة 🙂 جعفر
ابو عارف قام بنشر أغسطس 30, 2020 قام بنشر أغسطس 30, 2020 20 ساعات مضت, محمد أبوعبدالله said: الفكرة ببساطو ان لدي جداول pdf واريد تحويلها الى جداول من اي نوع اكسيل او اكسيس المهم التحويل والبيانات باللغة العربية السلام عليكم و رحمة الله و بركاته هل ممكن رفع احد جداول pdf انا حولت ملف pdf الى الاكسس بطريقة نسخ بيانات من pdf الى جدول في حقل واحد ثم عملت الكود لتوزيع بيانات في حقول مناسبه, وهذا من نوع pdf نص كما قال اخ جعفر و لكن واجهني مشكلة في بعض صفحات كان قيم حقلين او ثلاثة متلاصقة مع بعض و ينسخه البرنامج في حقل واحد و لتغلب على تلك المشكلة اضطرت نسخ بيانات من جدول الاول صفحة صفحة و عند حدوث الخطاء يفتح برنامج اكسل و ينسخ فيه الصفحة و متابعة نسخ بعد تعديل تلك الصفحة يدوياً.
محمد أبوعبدالله قام بنشر أغسطس 30, 2020 الكاتب قام بنشر أغسطس 30, 2020 3 ساعات مضت, jjafferr said: السلام عليكم 🙂 وعليكم السلام ورحمة الله وبركاته افلح وجهك اخي الحبيب باقي مشكلتين ارجو ان يكون على يديك الحل فيهما اولاً : مشكلة مع اللغة العربية في ال او لفظ الجلالة واعتقد انها مرتبطة مع ocr فمثلاً "عياد عطاالله" تظهر "عياد عطاا" "محمد عبدالله" تظهر "محمد عبدا" ثانياً : كما تفضلت وذكرت 3 ساعات مضت, jjafferr said: ومثل ما اخبرتك في مشاركتي السابقة ، النتيجة لن تكون بالتنسيق الذي تريده ، فيجب عليك استعمال مجموعة من الاستعلامات في الاكسس ، لتفريق البيانات على الحقول الصحيحة 🙂 كيفية التغلب على هذه المشكلة db1.rar تحياتي
أفضل إجابة jjafferr قام بنشر أغسطس 31, 2020 أفضل إجابة قام بنشر أغسطس 31, 2020 السلام عليكم 🙂 الخطوة الاولى وبالتفصيل هي تصفية البيانات : . وهذا الكود كاملا لبرنامجك ، وحفظ البيانات في الجدول: Public Function Split_Names() Dim rst, rst2 As DAO.Recordset Dim x() As String: Dim x2() As String Dim i, j As Long Dim a As String Set rst = CurrentDb.OpenRecordset("Select * From MyTxt_from_pdf") Set rst2 = CurrentDb.OpenRecordset("Select * From tbl_Names") ' Do Until rst.EOF ' For i = 1 To Len(rst!Field1) ' a = Mid(rst!Field1, i, 1) 'الحروف/الارقام/العلامات ' a = a & "(" & AscW(a) & ") " 'رقمها AscW ' Debug.Print a ' Next i ' loop Do Until rst.EOF x = Split(rst!Field1, ChrW(8236) & ChrW(8236) & ChrW(32) & ChrW(32)) 'Name + ID For i = LBound(x) To UBound(x) 'Debug.Print x(i) x2 = Split(x(i), ChrW(8236) & ChrW(32) & ChrW(32)) For j = LBound(x2) To UBound(x2) 'Debug.Print x2(j) a = Replace(x2(j), ChrW(8234), "") a = Replace(a, ChrW(8235), "") a = Replace(a, ChrW(8236), "") a = Trim(a) 'If j / 2 = Int(j / 2) Then If j = 0 Then 'even rst2.AddNew rst2!iName = a Else 'odd 'the numbers in Arabic are different (text) than those in English, so we have to get the value of the normal number '0=1632, 1=1633, 2=1634, 3=1635, 4=1636, 5=1637, 6=1638, 7=1639, 8=1640, 9=1641 'Arabic Numbers '0=48, 1=49, 2=50, 3=51, 4=52, 5=53, 6=54, 7=55, 8=56, 9=57 'ascii 'instead of using long if statements, lets make a formula: 0=48=1632-1584 rst2!iID = ChrW(AscW(a) - 1584) rst2.Update End If 'Debug.Print a Next j Next i rst.MoveNext Loop rst.Close: Set rst = Nothing End Function . اما البحث عن مشكلة مع اللغة العربية في ال او لفظ الجلالة ، فانا عملت وحدة نمطية تقوم بتغيير الاسم ، ولكن يتوجب عليك اضافة بقية الاسماء المقطوعة في الوحدة النمطية ، في المتغير arr : Public Function Reconstruct_Allah_Name(N As String) As String Dim arr() Dim x arr = Array("عطاا", "عبدا") For Each x In arr If InStr(N, x & " ") > 0 Then 'there is a space after the missing name Reconstruct_Allah_Name = Replace(N, x, x & "لله") Exit Function ElseIf InStr(N, x) + Len(x) - 1 = Len(N) Then 'the missing name is at the end of the line Reconstruct_Allah_Name = Replace(N, x, x & "لله") Exit Function Else Reconstruct_Allah_Name = N End If Next x End Function . ثم يقوم استعلام التحديث qry_Reconstruct_Allah_Name بمناداة الوحدة النمطية اعلاه ، وتغيير الكلمات 🙂 والعمل يتم بالنقر على الزر المشار اليه في الصورة ادناه ، في النموذج Form1 : . جعفر 1251.db1.mdb.zip 1
محمد أبوعبدالله قام بنشر أغسطس 31, 2020 الكاتب قام بنشر أغسطس 31, 2020 ابداع تعجز الكلمات عن وصفه وشكره ولا املك الا ان ادعوا الله لك ان يهديك ويوفقك ويرزقك من حيث لا تحتسب وان يجعلك رفيق النبي صلى الله عليه وسلم في الجنة وجزاك الله خيرا دمت لاخيك تحياتي
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.