Kullanıcı PDF dosyaları ile herhangi bir işlem yapmak istediğinde bu skill'i kullanın. Buna PDF'lerden metin/tablo okuma ve çıkarma, birden fazla PDF'yi birleştirme, PDF'leri bölme, sayfaları döndürme, filigran ekleme, yeni PDF oluşturma, PDF formlarını doldurma, PDF şifreleme/şifre açma, görüntü çıkarma ve taranmış PDF'lerde OCR uygulaması dahildir. Kullanıcı bir .pdf dosyasından bahsettiğinde veya
cd ~/.claude/skills
git clone https://github.com/anthropics/skills.git skills mkdir -p ~/.claude/skills/pdf
curl -fsSL https://raw.githubusercontent.com/anthropics/skills/HEAD/skills/pdf/SKILL.md \
-o ~/.claude/skills/pdf/SKILL.md Bu kılavuz, Python kütüphaneleri ve komut satırı araçlarını kullanarak temel PDF işleme operasyonlarını kapsar. Gelişmiş özellikler, JavaScript kütüphaneleri ve ayrıntılı örnekler için bkz. REFERENCE.md. Bir PDF formu doldurmanız gerekiyorsa, FORMS.md dosyasını okuyun ve talimatlarını izleyin.
from pypdf import PdfReader, PdfWriter
# PDF'i oku
reader = PdfReader("document.pdf")
print(f"Pages: {len(reader.pages)}")
# Metni çıkar
text = ""
for page in reader.pages:
text += page.extract_text()
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)
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)
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}")
reader = PdfReader("input.pdf")
writer = PdfWriter()
page = reader.pages[0]
page.rotate(90) # Saat yönünde 90 derece döndür
writer.add_page(page)
with open("rotated.pdf", "wb") as output:
writer.write(output)
import pdfplumber
with pdfplumber.open("document.pdf") as pdf:
for page in pdf.pages:
text = page.extract_text()
print(text)
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)
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: # Tablo boş değilse kontrol et
df = pd.DataFrame(table[1:], columns=table[0])
all_tables.append(df)
# Tüm tabloları birleştir
if all_tables:
combined_df = pd.concat(all_tables, ignore_index=True)
combined_df.to_excel("extracted_tables.xlsx", index=False)
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas
c = canvas.Canvas("hello.pdf", pagesize=letter)
width, height = letter
# Metin ekle
c.drawString(100, height - 100, "Hello World!")
c.drawString(100, height - 120, "This is a PDF created with reportlab")
# Çizgi ekle
c.line(100, height - 140, 400, height - 140)
# Kaydet
c.save()
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 = []
# İçerik ekle
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())
# Sayfa 2
story.append(Paragraph("Page 2", styles['Heading1']))
story.append(Paragraph("Content for page 2", styles['Normal']))
# PDF oluştur
doc.build(story)
ÖNEMLİ: ReportLab PDF'lerinde asla Unicode alt indis/üst indis karakterleri (₀₁₂₃₄₅₆₇₈₉, ⁰¹²³⁴⁵⁶⁷⁸⁹) kullanmayın. Yerleşik yazı tipleri bu glifleri içermez ve siyah kutular olarak render edilir.
Bunun yerine, Paragraph nesnelerinde ReportLab'ın XML işaret etiketlerini kullanın:
from reportlab.platypus import Paragraph
from reportlab.lib.styles import getSampleStyleSheet
styles = getSampleStyleSheet()
# Alt indisler: <sub> etiketini kullan
chemical = Paragraph("H<sub>2</sub>O", styles['Normal'])
# Üst indisler: <super> etiketini kullan
squared = Paragraph("x<super>2</super> + y<super>2</super>", styles['Normal'])
Canvas üzerine çizilen metin (Paragraph nesneleri değil) için Unicode alt/üst indisler kullanmak yerine font boyutunu ve konumunu manuel olarak ayarlayın.
# Metni çıkar
pdftotext input.pdf output.txt
# Düzeni koruyan metin çıkar
pdftotext -layout input.pdf output.txt
# Belirli sayfaları çıkar
pdftotext -f 1 -l 5 input.pdf output.txt # Sayfalar 1-5
# PDF'leri birleştir
qpdf --empty --pages file1.pdf file2.pdf -- merged.pdf
# Sayfaları böl
qpdf input.pdf --pages . 1-5 -- pages1-5.pdf
qpdf input.pdf --pages . 6-10 -- pages6-10.pdf
# Sayfaları döndür
qpdf input.pdf output.pdf --rotate=+90:1 # Sayfa 1'i 90 derece döndür
# Şifreyi kaldır
qpdf --password=mypassword --decrypt encrypted.pdf decrypted.pdf
# Birleştir
pdftk file1.pdf file2.pdf cat output merged.pdf
# Böl
pdftk input.pdf burst
# Döndür
pdftk input.pdf rotate 1east output rotated.pdf
# Gerekli: pip install pytesseract pdf2image
import pytesseract
from pdf2image import convert_from_path
# PDF'i resimlere çevir
images = convert_from_path('scanned.pdf')
# Her sayfada OCR yap
text = ""
for i, image in enumerate(images):
text += f"Page {i+1}:\n"
text += pytesseract.image_to_string(image)
text += "\n\n"
print(text)
from pypdf import PdfReader, PdfWriter
# Filigran oluştur (veya mevcut olanı yükle)
watermark = PdfReader("watermark.pdf").pages[0]
# Tüm sayfaları uygula
reader = PdfReader("document.pdf")
writer = PdfWriter()
for page in reader.pages:
page.merge_page(watermark)
writer.add_page(page)
with open("watermarked.pdf", "wb") as output:
writer.write(output)
# pdfimages kullanma (poppler-utils)
pdfimages -j input.pdf output_prefix
# Bu tüm resimleri output_prefix-000.jpg, output_prefix-001.jpg vb. olarak çıkarır
from pypdf import PdfReader, PdfWriter
reader = PdfReader("input.pdf")
writer = PdfWriter()
for page in reader.pages:
writer.add_page(page)
# Parola ekle
writer.encrypt("userpassword", "ownerpassword")
with open("encrypted.pdf", "wb") as output:
writer.write(output)
| Görev | En İyi Araç | Komut/Kod |
|---|---|---|
| PDF'leri birleştir | pypdf | writer.add_page(page) |
| PDF'leri böl | pypdf | Her sayfa için ayrı dosya |
| Metni çıkar | pdfplumber | page.extract_text() |
| Tabloları çıkar | pdfplumber | page.extract_tables() |
| PDF oluştur | reportlab | Canvas veya Platypus |
| Komut satırında birleştir | qpdf | qpdf --empty --pages ... |
| Taranmış PDF'lerden OCR | pytesseract | Önce resme çevir |
| PDF formu doldur | pdf-lib veya pypdf (bkz. FORMS.md) | Bkz. FORMS.md |
.png ve .pdf dosyalarında tasarım felsefesini kullanarak güzel görseller oluşturun. Poster, sanat eseri, tasarım veya diğer statik içerikler için bu özelliği kullanabilirsiniz. Telif hakkı ihlallerinden kaçınmak için her zaman orijinal tasarımlar yaratın, mevcut sanatçıların çalışmalarını kopya etmeyin.
Kullanıcıları belgelendirme konusunda işbirlikçi yazım için yapılandırılmış bir workflow içinde rehber etmek için kullanılır. Kullanıcı belgelendirme, teknik özellikler, karar dokümanları veya benzer yapılandırılmış içerik yazma istediğinde harekete geçer. Bu workflow, bağlamı verimli bir şekilde aktarmaya, içeriği yinelemelerle geliştirmeye ve dokümanın okuyucular için işe yaradığını doğrulamaya yardımcı olur.
Bu skill'i kullanıcı Word belgesi (.docx dosyası) oluşturmak, okumak, düzenlemek veya manipüle etmek istediğinde kullanın. İçindekiler tablosu, başlık, sayfa numarası veya mektup başlığı gibi formatlı profesyonel belge talepleri, "Word doc", "word document" veya ".docx" ifadeleri geçtiğinde tetiklenir. .docx dosyalarından içerik çıkarma veya yeniden düzenleme, görsel ekleme veya değiştirme işlemleri için de kullanılır.
Bu skill'i .pptx dosyalarıyla çalışmanız gereken her durumda kullanın — giriş, çıkış veya her ikisi için de. Sunum oluşturma, slayt destesi hazırlama, metnini okuma ve çıkarma, düzenleme veya güncelleme, dosyaları birleştirme ve bölme gibi tüm işlemleri kapsar.
Artifaktları tema ile stilize etmek için toolkit. Slaytlar, dokümanlar, raporlar, HTML landing page'ler gibi çeşitli artifaktlara uygulanabilir. 10 hazır tema ile renkler ve fontları seçebilir ya da anında yeni tema oluşturabilirsiniz.
Bu skill'i spreadsheet dosyası ana input veya output olduğu her durumda kullanın. Buna şu görevler dahildir: mevcut .xlsx, .xlsm, .csv veya .tsv dosyalarını açma, okuma, düzenleme veya düzeltme (sütun ekleme, formül hesaplama, biçimlendirme, grafik oluşturma, veri temizleme gibi); sıfırdan veya diğer veri kaynaklarından yeni spreadsheet oluşturma; ya da tabular dosya formatları arasında dönüştürme işlemleri.