skill
ملف PDF
استخدم هذه المهارة عندما يرغب المستخدم في القيام بأي عملية تتعلق بملفات PDF. يشمل ذلك قراءة أو استخراج النصوص والجداول من ملفات PDF، دمج أو مزج عدة ملفات PDF في ملف واحد، تقسيم ملفات PDF، تدوير الصفحات، إضافة علامات مائية، إنشاء ملفات PDF جديدة، ملء نماذج PDF، تشفير وفك تشفير ملفات PDF، استخراج الصور، والتعرف الضوئي على النصوص (OCR) في ملفات PDF الممسوحة ضوئيا لجعلها قابلة للبحث. إذا أشار المستخدم إلى ملف .pdf أو طلب إنتاج ملف واحد، فاستخدم هذه المهارة.
نبذة
# دليل معالجة ملفات PDF
## نظرة عامة
يغطي هذا الدليل العمليات الأساسية لمعالجة ملفات PDF باستخدام مكتبات Python وأدوات سطر الأوامر. للميزات المتقدمة ومكتبات JavaScript والأمثلة التفصيلية، اطلع على REFERENCE.md. إذا كنت بحاجة إلى ملء نموذج PDF، اقرأ FORMS.md واتبع تعليماته.
## البدء السريع
```python from pypdf import PdfReader, PdfWriter
# Read a PDF reader = PdfReader("document.pdf") print(f"Pages: {len(reader.pages)}")
# Extract text text = "" for page in reader.pages: text += page.extract_text() ```
## مكتبات Python
### pypdf - العمليات الأساسية
#### دمج ملفات PDF ```python from pypdf import PdfWriter, PdfReader
writer = PdfWriter() for pdf_file in ["doc1.pdf", "doc2.pdf", "doc3.pdf"]: reader = PdfReader(pdf_file) for page in reader.pages: writer.add_page(page)
with open("merged.pdf", "wb") as output: writer.write(output) ```
#### تقسيم ملف PDF ```python reader = PdfReader("input.pdf") for i, page in enumerate(reader.pages): writer = PdfWriter() writer.add_page(page) with open(f"page_{i+1}.pdf", "wb") as output: writer.write(output) ```
#### استخراج البيانات الوصفية ```python reader = PdfReader("document.pdf") meta = reader.metadata print(f"Title: {meta.title}") print(f"Author: {meta.author}") print(f"Subject: {meta.subject}") print(f"Creator: {meta.creator}") ```
#### تدوير الصفحات ```python reader = PdfReader("input.pdf") writer = PdfWriter()
page = reader.pages[0] page.rotate(90) # Rotate 90 degrees clockwise writer.add_page(page)
with open("rotated.pdf", "wb") as output: writer.write(output) ```
### pdfplumber - استخراج النصوص والجداول
#### استخراج النص مع الحفاظ على التنسيق ```python import pdfplumber
with pdfplumber.open("document.pdf") as pdf: for page in pdf.pages: text = page.extract_text() print(text) ```
#### استخراج الجداول ```python with pdfplumber.open("document.pdf") as pdf: for i, page in enumerate(pdf.pages): tables = page.extract_tables() for j, table in enumerate(tables): print(f"Table {j+1} on page {i+1}:") for row in table: print(row) ```
#### استخراج الجداول المتقدم ```python import pandas as pd
with pdfplumber.open("document.pdf") as pdf: all_tables = [] for page in pdf.pages: tables = page.extract_tables() for table in tables: if table: # Check if table is not empty df = pd.DataFrame(table[1:], columns=table[0]) all_tables.append(df)
# Combine all tables if all_tables: combined_df = pd.concat(all_tables, ignore_index=True) combined_df.to_excel("extracted_tables.xlsx", index=False) ```
### reportlab - إنشاء ملفات PDF
#### إنشاء ملف PDF أساسي ```python from reportlab.lib.pagesizes import letter from reportlab.pdfgen import canvas
c = canvas.Canvas("hello.pdf", pagesize=letter) width, height = letter
# Add text c.drawString(100, height - 100, "Hello World!") c.drawString(100, height - 120, "This is a PDF created with reportlab")
# Add a line c.line(100, height - 140, 400, height - 140)
# Save c.save() ```
#### إنشاء ملف PDF بصفحات متعددة ```python from reportlab.lib.pagesizes import letter from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, PageBreak from reportlab.lib.styles import getSampleStyleSheet
doc = SimpleDocTemplate("report.pdf", pagesize=letter) styles = getSampleStyleSheet() story = []
# Add content title = Paragraph("Report Title", styles['Title']) story.append(title) story.append(Spacer(1, 12))
body = Paragraph("This is the body of the report. " * 20, styles['Normal']) story.append(body) story.append(PageBreak())
# Page 2 story.append(Paragraph("Page 2", styles['Heading1'])) story.append(Paragraph("Content for page 2", styles['Normal']))
# Build PDF doc.build(story) ```
#### الحروف المرتفعة والمنخفضة
**مهم**: لا تستخدم أبدا أحرف Unicode المرتفعة والمنخفضة (₀₁₂₃₄₅₆₇₈₉، ⁰¹²³⁴⁵⁶⁷⁸⁹) في ملفات ReportLab PDF. الخطوط المدمجة لا تحتوي على هذه الرموز، مما يؤدي إلى عرضها على هيئة مربعات سوداء صلبة.
استخدم بدلا من ذلك وسوم XML في كائنات Paragraph: ```python from reportlab.platypus import Paragraph from reportlab.lib.styles import getSampleStyleSheet
styles = getSampleStyleSheet()
# Subscripts: use <sub> tag chemical = Paragraph("H<sub>2</sub>O", styles['Normal'])
# Superscripts: use <super> tag squared = Paragraph("x<super>2</super> + y<super>2</super>", styles['Normal']) ```
بالنسبة للنصوص المرسومة على canvas (وليس كائنات Paragraph)، اضبط حجم الخط والموضع يدويا بدلا من استخدام أحرف Unicode المرتفعة والمنخفضة.
## أدوات سطر الأوامر
### pdftotext (poppler-utils) ```bash # Extract text pdftotext input.pdf output.txt
# Extract text preserving layout pdftotext -layout input.pdf output.txt
# Extract specific pages pdftotext -f 1 -l 5 input.pdf output.txt # Pages 1-5 ```
### qpdf ```bash # Merge PDFs qpdf --empty --pages file1.pdf file2.pdf -- merged.pdf
# Split pages qpdf input.pdf --p ```
التثبيت
شغل هذا الأمر
git clone https://github.com/anthropics/skills && cp -r skills/skills/pdf ~/.claude/skills/يعمل مع
خطوات التثبيت
استنسخ المستودع وانسخ مجلد `pdf` إلى مجلد مهارات Claude الخاص بك. متوافق مع Claude Code و Cursor و Codex وأي وكيل متوافق مع Agent Skills.
أصول ذات صلة
مختارات أخرى في الإنتاجية والمكتب.
npm install @modelcontextprotocol/server-time
git clone https://github.com/anthropics/skills && cp -r skills/skills/internal-comms ~/.claude/skills/
يولد وينظم الافكار حول تحد معين.
يبني مصفوفة قرار مرجحة لمقارنة الخيارات بالمعايير واظهار توصية.
30 أمرا متناوبا لليوميات — امتنان وتأمل وتخطيط ومراجعة.
يبني اجندة اجتماع فردي متوازنة تغطي الانجازات والعوائق والتطور والتغذية الراجعة.
افحص قبل التثبيت
شغل أي مصدر عبر فحوصاتنا - الظهور في الذكاء الاصطناعي والأمان والأداء واكتشاف التقنيات.
فحص أمني تلقائي للموقع
الأمان
محلل سرعة الصفحة
الأداء
اختبار جودة المحتوى العربي بالذكاء الاصطناعي
جودة المحتوى
مختبر وكلاء الذكاء الاصطناعي
اختبار الذكاء الاصطناعي
كاشف منصة الموقع
الترحيل
تدقيق الظهور في محركات الذكاء الاصطناعي
الظهور في الذكاء الاصطناعي
مولد ملف llms.txt
الظهور في الذكاء الاصطناعي
مقياس سهولة القراءة بالعربية
جودة المحتوى
منشئ البيانات المنظمة
الظهور في الذكاء الاصطناعي
حاسبة تكاليف الذكاء الاصطناعي
اختبار الذكاء الاصطناعي
محلل العناوين العربية
جودة المحتوى