البرمجة

كيفية قراءة ملف PDF باستخدام Scala

عندما تواجه خطأ java.nio.charset.MalformedInputException: Input length = 1 في سكالا، يعني ذلك أن هناك مشكلة في ترميز الملف الذي تحاول قراءته. يبدو أنك تحاول قراءة ملف PDF باستخدام scala.io.Source.fromFile، وهذا ليس الطريقة الصحيحة لقراءة ملفات PDF في سكالا.

ملفات PDF ليست نصوص عادية، بل هي تعبيرات مرئية عن النصوص والصور والشكل والهيكل. لقراءة محتوى ملف PDF بشكل صحيح، يجب استخدام مكتبة متخصصة مثل Apache PDFBox أو iText. باستخدام أحد هذين المكتبين، يمكنك استخراج النصوص من ملف PDF بشكل صحيح دون الحاجة للتعامل مع ترميزات الحروف المعقدة.

إليك كيفية قراءة ملف PDF باستخدام Apache PDFBox:

scala
import org.apache.pdfbox.pdmodel.PDDocument import org.apache.pdfbox.text.PDFTextStripper // تحميل المستند val document = PDDocument.load(new File("1.pdf")) try { // إنشاء PDFTextStripper val stripper = new PDFTextStripper() // استخراج النص val text = stripper.getText(document) // طباعة النص println(text) } finally { // إغلاق المستند document.close() }

تأكد من أنك قد قمت بإضافة مكتبة Apache PDFBox إلى مشروعك لتتمكن من استخدام الشيفرة السابقة بنجاح.

المزيد من المعلومات

تأكد من أن المكتبة Apache PDFBox مضافة كتابة في ملف build.sbt الخاص بمشروعك. يمكنك إضافة Apache PDFBox كتابة على النحو التالي:

scala
libraryDependencies += "org.apache.pdfbox" % "pdfbox" % "2.0.24"

كما يجب أن تكون تستخدم إصدار مناسب من Apache PDFBox متوافق مع إصدار سكالا الذي تستخدمه. تحقق من الإصدارات المتوافقة على موقع Apache PDFBox قبل إضافتها كتابة.

بالنسبة للخطأ java.nio.charset.MalformedInputException: Input length = 1، يحدث عندما تحاول قراءة ملف بترميز غير صالح. يمكنك محاولة تحديد ترميز النص يدويًا عند قراءة الملف باستخدام Source.fromFile("1.pdf").mkString("ISO-8859-1")، حيث يمكنك استبدال ISO-8859-1 بترميز آخر إذا لزم الأمر (مثل UTF-8 أو Windows-1256 للنصوص بالعربية).

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر