PyMuPDF4LLM هي مكتبة مصممة لتحويل ملفات PDF إلى تنسيق Markdown. هنا، سأشارك تجربتي في اختبار هذه المكتبة.
ابدأ بتثبيت المكتبة باستخدام الأمر التالي:
pip install pymupdf4llm
الاستخدام الأساسي بسيط للغاية، حيث يتطلب ثلاثة أسطر فقط من التعليمات البرمجية لتحويل ملف PDF إلى Markdown:
import pymupdf4llm md_text = pymupdf4llm.to_markdown("input.pdf") print(md_text)
يمكنك تحديد الوسائط لضبط كيفية استخراج المحتوى.
افتراضيًا، يتم تحويل ملف PDF بأكمله إلى مخرج نص واحد. ومع ذلك، يمكنك استخراج النص صفحة تلو الأخرى عن طريق تحديد page_chunks=True.
md_text = pymupdf4llm.to_markdown("input.pdf", page_chunks=True)
لاستخراج الصور كملفات، استخدم خيار write_images=True:
md_text = pymupdf4llm.to_markdown("input.pdf", write_images=True)
من الممكن أيضًا تضمين الصور مباشرة في Markdown باستخدام تشفير base64:
md_text = pymupdf4llm.to_markdown("input.pdf", embed_images=True)
للاختبار، تم استخدام ملفات PDF متنوعة مع عناصر Markdown مختلفة.
يتم تحويل الرؤوس بشكل صحيح إلى تنسيق Markdown. وهذا جزء من النتيجة:
# Sample Markdown Guide This is a sample markdown file that includes various features for quick reference. ## 1. Headers ... ## 3. Lists
يتم أيضًا تحويل التنسيق الغامق والمائل بشكل صحيح:
**Bold: **Bold Text**** _Italic: *Italic Text*_ **_Bold and Italic: ***Bold and Italic***_**
يتم تحويل القوائم المرتبة في المستوى الأول دون مشاكل، ولكن القوائم المتداخلة والقوائم غير المرتبة لا يتم تحويلها بدقة.
## 3. Lists ### Unordered List Item 1 Item 2 Sub-item 1 Sub-item 2 ### Ordered List 1. First item 2. Second item 1. Sub-item A 2. Sub-item B
يتم استخراج عناوين URL للروابط، ولكن السطر بأكمله الذي يحتوي على الرابط يصبح رابطًا تشعبيًا، مما ينحرف عن التنسيق الأصلي.
## 4. Links and Images [You can add links using [Link Text](URL).](https://www.example.com/)
لا يتم استخراج الصور بشكل افتراضي ولكن يمكن حفظها محليًا باستخدام write_images=True.
md_text = pymupdf4llm.to_markdown("input.pdf", write_images=True)
يتم بعد ذلك الإشارة إلى الصور المحفوظة في Markdown على النحو التالي:
### Image Example
![](input.pdf-1-0.png)
لا يتم تحويل الجداول البسيطة التي لا تحتوي على حدود رأسية بدقة (على الأرجح لأن حدود الأعمدة الغامضة تؤدي إلى معاملة الجداول كنص عادي).
## 5. Tables
**Column 1** **Column 2** **Column 3**
Row 1 Data A Data B
Row 2 Data C Data D
يتم تحويل كتل التعليمات البرمجية بشكل صحيح، ولكن لا يتم الاحتفاظ بمواصفات اللغة (على سبيل المثال، بايثون). هناك مشكلات أيضًا في تحويل التعليمات البرمجية المضمنة.
## 6. Code
### Inline Code
Use backticks for inline code: print("Hello, world!")
### Code Block
Use triple backticks for code blocks:
```
def greet(name):
return f"Hello, {name}!"
print(greet("Markdown"))
```
بالنسبة للنص متعدد الأسطر، يتم الاحتفاظ بفواصل الأسطر كما تظهر في ملف PDF الأصلي.
Markdown is a lightweight and versatile markup language favored by developers, writers, and bloggers alike
due to its simplicity in formatting text, enabling users to create readable and well-structured documents—
whether for documentation, blog posts, or articles—without the complexity of HTML, while also offering the
ability to convert content seamlessly into other formats like HTML, PDF, and even slideshows, making it an
ideal choice for projects that require both clarity and flexibility in presentation.
على الرغم من التحديات في تحويل القوائم والروابط بدقة، فإن PyMuPDF4LLM هي أداة مفيدة لتحويل ملفات PDF إلى Markdown. يمكن أن يعمل محليًا دون الحاجة إلى نماذج لغة خارجية، مما يجعله مناسبًا للبيئات التي لا يتوفر فيها الوصول إلى الإنترنت.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3