Document ★ 153,732

pdf

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

PDF İşleme Kılavuzu

Genel Bakış

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.

Hızlı Başlangıç

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()

Python Kütüphaneleri

pypdf - Temel İşlemler

PDF'leri Birleştir

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'i Böl

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)

Metadata Çıkar

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}")

Sayfaları Döndür

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)

pdfplumber - Metin ve Tablo Çıkarma

Düzen Koruyan Metin Çıkar

import pdfplumber

with pdfplumber.open("document.pdf") as pdf:
    for page in pdf.pages:
        text = page.extract_text()
        print(text)

Tabloları Çıkar

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)

Gelişmiş Tablo Çıkarma

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)

reportlab - PDF Oluştur

Temel PDF Oluşturma

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()

Birden Fazla Sayfaya Sahip PDF Oluştur

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)

Alt İndis ve Üst İndis

Ö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.

Komut Satırı Araçları

pdftotext (poppler-utils)

# 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

qpdf

# 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

pdftk (varsa)

# 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

Yaygın Görevler

Taranmış PDF'lerden Metin Çıkar

# 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)

Filigran Ekle

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)

Resimleri Çıkar

# 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

Parola Koruması

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)

Hızlı Referans

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

Sonraki Adımlar

  • Gelişmiş pypdfium2 kullanımı için bkz. REFERENCE.md
  • JavaScript kütüphaneleri (pdf-lib) için bkz. REFERENCE.md
  • Bir PDF formu doldurmanız gerekiyorsa, FORMS.md dosyasındaki talimatları izleyin
  • Sorun giderme kılavuzları için bkz. REFERENCE.md

Benzer skill'ler

canvas-design Document

.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.

anthropics/skills ★ 153,732
doc-coauthoring Document

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.

anthropics/skills ★ 153,732
docx Document

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.

anthropics/skills ★ 153,732
pptx Document

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.

anthropics/skills ★ 153,732
theme-factory Document

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.

anthropics/skills ★ 153,732
xlsx Document

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.

anthropics/skills ★ 153,732
Daha fazla: Document →