Document ★ 2

pdf

PDF belgelerinden metin ve tablo çıkarma, yeni PDF oluşturma, belgeleri birleştirme/bölme ve formlar ile çalışma işlemleri için kapsamlı bir toolkit. Claude'un PDF formları doldurması, programatik olarak PDF belgelerini işlemesi, oluşturması veya ölçekte analiz etmesi gerektiğinde kullanılır.

cd ~/.claude/skills
git clone https://github.com/smartnews/claude-skills.git claude-skills

PDF İşleme Kılavuzu

Genel Bakış

Bu kılavuz Python kütüphaneleri ve komut satırı araçları kullanarak temel PDF işleme işlemlerini kapsamaktadır. Gelişmiş özellikler, JavaScript kütüphaneleri ve detaylı örnekler için reference.md dosyasına bakınız. Eğer bir PDF formunu doldurmanız gerekiyorsa, forms.md dosyasını okuyun ve talimatlarını izleyin.

Hızlı Başlangıç

from pypdf import PdfReader, PdfWriter

# PDF'yi 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'yi 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)

Meta Verileri Çı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üzeni Koruyan Metni Çı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:  # Tablonun boş olmadığını 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 Çok Sayfası Olan 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'yi oluştur
doc.build(story)

Komut Satırı Araçları

pdftotext (poppler-utils)

# Metni çıkar
pdftotext input.pdf output.txt

# Düzeni koruyan metni çı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  # 1. sayfayı 90 derece döndür

# Şifreyi kaldır
qpdf --password=mypassword --decrypt encrypted.pdf decrypted.pdf

pdftk (mevcut ise)

# 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'yi resimlere dönüştür
images = convert_from_path('scanned.pdf')

# Her sayfayı OCR işlemine tabi tut
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 sayfalara 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 kullanarak (poppler-utils)
pdfimages -j input.pdf output_prefix

# Bu, output_prefix-000.jpg, output_prefix-001.jpg, vb. olarak tüm resimleri çıkarır

Şifre Koruması

from pypdf import PdfReader, PdfWriter

reader = PdfReader("input.pdf")
writer = PdfWriter()

for page in reader.pages:
    writer.add_page(page)

# Şifre 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 sayfayı ayrı dosyaya
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'lerde OCR pytesseract Önce görüntüye dönüştür
PDF formlarını doldur pdf-lib veya pypdf (forms.md'ye bakınız) forms.md'yi inceleyin

Sonraki Adımlar

  • Gelişmiş pypdfium2 kullanımı için reference.md dosyasına bakınız
  • JavaScript kütüphaneleri (pdf-lib) için reference.md dosyasına bakınız
  • Eğer bir PDF formu doldurmanız gerekiyorsa, forms.md dosyasındaki talimatları izleyin
  • Sorun giderme kılavuzları için reference.md dosyasına bakınız

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
pdf Document

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

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
Daha fazla: Document →