<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Programming on File Format Blog</title>
    <link>https://blog.fileformat.com/tr/categories/programming/</link>
    <description>Recent content in Programming on File Format Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>tr</language>
    <lastBuildDate>Tue, 10 Jun 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fileformat.com/tr/categories/programming/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>.h vs .hpp: Farkı Nedir ve Hangisini Kullanmalısınız?</title>
      <link>https://blog.fileformat.com/tr/programming/h-vs-hpp/</link>
      <pubDate>Tue, 10 Jun 2025 00:00:00 +0000</pubDate>
      
      <guid>https://blog.fileformat.com/tr/programming/h-vs-hpp/</guid>
      <description>C&#43;&#43; projenizde .h mi yoksa .hpp mi kullanmanız gerektiğini mi merak ediyorsunuz? .h ve .hpp dosyaları arasındaki temel farkları, kullanım senaryolarını ve modern C&#43;&#43; geliştirme için hangisinin en iyi olduğunu öğrenin.</description>
      <content:encoded><![CDATA[<p><strong>Son Güncelleme</strong>: 26 Şub, 2026</p>
<figure class="align-center ">
    <img loading="lazy" src="images/h-vs-hpp.webp#center"
         alt="Başlık - .h vs .hpp: Farkı Nedir ve Hangisini Kullanmalısınız?"/> 
</figure>

<p>C++ programları yazarken, özellikle büyük projelerde, kodunuzu birden çok dosyaya ayırmak okunabilirlik ve bakım açısından çok önemlidir. Bu genellikle <strong>başlık dosyaları</strong> kullanmayı içerir; bu dosyalar <a href="https://docs.fileformat.com/programming/h/"><code>.h</code></a> veya <a href="https://docs.fileformat.com/programming/hpp/"><code>.hpp</code></a> uzantılarına sahiptir. Peki bu ikisi arasındaki fark nedir ve hangisini kullanmalısınız?</p>
<p>Bu makalede, <a href="https://docs.fileformat.com/programming/h/"><code>.h</code></a> ve <a href="https://docs.fileformat.com/programming/hpp/"><code>.hpp</code></a> dosyaları arasındaki farkları inceleyecek, tarihçelerini keşfedecek ve en iyi uygulamalar hakkında rehberlik sunacağız.</p>
<h2 id="cta-başlık-dosyalarını-anlamak">C++&lsquo;ta Başlık Dosyalarını Anlamak</h2>
<p>Başlık dosyaları, fonksiyonlar, sınıflar, sabitler ve makrolar için <strong>bildirimler</strong> içerir ve bu bildirimleri birden çok kaynak dosyasında kullanabilirsiniz. Bu dosyalar, <a href="https://docs.fileformat.com/programming/cpp/"><code>.cpp</code></a> (C++ kaynak) dosyalarına <code>#include</code> yönergesiyle eklenir.</p>
<h3 id="başlık-dosyalarının-yaygın-içerikleri">Başlık Dosyalarının Yaygın İçerikleri</h3>
<ul>
<li>Sınıf tanımları</li>
<li>Fonksiyon bildirimleri</li>
<li>Sabit tanımları</li>
<li>Makrolar</li>
<li>Şablonlar (bazı durumlarda)</li>
</ul>
<h2 id="h-dosyaları">.h Dosyaları</h2>
<h3 id="h-dosyası-nedir">.h Dosyası Nedir?</h3>
<p><a href="https://docs.fileformat.com/programming/h/"><code>.h</code></a> dosyaları geleneksel <strong>başlık dosyaları</strong>dır ve ilk olarak C programlama dilinde yaygın olarak kullanılmıştır. Hem C hem de C++ projelerinde arayüzleri bildirmek için hâlâ kullanılmaktadır.</p>
<h3 id="kullanım-örneği">Kullanım Örneği:</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#75715e">// mathutils.h
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span><span style="color:#75715e">#ifndef MATHUTILS_H
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#define MATHUTILS_H
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">add</span>(<span style="color:#66d9ef">int</span> a, <span style="color:#66d9ef">int</span> b);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">subtract</span>(<span style="color:#66d9ef">int</span> a, <span style="color:#66d9ef">int</span> b);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#endif
</span></span></span></code></pre></div><h3 id="artılar">Artılar:</h3>
<ul>
<li>Evrensel olarak tanınır (hem C hem de C++&lsquo;ta kullanılır).</li>
<li>Hem C hem de C++ kodu içeren projeler için uygundur.</li>
</ul>
<h3 id="eksiler">Eksiler:</h3>
<ul>
<li>C++ projelerinde dosyanın C tarzı mı yoksa C++ tarzı mı olduğu konusunda belirsizlik yaratabilir.</li>
</ul>
<h2 id="hpp-dosyaları">.hpp Dosyaları</h2>
<h3 id="hpp-dosyası-nedir">.hpp Dosyası Nedir?</h3>
<p><a href="https://docs.fileformat.com/programming/hpp/"><code>.hpp</code></a> dosyaları C++&lsquo;a özgü başlık dosyalarıdır. <a href="https://docs.fileformat.com/programming/h/"><code>.h</code></a> dosyalarıyla aynı işlevi görür, ancak başlığın C++ kodu için olduğunu <strong>açıkça belirtmek</strong> için kullanılır.</p>
<h3 id="kullanım-örneği-1">Kullanım Örneği:</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#75715e">// vectorutils.hpp
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span><span style="color:#75715e">#ifndef VECTORUTILS_HPP
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#define VECTORUTILS_HPP
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e">&lt;vector&gt;</span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
</span></span><span style="display:flex;"><span>std<span style="color:#f92672">::</span>vector<span style="color:#f92672">&lt;</span><span style="color:#66d9ef">int</span><span style="color:#f92672">&gt;</span> filter_even(<span style="color:#66d9ef">const</span> std<span style="color:#f92672">::</span>vector<span style="color:#f92672">&lt;</span><span style="color:#66d9ef">int</span><span style="color:#f92672">&gt;&amp;</span> input);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#endif
</span></span></span></code></pre></div><h3 id="artılar-1">Artılar:</h3>
<ul>
<li>Dosyanın C++ kodu için olduğunu net bir şekilde gösterir.</li>
<li>C ve C++ karışık kullanıldığında karışıklığı önler.</li>
<li>Karma dil projelerinde veya sıkı adlandırma kuralları izleyen ekiplerde faydalıdır.</li>
</ul>
<h3 id="eksiler-1">Eksiler:</h3>
<ul>
<li>Eski kod tabanlarında biraz daha az yaygındır.</li>
<li><code>.h</code> bekleyen bazı eski sistemler tarafından tanınmayabilir.</li>
</ul>
<h2 id="h-vs-hpp-temel-farklar">.h vs .hpp: Temel Farklar</h2>
<table>
<thead>
<tr>
<th>Özellik</th>
<th><code>.h</code> Dosyası</th>
<th><code>.hpp</code> Dosyası</th>
</tr>
</thead>
<tbody>
<tr>
<td>Dil İlişkisi</td>
<td>C ve C++</td>
<td>Sadece C++</td>
</tr>
<tr>
<td>Gelenek</td>
<td>Gelenek</td>
<td>Gelenek</td>
</tr>
<tr>
<td>C++ Projelerinde Kullanım</td>
<td>Yaygın</td>
<td>Bazıları tarafından netlik için tercih edilir</td>
</tr>
<tr>
<td>Şablon Desteği</td>
<td>Evet</td>
<td>Evet</td>
</tr>
<tr>
<td>Kod Belirsizliği</td>
<td>Karışık dil projelerinde mümkün</td>
<td>Daha az olası</td>
</tr>
</tbody>
</table>
<h2 id="h-ve-hpp-seçiminde-en-iyi-uygulamalar">.h ve .hpp Seçiminde En İyi Uygulamalar</h2>
<p>İşte seçim yapmanıza yardımcı olacak bazı genel yönergeler:</p>
<h3 id="h-kullanın-eğer"><code>.h</code> kullanın eğer:</h3>
<ul>
<li>Kodunuzun hem C hem de C++ ile uyumlu olması gerekiyorsa.</li>
<li>Zaten <code>.h</code> kullanan eski bir kodu sürdürüyorsanız veya genişletiyorsanız.</li>
</ul>
<h3 id="hpp-kullanın-eğer"><code>.hpp</code> kullanın eğer:</h3>
<ul>
<li>Dosyanın C++&lsquo;a özgü olduğunu açıkça belirtmek istiyorsanız.</li>
<li>Sadece C++ projesinde çalışıyorsanız veya sınıflar, şablonlar ve ad alanları gibi C++&lsquo;a özgü özellikler kullanıyorsanız.</li>
</ul>
<h2 id="yaygın-proje-yapıları">Yaygın Proje Yapıları</h2>
<h3 id="h-ile-örnek"><code>.h</code> ile Örnek:</h3>
<pre tabindex="0"><code>project/
├── main.cpp
├── mathutils.h
└── mathutils.cpp
</code></pre><h3 id="hpp-ile-örnek"><code>.hpp</code> ile Örnek:</h3>
<pre tabindex="0"><code>project/
├── main.cpp
├── vectorutils.hpp
└── vectorutils.cpp
</code></pre><p>Her iki yapı da geçerlidir; fark esasen açıklık ve ekip tercihine bağlıdır.</p>
<h2 id="sonuç">Sonuç</h2>
<p><code>.h</code> ve <code>.hpp</code> arasındaki seçim büyük ölçüde <strong>gelenek</strong> meselesidir, işlevsellik değil. Her ikisi de aynı amacı hizmet eder: birden fazla C++ kaynak dosyası arasında arayüzleri ve paylaşılan kodu bildirmek.</p>
<p>Ancak, C++&lsquo;a özgü kod için <code>.hpp</code> kullanmak niyetinizi daha net ortaya koyar ve özellikle çok dilli büyük kod tabanlarında karışıklığı önlemeye yardımcı olur. Karışık dil veya eski projelerde ise <code>.h</code> hâlâ tercih edilebilir.</p>
<h3 id="ana-çıkarım">Ana Çıkarım:</h3>
<blockquote>
<p><strong><code>.hpp</code></strong> kullanın, “bu sadece C++ kodudur” mesajını vermek istediğinizde — <strong><code>.h</code></strong> ile kalın, C ve C++&lsquo;ın bir arada kullanıldığı ortamlarla çalışıyorsanız.</p>
</blockquote>
<h2 id="ilgili-içerikler">İlgili İçerikler</h2>
<ul>
<li><a href="https://blog.fileformat.com/word-processing/doc-vs-docx/">DOC ve DOCX Arasındaki Fark</a></li>
<li><a href="https://blog.fileformat.com/video/avi-format-what-is-avi-format-avi-vs-mp4/">AVI Formatı: AVI Kullanmalı Mısınız? - AVI vs MP4</a></li>
<li><a href="https://blog.fileformat.com/audio/wav-vs-mp3/">Podcaster&rsquo;lar İçin WAV ve MP3: Farkı Nedir?</a></li>
</ul>
]]></content:encoded>
    </item>
    
    <item>
      <title>Python, Java ve JavaScript ile XML Dosyalarını Okuma ve Düzenleme Yöntemleri</title>
      <link>https://blog.fileformat.com/tr/programming/how-to-read-and-edit-xml-files-in-python-java-and-javascript/</link>
      <pubDate>Thu, 20 Mar 2025 00:00:00 +0000</pubDate>
      
      <guid>https://blog.fileformat.com/tr/programming/how-to-read-and-edit-xml-files-in-python-java-and-javascript/</guid>
      <description>Yeni başlayan veya deneyimli bir geliştirici olsanız da XML dosyalarını verimli bir şekilde okuma ve düzenleme yollarını öğrenin. XML verileriyle çalışmak için temel ve ileri düzey yöntemleri keşfedin.</description>
      <content:encoded><![CDATA[<p><strong>Son Güncelleme</strong>: 25 Mar, 2025</p>
<figure class="align-center ">
    <img loading="lazy" src="images/how-to-read-and-edit-xml-files-in-python-java-and-javascript.webp#center"
         alt="Başlık - Python, Java ve JavaScript ile XML Dosyalarını Okuma ve Düzenleme Yöntemleri"/> 
</figure>

<p><a href="https://docs.fileformat.com/web/xml/">XML (Extensible Markup Language)</a>, veri depolama ve taşımada yaygın olarak kullanılır. Gelişmiş veya yeni başlayan bir geliştirici olun, XML dosyalarını okuma ve düzenleme yöntemlerini öğrenmek önemlidir. Bu kılavuzda, XML dosyalarıyla verimli bir şekilde çalışmanın temel ve ileri yöntemlerini ele alacağız.</p>
<h2 id="xml-yapısını-anlamak">XML Yapısını Anlamak</h2>
<p>Bir XML dosyası; öğeler, nitelikler ve hiyerarşik verilerden oluşur. İşte basit bir XML örneği:</p>
<script type="application/javascript" src="https://gist.github.com/fileformat-blog-gists/271406a7ab104857883df6eba2bea5f3.js?file=simple-xml-file.xml"></script>

<h2 id="xml-dosyalarını-okuma">XML Dosyalarını Okuma</h2>
<h3 id="1-python-kullanarak">1. Python Kullanarak</h3>
<p>Python&rsquo;un <code>xml.etree.ElementTree</code> modülü kolay XML ayrıştırmasına olanak tanır.</p>
<blockquote>
<p><code>xml.etree.ElementTree</code>, Python&rsquo;da yerleşik bir modüldür; yani, ayrı olarak kurmanıza gerek yoktur. Bu modül, XML verilerini ayrıştırmak, değiştirmek ve oluşturmak için basit araçlar sağlar ve Python ile önceden kurulu olarak gelir.</p>
</blockquote>
<h4 id="kod-açıklaması">Kod Açıklaması</h4>
<p>Bu Python betiği, <code>xml.etree.ElementTree</code> modülünü kullanarak bir XML dosyasını (<code>books.xml</code>) ayrıştırır. Tüm <code>&lt;book&gt;</code> öğelerini alır, bunların <code>&lt;title&gt;</code>, <code>&lt;author&gt;</code>, ve <code>&lt;price&gt;</code> değerlerini çıkarır ve yazdırır. Bu, yapılandırılmış XML verilerinin kolay okunmasını sağlar.</p>
<script type="application/javascript" src="https://gist.github.com/fileformat-blog-gists/416bcf5486a1a3b9847565f60ecbeadb.js?file=read-xml-file.py"></script>

<h3 id="2-java-kullanarak">2. Java Kullanarak</h3>
<p>Java, XML işlemleri için <code>javax.xml.parsers</code> sağlar.</p>
<blockquote>
<p><code>javax.xml.parsers</code>, XML&rsquo;i <strong>DOM (Belge Nesne Modeli) ve SAX (Basit XML API&rsquo;si) ayrıştırıcıları</strong> kullanarak ayrıştırmak için sınıflar sağlayan yerleşik bir Java paketidir. Java Standart Kütüphanesi&rsquo;ne dahildir, bu yüzden ekstra bir şey yüklemenize gerek yoktur.</p>
</blockquote>
<h4 id="kod-açıklaması-1">Kod Açıklaması</h4>
<p>Bu Java programı, DOM Ayrıştırıcısı kullanarak bir XML dosyasını (<code>books.xml</code>) okur ve ayrıştırır. İlk olarak XML belgesini yükleyip normalize eder, ardından tüm <code>&lt;book&gt;</code> öğelerini alır. Bir döngü içinde her <code>&lt;title&gt;</code> etiketinin metin içeriğini çıkarır ve yazdırır. Bu, XML dosyasından kitap adlarını verimli bir şekilde okumayı sağlar.</p>
<script type="application/javascript" src="https://gist.github.com/fileformat-blog-gists/14250f23a2429fae62a206ef739d589c.js?file=read-xml-file.java"></script>

<h3 id="3-javascript-kullanarak-tarayıcı">3. JavaScript Kullanarak (Tarayıcı)</h3>
<p>JavaScript’in <code>DOMParser</code>’ı XML ayrıştırabilir.</p>
<blockquote>
<p>JavaScript’in <code>DOMParser</code>&lsquo;ı, modern web tarayıcılarında yerleşik bir özelliktir. XML dizgilerini yapılandırılmış <strong>Belge Nesne Modeli (DOM)</strong> haline getirmek için, XML verilerini JavaScript ile kolayca dolaşıp işlemenizi sağlar.</p>
</blockquote>
<h4 id="kod-açıklaması-2">Kod Açıklaması</h4>
<p>Bu JavaScript kodu, <code>DOMParser</code> ile bir XML dizgisini (<code>xmlString</code>) ayrıştırır. Ayrıştırılan XML belgesinden <code>&lt;title&gt;</code> öğesini çıkarır ve konsola metin içeriğini (<code>&quot;XML Guide&quot;</code>) kaydeder. Bu, JavaScript ile XML verilerini işlemek için yararlıdır.</p>
<script type="application/javascript" src="https://gist.github.com/fileformat-blog-gists/5b2951af386b289aced3bf19d58e895d.js?file=read-xml-file.js"></script>

<h2 id="xml-dosyalarını-düzenleme">XML Dosyalarını Düzenleme</h2>
<h3 id="1-python-ile-düzenleme">1. Python ile Düzenleme</h3>
<p>Bu Python betiği, <code>xml.etree.ElementTree</code> kullanarak bir XML dosyasını (<code>books.xml</code>) ayrıştırır ve düzenler. <code>&quot;1&quot;</code> kimliğine sahip <code>&lt;book&gt;</code> öğesini bulur ve <code>&lt;price&gt;</code> değerini <code>&quot;24.99&quot;</code> olarak günceller ve değişiklikleri dosyaya geri kaydeder.</p>
<script type="application/javascript" src="https://gist.github.com/fileformat-blog-gists/f66e37ce143dcf8da9aab3075f8d36b5.js?file=edit-xml-file.py"></script>

<h3 id="2-java-ile-düzenleme">2. Java ile Düzenleme</h3>
<p>Bu Java programı, DOM ayrıştırıcısını kullanarak bir XML dosyasını (<code>books.xml</code>) düzenler. Belgeyi yükleyip normalize eder, <code>id=&quot;1&quot;</code> olan <code>&lt;book&gt;</code> öğesini bulur, <code>&lt;price&gt;</code> değerini <code>&quot;24.99&quot;</code> olarak günceller ve değişiklikleri bir <code>Transformer</code> kullanarak dosyaya geri kaydeder.</p>
<script type="application/javascript" src="https://gist.github.com/fileformat-blog-gists/23cb6488f17c312ddb1698c90a96741f.js?file=edit-xml-file.java"></script>

<h3 id="3-javascript-ile-düzenleme">3. JavaScript ile Düzenleme</h3>
<p>Bu JavaScript kodu, <code>DOMParser</code> kullanarak bir XML dizgisini ayrıştırır, <code>id=&quot;1&quot;</code> olan <code>&lt;book&gt;</code> öğesini bulur, <code>&lt;price&gt;</code> değerini <code>&quot;24.99&quot;</code> olarak günceller ve ardından <code>XMLSerializer</code> kullanarak düzenlenen XML&rsquo;i tekrar bir dizgiye dönüştürür. Son olarak, güncellenmiş XML&rsquo;i kaydeder.</p>
<script type="application/javascript" src="https://gist.github.com/fileformat-blog-gists/b24e6e973f62cdfc96dd81f7bb622b67.js?file=edit-xml-file.js"></script>

<h2 id="sonuç">Sonuç</h2>
<p>XML dosyalarını okumak ve düzenlemek, yapılandırılmış verilerle çalışan geliştiriciler için önemlidir. Python, Java ve JavaScript, XML&rsquo;i verimli bir şekilde işlemek için sağlam yollar sunar. Bu teknikleri deneyin ve XML işleme becerilerinizi geliştirin!</p>
]]></content:encoded>
    </item>
    
    <item>
      <title>Python&#39;da PDF Dosyalarıyla Çalışma</title>
      <link>https://blog.fileformat.com/tr/programming/working-with-pdf-files-in-python/</link>
      <pubDate>Wed, 29 Jan 2025 00:00:00 +0000</pubDate>
      
      <guid>https://blog.fileformat.com/tr/programming/working-with-pdf-files-in-python/</guid>
      <description>Python kütüphaneleri ve basit kod örnekleri ile PDF&amp;#39;den metin çıkarma, PDF sayfalarını döndürme, birden fazla PDF&amp;#39;yi birleştirme, PDF&amp;#39;leri bölme ve PDF&amp;#39;lerinize filigran ekleme işlemlerini öğrenin.</description>
      <content:encoded><![CDATA[<p><strong>Son Güncelleme</strong>: 29 Ocak, 2025</p>
<figure class="align-center ">
    <img loading="lazy" src="images/working-with-pdf-files-in-python.png#center"
         alt="Başlık - Python&#39;da PDF Dosyalarıyla Çalışma"/> 
</figure>

<p>Bu makalede, <strong>Python kullanarak PDF dosyalarıyla nasıl çalışabileceğinizi</strong> göstereceğiz. Bunun için <a href="https://pypi.org/project/pypdf/"><strong>pypdf</strong></a> kütüphanesini kullanacağız.</p>
<p><strong>pypdf</strong> kütüphanesini kullanarak Python&rsquo;da aşağıdaki işlemleri nasıl gerçekleştirebileceğinizi göstereceğiz:</p>
<ul>
<li>PDF&rsquo;lerden metin çıkarma</li>
<li>PDF sayfalarını döndürme</li>
<li>Birden fazla PDF&rsquo;yi birleştirme</li>
<li>PDF&rsquo;leri ayrı dosyalara bölme</li>
<li>PDF sayfalarına filigran ekleme</li>
</ul>
<p><em><strong>Not</strong>: Bu makale birçok değerli detayı içeriyor, bu yüzden sizi en çok ilgilendiren bölümlere atlayabilirsiniz! İçerik kolaylıkla gezilecek şekilde düzenlenmiştir, böylece size en ilgili olan konulara hızlıca odaklanabilirsiniz.</em></p>
<figure class="align-center ">
    <img loading="lazy" src="images/pdf-manipulation-with-pypdf.webp#center"
         alt="İllüstrasyon - Python&#39;da PDF Dosyalarıyla Çalışma"/> 
</figure>

<h2 id="örnek-kodlar">Örnek Kodlar</h2>
<p>Bu makalede kullanılan tüm örnek kodları, aşağıdaki bağlantıdan indirebilirsiniz. Kodlar, giriş ve çıkış dosyalarını içermektedir.</p>
<ul>
<li><a href="https://github.com/fileformat-blog-gists/code/tree/main/working-with-pdf-files-in-python">Python&rsquo;da PDF Dosyalarıyla Çalışma için Kod Örnekleri ve Giriş Dosyaları</a></li>
</ul>
<h2 id="pypdf-kurulumu">pypdf Kurulumu</h2>
<p>pypdf&rsquo;i yüklemek için komut terminalinizde veya komut isteminde aşağıdaki komutu çalıştırabilirsiniz:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>pip install pypdf
</span></span></code></pre></div><p><strong>Not:</strong> Yukarıdaki komut büyük-küçük harfe duyarlıdır.</p>
<h2 id="1-python-kullanarak-bir-pdf-dosyasından-metin-çıkarma">1. Python Kullanarak Bir PDF Dosyasından Metin Çıkarma</h2>
<script type="application/javascript" src="https://gist.github.com/fileformat-blog-gists/e2b43a49dbad9e89745f8f9777817acb.js?file=extract-text-from-pdf-using-pypdf-in-python.py"></script>

<h3 id="kod-açıklaması"><strong>Kod Açıklaması</strong></h3>
<p><strong>1. PDF Okuyucu Nesnesi Oluşturma</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span>reader <span style="color:#f92672">=</span> PdfReader(pdf_file)
</span></span></code></pre></div><ul>
<li><code>PdfReader(pdf_file)</code> PDF dosyasını bir <strong>okuyucu nesnesine</strong> yükler.</li>
<li>Bu nesne, sayfalara ve içeriklerine erişimi sağlar.</li>
</ul>
<p><strong>2. Sayfalar Üzerinden Döngü</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#66d9ef">for</span> page_number, page <span style="color:#f92672">in</span> enumerate(reader<span style="color:#f92672">.</span>pages, start<span style="color:#f92672">=</span><span style="color:#ae81ff">1</span>):
</span></span></code></pre></div><ul>
<li><code>reader.pages</code> PDF&rsquo;deki sayfaların bir listesini döndürür.</li>
<li><code>enumerate(..., start=1)</code> ile <strong>1&rsquo;den başlayan bir sayfa numarası</strong> atanır.</li>
</ul>
<p><strong>3. Çıkarılan Metni Yazdırma</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span>    print(<span style="color:#e6db74">f</span><span style="color:#e6db74">&#34;Sayfa </span><span style="color:#e6db74">{</span>page_number<span style="color:#e6db74">}</span><span style="color:#e6db74">:&#34;</span>)
</span></span><span style="display:flex;"><span>    print(page<span style="color:#f92672">.</span>extract_text())
</span></span><span style="display:flex;"><span>    print(<span style="color:#e6db74">&#34;-&#34;</span> <span style="color:#f92672">*</span> <span style="color:#ae81ff">50</span>)  <span style="color:#75715e"># Okunabilirlik için ayırıcı</span>
</span></span></code></pre></div><ul>
<li><code>page.extract_text()</code> güncel sayfadan metin içeriğini çıkarır.</li>
<li>Betik çıkarılan metni ve <strong>sayfa numarasını</strong> yazdırır.</li>
<li><code>&quot;-&quot; * 50</code> daha iyi okunabilirlik için bir ayırıcı çizgi (<code>--------------------------------------------------</code>) basar.</li>
</ul>
<h3 id="koddaki-kullanılan-giriş-pdf-dosyası">Koddaki Kullanılan Giriş PDF Dosyası</h3>
<ul>
<li><strong>Giriş Dosyası:</strong> <a href="https://github.com/fileformat-blog-gists/code/blob/main/working-with-pdf-files-in-python/pdf-to-extract-text/">İndirme Bağlantısı</a></li>
</ul>
<h3 id="kodun-çıktısı">Kodun Çıktısı</h3>
<script type="application/javascript" src="https://gist.github.com/fileformat-blog-gists/ab6976aa3a0fc2999093f5f9320a9e20.js?file=Output%20-%20extract-text-from-pdf-using-pypdf-in-python.txt"></script>

<h2 id="2-python-kullanarak-pdf-sayfalarını-döndürme">2. Python Kullanarak PDF Sayfalarını Döndürme</h2>
<script type="application/javascript" src="https://gist.github.com/fileformat-blog-gists/760d480cfede4178296c353d60662e1a.js?file=rotate-pdf-page-using-pypdf-in-python.py"></script>

<h3 id="kod-açıklaması-1">Kod Açıklaması</h3>
<p>Kod temelde <strong>ilk sayfayı</strong> <strong>90° saat yönünde</strong> döndürür ve değiştirilmiş PDF&rsquo;yi diğer sayfaları etkilemeden kaydeder.</p>
<p><strong>1. İhtiyaç Duyulan Sınıfları İçe Aktarma</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#f92672">from</span> pypdf <span style="color:#f92672">import</span> PdfReader, PdfWriter
</span></span></code></pre></div><ul>
<li><code>PdfReader</code>: Giriş PDF dosyasını okur.</li>
<li><code>PdfWriter</code>: Değişikliklerle yeni bir PDF oluşturur.</li>
</ul>
<p><strong>2. Giriş ve Çıkış Dosya Yollarını Tanımlama</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span>input_pdf <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;pdf-to-rotate/input.pdf&#34;</span>
</span></span><span style="display:flex;"><span>output_pdf <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;pdf-to-rotate/rotated_output.pdf&#34;</span>
</span></span></code></pre></div><ul>
<li>Betik <code>input.pdf</code> dosyasından okur ve değiştirilmiş dosyayı <code>rotated_output.pdf</code> olarak kaydeder.</li>
</ul>
<p><strong>3. PDF&rsquo;yi Okuma ve Bir Yazıcı Nesnesi Oluşturma</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span>reader <span style="color:#f92672">=</span> PdfReader(input_pdf)
</span></span><span style="display:flex;"><span>writer <span style="color:#f92672">=</span> PdfWriter()
</span></span></code></pre></div><ul>
<li><code>reader</code> mevcut PDF&rsquo;yi yükler.</li>
<li><code>writer</code> değiştirilmiş sayfaları depolamak için kullanılır.</li>
</ul>
<p><strong>4. İlk Sayfayı 90 Derece Döndürme</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span>page <span style="color:#f92672">=</span> reader<span style="color:#f92672">.</span>pages[<span style="color:#ae81ff">0</span>]
</span></span><span style="display:flex;"><span>page<span style="color:#f92672">.</span>rotate(<span style="color:#ae81ff">90</span>)  <span style="color:#75715e"># 90 derece saat yönünde döndür</span>
</span></span><span style="display:flex;"><span>writer<span style="color:#f92672">.</span>add_page(page)
</span></span></code></pre></div><ul>
<li><strong>1. sayfayı</strong> çıkarır, <strong>90 derece</strong> döndürür ve yeni PDF&rsquo;ye ekler.</li>
</ul>
<p><strong>5. Değişiklik Yapmadan Kalan Sayfaları Ekleme</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#66d9ef">for</span> i <span style="color:#f92672">in</span> range(<span style="color:#ae81ff">1</span>, len(reader<span style="color:#f92672">.</span>pages)):
</span></span><span style="display:flex;"><span>    writer<span style="color:#f92672">.</span>add_page(reader<span style="color:#f92672">.</span>pages[i])
</span></span></code></pre></div><ul>
<li>Kalan sayfalar arasında gezinir ve bunları olduğu gibi ekler.</li>
</ul>
<p><strong>6. Yeni PDF&rsquo;yi Kaydetme</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#66d9ef">with</span> open(output_pdf, <span style="color:#e6db74">&#34;wb&#34;</span>) <span style="color:#66d9ef">as</span> file:
</span></span><span style="display:flex;"><span>    writer<span style="color:#f92672">.</span>write(file)
</span></span></code></pre></div><ul>
<li><code>rotated_output.pdf</code> dosyasını yazma-ikili modda açar ve yeni PDF&rsquo;yi kaydeder.</li>
</ul>
<p><strong>7. Onay Yazdırma</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span>print(<span style="color:#e6db74">f</span><span style="color:#e6db74">&#34;Döndürülmüş sayfa </span><span style="color:#e6db74">{</span>output_pdf<span style="color:#e6db74">}</span><span style="color:#e6db74"> olarak kaydedildi&#34;</span>)
</span></span></code></pre></div><ul>
<li>Başarı mesajı görüntüler.</li>
</ul>
<h3 id="koddaki-kullanılan-giriş-pdfsi-ve-döndürülen-çıktısı">Koddaki Kullanılan Giriş PDF&rsquo;si ve Döndürülen Çıktısı</h3>
<ul>
<li><strong>Giriş PDF Dosyası:</strong> <a href="https://github.com/fileformat-blog-gists/code/tree/main/working-with-pdf-files-in-python/pdf-to-rotate/">İndirme Bağlantısı</a></li>
<li><strong>Döndürülen Çıktı PDF Dosyası:</strong> <a href="https://github.com/fileformat-blog-gists/code/tree/main/working-with-pdf-files-in-python/pdf-to-rotate/rotated_output.pdf">İndirme Bağlantısı</a></li>
</ul>
<p><strong>Ekran Görüntüsü</strong>
<img loading="lazy" src="https://raw.githubusercontent.com/fileformat-blog-gists/content/main/working-with-pdf-files-in-python/rotated-pdf.png" alt="Dönüştürülen Sayfanın Python Kullanarak PDF&amp;rsquo;de Ekran Görüntüsü"  />
</p>
<h2 id="3-python-kullanarak-pdf-dosyalarını-birleştirme">3. Python Kullanarak PDF Dosyalarını Birleştirme</h2>
<p>Bu Python betiği, bir dizindeki <strong>birden fazla PDF dosyasını</strong> <strong>PyPDF</strong> kütüphanesini kullanarak tek bir PDF&rsquo;e nasıl birleştirebileceğinizi gösteriyor.</p>
<script type="application/javascript" src="https://gist.github.com/fileformat-blog-gists/a1a571783e0f5e699678d1094bf1afa5.js?file=merge_pdf_files_using_pypdf_in_python.py"></script>

<h3 id="kod-açıklaması-2">Kod Açıklaması</h3>
<ul>
<li>Bu betik, belirtilen dizindeki (<code>pdfs-to-merge</code>) tüm PDF dosyalarını otomatik olarak tek bir çıktı dosyasında (<code>merged_output.pdf</code>) birleştirir.</li>
<li>Çıkış dizininin var olup olmadığını kontrol eder ve dosyalar liste sırasına göre eklenir.</li>
<li>Nihai birleştirilmiş dosya <code>output-dir</code> alt dizininde çıktılanır.</li>
</ul>
<p><strong>Kod Anlatımı</strong></p>
<p><strong>1. Kütüphaneleri İçe Aktarma</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#f92672">import</span> os
</span></span><span style="display:flex;"><span><span style="color:#f92672">from</span> pypdf <span style="color:#f92672">import</span> PdfReader, PdfWriter
</span></span></code></pre></div><ul>
<li><code>os</code>: Dosya sistemini okumak ve dosya yollarını yönetmek gibi işlemler için kullanılır.</li>
<li><code>PdfReader</code>: Bir PDF dosyasının içeriğini okur.</li>
<li><code>PdfWriter</code>: Yeni bir PDF dosyası oluşturur ve yazar.</li>
</ul>
<p><strong>2. Dizin ve Çıktı Dosyasını Tanımlama</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span>directory <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;pdfs-to-merge&#34;</span>
</span></span><span style="display:flex;"><span>output_file <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;output-dir/merged_output.pdf&#34;</span>
</span></span></code></pre></div><ul>
<li><code>directory</code>: PDF dosyalarının depolandığı klasörü belirtir.</li>
<li><code>output_file</code>: Birleştirilmiş PDF&rsquo;nin çıktı yolu ve adını tanımlar.</li>
</ul>
<p><strong>3. Çıkış Dizinini Var Olmadığında Oluşturma</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span>os<span style="color:#f92672">.</span>makedirs(os<span style="color:#f92672">.</span>path<span style="color:#f92672">.</span>join(directory, <span style="color:#e6db74">&#34;output-dir&#34;</span>), exist_ok<span style="color:#f92672">=</span><span style="color:#66d9ef">True</span>)
</span></span></code></pre></div><ul>
<li>Bu, <strong>çıkış dizininin</strong> varlığını sağlar; yoksa oluşturur.</li>
</ul>
<p><strong>4. Bir PdfWriter Nesnesi Oluşturma</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span>writer <span style="color:#f92672">=</span> PdfWriter()
</span></span></code></pre></div><ul>
<li><code>writer</code>, tüm sayfaları toplamak ve birleştirmek için kullanılır.</li>
</ul>
<p><strong>5. Dizindeki Tüm PDF Dosyalarını Yinelemek</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#66d9ef">for</span> file_name <span style="color:#f92672">in</span> sorted(os<span style="color:#f92672">.</span>listdir(directory)):
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">if</span> file_name<span style="color:#f92672">.</span>endswith(<span style="color:#e6db74">&#34;.pdf&#34;</span>):
</span></span><span style="display:flex;"><span>        file_path <span style="color:#f92672">=</span> os<span style="color:#f92672">.</span>path<span style="color:#f92672">.</span>join(directory, file_name)
</span></span><span style="display:flex;"><span>        print(<span style="color:#e6db74">f</span><span style="color:#e6db74">&#34;Ekleniyor: </span><span style="color:#e6db74">{</span>file_name<span style="color:#e6db74">}</span><span style="color:#e6db74">&#34;</span>)
</span></span></code></pre></div><ul>
<li>Bu döngü, belirtilen dizindeki tüm dosyalar arasında dolaşır ve <code>.pdf</code> uzantılı dosyaları kontrol eder. İşlemi alfabetik sırayla gerçekleştirir <code>sorted()</code> kullanarak.</li>
</ul>
<p><strong>6. Her Bir PDF&rsquo;yi Okuma ve Sayfaları Yazıcıya Eklemek</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span>reader <span style="color:#f92672">=</span> PdfReader(file_path)
</span></span><span style="display:flex;"><span>writer<span style="color:#f92672">.</span>append(reader)
</span></span></code></pre></div><ul>
<li>Her PDF için, <code>PdfReader</code> dosyayı okur ve ardından o PDF&rsquo;deki tüm sayfalar <code>writer</code>a eklenir.</li>
</ul>
<p><strong>7. Birleştirilmiş PDF&rsquo;yi Bir Çıkış Dosyasına Yazma</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span>output_path <span style="color:#f92672">=</span> os<span style="color:#f92672">.</span>path<span style="color:#f92672">.</span>join(directory, output_file)
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">with</span> open(output_path, <span style="color:#e6db74">&#34;wb&#34;</span>) <span style="color:#66d9ef">as</span> output_pdf:
</span></span><span style="display:flex;"><span>    writer<span style="color:#f92672">.</span>write(output_pdf)
</span></span></code></pre></div><ul>
<li>Tüm sayfalar toplandıktan sonra, <code>writer.write()</code> birleştirilmiş PDF&rsquo;yi belirtilen çıkış yoluna yazar.</li>
</ul>
<p><strong>8. Onay Yazdırma</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span>print(<span style="color:#e6db74">f</span><span style="color:#e6db74">&#34;Birleştirilmiş PDF şu adrese kaydedildi: </span><span style="color:#e6db74">{</span>output_path<span style="color:#e6db74">}</span><span style="color:#e6db74">&#34;</span>)
</span></span></code></pre></div><ul>
<li>Kaydedilen birleştirilmiş PDF&rsquo;nin yeri hakkında bir onay mesajı yazdırır.</li>
</ul>
<h3 id="koddaki-kullanılan-giriş-pdf-dosyaları-ve-birleştirilen-çıktı-pdf">Koddaki Kullanılan Giriş PDF Dosyaları ve Birleştirilen Çıktı PDF</h3>
<ul>
<li><strong>Giriş PDF Dosyaları:</strong> <a href="https://github.com/fileformat-blog-gists/code/tree/main/working-with-pdf-files-in-python/pdfs-to-merge">İndirme Bağlantısı</a></li>
<li><strong>Birleştirilen Çıktı PDF:</strong> <a href="https://github.com/fileformat-blog-gists/code/tree/main/working-with-pdf-files-in-python/pdfs-to-merge/output-dir">İndirme Bağlantısı</a></li>
</ul>
<h2 id="4-python-kullanarak-bir-pdfyi-bölme">4. Python Kullanarak Bir PDF&rsquo;yi Bölme</h2>
<script type="application/javascript" src="https://gist.github.com/fileformat-blog-gists/0dee64422ac0dcf44cf027d90567bbf8.js?file=split-pdf-using-pypdf-in-python.py"></script>

<h3 id="kod-açıklaması-3">Kod Açıklaması</h3>
<p>Yukarıdaki Python betiği, bir PDF&rsquo;yi sayfalara ayırarak <strong>PyPDF</strong> kütüphanesi kullanarak her bir sayfayı ayrı ayrı PDF dosyası haline getirir. İlk olarak çıktı dizininin varlığını kontrol eder, ardından giriş PDF dosyasını okur. Betik, her sayfayı döngüye alır, yeni bir <strong>PdfWriter</strong> nesnesi oluşturur ve her sayfayı ayrı bir PDF dosyası olarak kaydeder. Çıkış dosyaları sıralı olarak adlandırılır (örneğin, <strong>page_1.pdf, page_2.pdf</strong>) ve <strong><code>output-dir</code></strong> klasörüne kaydedilir. Son olarak, her oluşturulan dosya için bir onay mesajı yazdırır ve işlem tamamlandığında bilgi verir.</p>
<h3 id="koddaki-kullanılan-giriş-pdf-ve-bölünmüş-çıktı-dosyaları">Koddaki Kullanılan Giriş PDF ve Bölünmüş Çıktı Dosyaları</h3>
<ul>
<li><strong>Giriş PDF Dosyası:</strong> <a href="https://github.com/fileformat-blog-gists/code/tree/main/working-with-pdf-files-in-python/pdf-to-split">İndirme Bağlantısı</a></li>
<li><strong>Bölünmüş Çıkış Dosyaları:</strong> <a href="https://github.com/fileformat-blog-gists/code/tree/main/working-with-pdf-files-in-python/pdf-to-split/output-dir">İndirme Bağlantısı</a></li>
</ul>
<h2 id="5-python-kullanarak-pdfye-filigran-ekleme">5. Python Kullanarak PDF&rsquo;ye Filigran Ekleme</h2>
<p>PyPDF kütüphanesini kullanarak bir PDF dosyasına filigran ekleyebilirsiniz. Bunun için, var olan PDF&rsquo;ye bir filigran PDF&rsquo;si bindirilir. Filigran PDF&rsquo;sinin yalnızca bir sayfası olduğundan emin olun, böylece ana PDF&rsquo;nin her sayfasına doğru bir şekilde uygulanır.</p>
<script type="application/javascript" src="https://gist.github.com/fileformat-blog-gists/af057943580e2fcde6a635df34d7e39a.js?file=watermark-pdf-using-pypdf-in-python.py"></script>

<h3 id="kod-açıklaması-4">Kod Açıklaması</h3>
<p>Yukarıdaki Python betiği, bir giriş PDF&rsquo;sini okur, tek sayfalık bir filigran PDF&rsquo;si çıkarır, filigranı giriş PDF&rsquo;sinin her sayfasına bindirir ve nihai filigranlanmış PDF&rsquo;yi kaydeder.</p>
<p><strong>Kod Anlatımı</strong></p>
<p>Her bölümün kısa bir açıklaması</p>
<p><strong>1. İhtiyaç Duyulan Sınıfları İçe Aktarma</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#f92672">from</span> pypdf <span style="color:#f92672">import</span> PdfReader, PdfWriter
</span></span></code></pre></div><ul>
<li><strong><code>PdfReader</code></strong> mevcut PDF&rsquo;leri okumak için kullanılır.</li>
<li><strong><code>PdfWriter</code></strong> yeni bir PDF oluşturmak ve yazmak için kullanılır.</li>
</ul>
<p><strong>2. Dosya Yollarını Tanımlama</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span>input_pdf <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;pdf-to-watermark/input.pdf&#34;</span>
</span></span><span style="display:flex;"><span>watermark_pdf <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;pdf-to-watermark/watermark.pdf&#34;</span>
</span></span><span style="display:flex;"><span>output_pdf <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;pdf-to-watermark/output_with_watermark.pdf&#34;</span>
</span></span></code></pre></div><ul>
<li><code>input_pdf</code>: Filigran eklenecek olan orijinal PDF.</li>
<li><code>watermark_pdf</code>: Filigran olarak hizmet veren ayrı <strong>tek sayfalık</strong> PDF.</li>
<li><code>output_pdf</code>: Filigranlanmış sayfaları içerecek çıkış dosyası.</li>
</ul>
<p><strong>3. PDF&rsquo;leri Okuma</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span>reader <span style="color:#f92672">=</span> PdfReader(input_pdf)
</span></span><span style="display:flex;"><span>watermark <span style="color:#f92672">=</span> PdfReader(watermark_pdf)
</span></span></code></pre></div><ul>
<li><code>reader</code>: Giriş PDF&rsquo;sini okur.</li>
<li><code>watermark</code>: Filigran PDF&rsquo;sini okur.</li>
</ul>
<p><strong>4. Bir Yazıcı Nesnesi Oluşturma</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span>writer <span style="color:#f92672">=</span> PdfWriter()
</span></span></code></pre></div><ul>
<li>Bu, filigranlanmış nihai PDF&rsquo;yi oluşturmak için kullanılacak.</li>
</ul>
<p><strong>5. Filigran Sayfasını Çıkarma</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span>watermark_page <span style="color:#f92672">=</span> watermark<span style="color:#f92672">.</span>pages[<span style="color:#ae81ff">0</span>]
</span></span></code></pre></div><ul>
<li>Filigran PDF&rsquo;sinin yalnızca <strong>bir sayfa</strong> olduğununu varsayar, bu tüm sayfalara bindirilir.</li>
</ul>
<p><strong>6. Giriş PDF Sayfaları Üzerinden Döngü ve Filigran ile Birleştirme</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#66d9ef">for</span> page <span style="color:#f92672">in</span> reader<span style="color:#f92672">.</span>pages:
</span></span><span style="display:flex;"><span>    <span style="color:#75715e"># Filigranı mevcut sayfa ile birleştirme</span>
</span></span><span style="display:flex;"><span>    page<span style="color:#f92672">.</span>merge_page(watermark_page)
</span></span><span style="display:flex;"><span>    
</span></span><span style="display:flex;"><span>    <span style="color:#75715e"># Birleştirilmiş sayfayı yazıcıya ekleme</span>
</span></span><span style="display:flex;"><span>    writer<span style="color:#f92672">.</span>add_page(page)
</span></span></code></pre></div><ul>
<li><code>input_pdf</code> her sayfa üzerinde iterasyon yapar.</li>
<li><strong><code>merge_page(watermark_page)</code></strong> filigranı mevcut sayfanın üzerine bindirir.</li>
<li>Değiştirilen sayfayı <code>writer</code>a ekler.</li>
</ul>
<p><strong>7. Filigranlı PDF&rsquo;yi Kaydetme</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#66d9ef">with</span> open(output_pdf, <span style="color:#e6db74">&#34;wb&#34;</span>) <span style="color:#66d9ef">as</span> output_file:
</span></span><span style="display:flex;"><span>    writer<span style="color:#f92672">.</span>write(output_file)
</span></span></code></pre></div><ul>
<li>Değiştirilen sayfaları yeni bir PDF dosyasına yazar.</li>
</ul>
<p><strong>8. Onay Yazdırma</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span>print(<span style="color:#e6db74">f</span><span style="color:#e6db74">&#34;Filigranlanmış PDF şu adrese kaydedildi: </span><span style="color:#e6db74">{</span>output_pdf<span style="color:#e6db74">}</span><span style="color:#e6db74">&#34;</span>)
</span></span></code></pre></div><ul>
<li>Onay için çıkış dosyası yolunu yazdırır.</li>
</ul>
<h3 id="giriş-pdf-filigran-pdf-ve-çıkış-filigranlı-pdf">Giriş PDF, Filigran PDF ve Çıkış Filigranlı PDF</h3>
<ul>
<li><strong>Giriş PDF Dosyası:</strong> <a href="https://github.com/fileformat-blog-gists/code/tree/main/working-with-pdf-files-in-python/pdf-to-watermark">İndirme Bağlantısı</a></li>
<li><strong>Filigran PDF Dosyası:</strong> <a href="https://github.com/fileformat-blog-gists/code/tree/main/working-with-pdf-files-in-python/pdf-to-watermark">İndirme Bağlantısı</a></li>
<li><strong>Çıkış Filigranlı PDF Dosyası:</strong> <a href="https://github.com/fileformat-blog-gists/code/tree/main/working-with-pdf-files-in-python/pdf-to-watermark">İndirme Bağlantısı</a></li>
</ul>
<p><strong>Ekran Görüntüsü</strong>
<img loading="lazy" src="https://raw.githubusercontent.com/fileformat-blog-gists/content/main/working-with-pdf-files-in-python/watermark-pdf.png" alt="Python Kullanarak Filigran Eklenmiş PDF&amp;rsquo;nin Ekran Görüntüsü"  />
</p>
<h2 id="sonuç">Sonuç</h2>
<p>Bu kılavuzda, Python&rsquo;da metin çıkarma, sayfaları döndürme, birleştirme, bölme ve filigran ekleme gibi temel PDF işlemlerini inceledik. Bu becerilerle, kendi PDF yöneticinizi oluşturabilir ve çeşitli PDF görevlerini verimli bir şekilde otomatikleştirebilirsiniz.</p>
]]></content:encoded>
    </item>
    
    <item>
      <title>Python Kullanarak PDF Dosyasından Metin Çıkarma</title>
      <link>https://blog.fileformat.com/tr/programming/extract-text-from-pdf-file-using-python/</link>
      <pubDate>Wed, 15 Jan 2025 00:00:00 +0000</pubDate>
      
      <guid>https://blog.fileformat.com/tr/programming/extract-text-from-pdf-file-using-python/</guid>
      <description>Bu makale, PyPDF ve PyMuPDF gibi popüler kütüphaneleri kullanarak Python&amp;#39;da bir PDF&amp;#39;den nasıl metin çıkarılacağını gösterecek. Kod örnekleri, örnek dosyalar ve çıktılar sağlanacaktır.</description>
      <content:encoded><![CDATA[<p><strong>Son Güncelleme</strong>: 15 Ocak, 2025</p>
<figure class="align-center ">
    <img loading="lazy" src="images/extract-text-from-pdf-file-using-python.webp#center"
         alt="Başlık - Python Kullanarak PDF Dosyasından Metin Çıkarma"/> 
</figure>

<h2 id="python-kullanarak-pdf-dosyasından-metin-çıkarma">Python Kullanarak PDF Dosyasından Metin Çıkarma</h2>
<p>Bu makalede, <strong>Python kullanarak PDF dosyasından nasıl metin çıkarılacağını</strong> size bildireceğiz.</p>
<p>PDF, <strong>Portable Document Format</strong> (Taşınabilir Belge Formatı) anlamına gelir ve popüler bir dijital belge formatıdır. Bu format, belgelerin yazılım, donanım veya işletim sisteminden bağımsız olarak kolay ve güvenilir bir şekilde görüntülenmesini veya paylaşılmasını sağlamak için tasarlanmıştır. PDF dosyalarının uzantısı <strong>.pdf</strong>&lsquo;dir.</p>
<p>Python kullanarak bir PDF dosyasından metin çıkarmak için bu kütüphaneler yaygın olarak kullanılır. Bu iki kütüphane kullanılarak bir PDF&rsquo;den nasıl metin çıkarılacağını size göstereceğiz.</p>
<ol>
<li><a href="https://pypi.org/project/pypdf/"><strong>pypdf</strong></a></li>
<li><a href="https://pypi.org/project/PyMuPDF/"><strong>PyMuPDF</strong></a></li>
</ol>
<h2 id="pythonda-pypdf-kullanarak-pdf-dosyasından-metin-çıkarma">Python&rsquo;da pypdf Kullanarak PDF Dosyasından Metin Çıkarma</h2>
<p>İşte adımlar.</p>
<ol>
<li><strong>pypdf</strong>&lsquo;i yükleyin</li>
<li>Bu makalede verilen kodu çalıştırın</li>
<li>Çıktıyı görün</li>
</ol>
<h3 id="pypdf-yükleme">pypdf Yükleme</h3>
<p><strong>pypdf</strong>&lsquo;i aşağıdaki komutu kullanarak yükleyebilirsiniz.</p>
<pre tabindex="0"><code>pip install pypdf
</code></pre><h3 id="pypdf-kullanarak-pdften-metin-çıkarmak-için-örnek-kod">pypdf Kullanarak PDF&rsquo;ten Metin Çıkarmak İçin Örnek Kod</h3>
<p><strong>sample.pdf</strong> - <a href="https://github.com/shakeel-faiz/InputOutputDocs/raw/master/python-convert-pdf-to-image/sample.pdf">İndirme Linki</a> (Bu örnek PDF kodda kullanılacak, ancak kendi PDF&rsquo;nizi de kullanabilirsiniz.)</p>
<p><strong>sample.pdf&rsquo;in ekran görüntüsü</strong></p>
<p><img loading="lazy" src="https://raw.githubusercontent.com/shakeel-faiz/InputOutputDocs/master/python-convert-pdf-to-image/sample-input-pdf-screenshot.png" alt="Örnek Giriş PDF Ekran Görüntüsü"  />
</p>
<h3 id="kod">Kod</h3>
<p>İşte <strong>pypdf kullanarak bir PDF&rsquo;den metin çıkarmak için</strong> eksiksiz bir kod örneği.</p>
<script type="application/javascript" src="https://gist.github.com/fileformat-blog-gists/50b8279dca1fa397849031e8d370cd95.js?file=extract-text-from-pdf-using-pypdf.py"></script>

<h3 id="çıktı">Çıktı</h3>
<p>İşte yukarıda sağlanan örnek kodun çıktısı.</p>
<script type="application/javascript" src="https://gist.github.com/fileformat-blog-gists/6870826ad3c40b67dfc3d4aef838328b.js?file=output-extract-text-from-pdf-using-pypdf"></script>

<h2 id="pythonda-pymupdf-kullanarak-pdf-dosyasından-metin-çıkarma">Python&rsquo;da PyMuPDF Kullanarak PDF Dosyasından Metin Çıkarma</h2>
<p>İşte adımlar.</p>
<ol>
<li><strong>PyMuPDF</strong>&lsquo;i yükleyin</li>
<li>Bu makalede verilen kodu çalıştırın</li>
<li>Çıktıyı görün</li>
</ol>
<h3 id="pymupdf-yükleme">PyMuPDF Yükleme</h3>
<p><strong>PyMuPDF</strong>, diğer adıyla <strong>fitz</strong>, aşağıdaki komutla yükleyin.</p>
<pre tabindex="0"><code>pip install pymupdf
</code></pre><h3 id="pymupdf-kullanarak-pdften-metin-çıkarmak-için-örnek-kod">PyMuPDF Kullanarak PDF&rsquo;ten Metin Çıkarmak İçin Örnek Kod</h3>
<p>Daha önce kullanılan aynı pdf kullanıldı</p>
<p><strong>sample.pdf</strong> - <a href="https://github.com/shakeel-faiz/InputOutputDocs/raw/master/python-convert-pdf-to-image/sample.pdf">İndirme Linki</a> (Bu örnek PDF kodda kullanılacak, ancak kendi PDF&rsquo;nizi de kullanabilirsiniz.)</p>
<h3 id="kod-1">Kod</h3>
<p>İşte <strong>PyMuPDF kullanarak bir PDF&rsquo;den metin çıkarmak için</strong> eksiksiz bir kod örneği.</p>
<script type="application/javascript" src="https://gist.github.com/fileformat-blog-gists/799f8ecafe4d64feb803548b0d1db36d.js?file=extract-text-from-pdf-using-pymupdf.py"></script>

<h3 id="çıktı-1">Çıktı</h3>
<p>İşte yukarıda sağlanan örnek kodun çıktısı.</p>
<script type="application/javascript" src="https://gist.github.com/fileformat-blog-gists/cfda58da76b68dea4c5269b627901417.js?file=output-extract-text-from-pdf-using-pymupdf"></script>

<h2 id="sonuç">Sonuç</h2>
<p>Bu makalede, iki kütüphaneyi kullanarak bir PDF&rsquo;den nasıl metin çıkarılacağını göstermek için örnek Python kodu, örnek dosyalar ve bunların çıktıları sağladık: PyPDF ve PyMuPDF.</p>
<p>Kod çalıştırılırken herhangi bir sorunuz veya karşılaştığınız bir sorun olursa, <a href="https://forum.fileformat.com/">forumlarımızda</a> yorum bırakmaktan çekinmeyin!</p>
<h2 id="ayrıca-bakınız">Ayrıca Bakınız</h2>
<ul>
<li><a href="https://blog.fileformat.com/programming/convert-pdf-to-image-in-python/">Python PDF to Image Conversion: Adım Adım Kılavuz</a></li>
<li><a href="https://blog.fileformat.com/programming/batch-change-file-encoding-to-utf8/">Dosya kodlamasını toplu olarak UTF-8&rsquo;e değiştirme</a></li>
</ul>
]]></content:encoded>
    </item>
    
    <item>
      <title>Python&#39;da PDF&#39;yi Görüntüye Dönüştürme</title>
      <link>https://blog.fileformat.com/tr/programming/convert-pdf-to-image-in-python/</link>
      <pubDate>Sat, 04 Jan 2025 00:00:00 +0000</pubDate>
      
      <guid>https://blog.fileformat.com/tr/programming/convert-pdf-to-image-in-python/</guid>
      <description>Python&amp;#39;da bir PDF dosyasını görüntüye (JPEG, PNG) nasıl dönüştüreceğinizi, ayrıntılı örneklerle öğrenin. pdf2image ve PyMuPDF gibi popüler kütüphaneleri kullanarak adım adım kılavuz.</description>
      <content:encoded><![CDATA[<p><strong>Son Güncellenme</strong>: 27 Ocak 2025</p>
<figure class="align-center ">
    <img loading="lazy" src="images/convert-pdf-to-image-in-python.webp#center"
         alt="Başlık - Python PDF&#39;yi Görüntüye Dönüştürme: Adım Adım Kılavuz"/> 
</figure>

<h2 id="pythonda-pdfyi-görüntüye-dönüştürme-adım-adım-kılavuz">Python&rsquo;da PDF&rsquo;yi Görüntüye Dönüştürme: Adım Adım Kılavuz</h2>
<p>PDF dosyalarını <a href="https://docs.fileformat.com/image/jpeg/">JPEG</a> veya <a href="https://docs.fileformat.com/image/png/">PNG</a> gibi görüntü formatlarına dönüştürmek oldukça faydalı olabilir. Özellikle bir PDF&rsquo;den görüntü çıkarmak, belgenin bir önizlemesini sunmak veya görsel verilerle çalışmak istediğiniz senaryolarda işe yarar. <a href="https://www.python.org/">Python</a>, esnek bir programlama dili olarak, bu görevi verimli bir şekilde gerçekleştirmek için birden fazla yöntem sunar.</p>
<p>Bu kılavuzda, bir PDF&rsquo;yi Python&rsquo;da görüntüye dönüştürmenin <strong>adım adım</strong> sürecini size göstereceğiz. Bunu popüler Python kütüphaneleri kullanarak nasıl yapacağınızı, kod örneklerini ve faydalı sorun giderme ipuçlarını öğreneceksiniz. Ayrıca, tam kodu, onun çıktısı olan görüntüleri ve içinde kullanılan örnek PDF&rsquo;yi de sağlayacağız.</p>
<h2 id="pythonda-pdfyi-görüntüye-dönüştürmek-için-gerekenler">Python&rsquo;da PDF&rsquo;yi Görüntüye Dönüştürmek İçin Gerekenler</h2>
<p>Koda dalmadan önce, doğru araçlara sahip olduğunuzdan emin olalım. Bu görev için aşağıdaki Python kütüphanelerini kurmanız gerekecek:</p>
<ol>
<li><a href="https://pillow.readthedocs.io/en/latest/handbook/tutorial.html"><strong>Pillow</strong></a>: Genellikle görüntü dosyalarını açmak, değiştirmek ve kaydetmek için kullanılan popüler bir Python Görüntü Kütüphanesi (PIL).</li>
<li><a href="https://github.com/Belval/pdf2image"><strong>pdf2image</strong></a>: Bu kütüphane, PDF sayfalarını Python&rsquo;da görüntülere dönüştürmenize yardımcı olur. PDF sayfalarını görüntülere dönüştürmek için <a href="https://poppler.freedesktop.org/"><strong>Poppler</strong></a> kullanır.</li>
</ol>
<h3 id="gerekli-kütüphanelerin-kurulumu">Gerekli Kütüphanelerin Kurulumu</h3>
<p>Bu kütüphaneleri pip kullanarak kurabilirsiniz:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>pip install pillow pdf2image
</span></span></code></pre></div><p>Sisteminizde <strong>Poppler</strong> kurulu değilse, onu ayrı olarak kurmanız gerekebilir. Platformunuz için kurulum kılavuzuna <a href="https://github.com/Belval/pdf2image">buradan</a> bakabilirsiniz.</p>
<h2 id="pythonda-pdfyi-görüntüye-dönüştürme-üzerine-adım-adım-kılavuz">Python&rsquo;da PDF&rsquo;yi Görüntüye Dönüştürme Üzerine Adım Adım Kılavuz</h2>
<h3 id="adım-1-gerekli-kütüphaneleri-içe-aktarın">Adım 1: Gerekli Kütüphaneleri İçe Aktarın</h3>
<p>Başlangıç olarak gerekli Python kütüphanelerini içe aktarın:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#f92672">from</span> pdf2image <span style="color:#f92672">import</span> convert_from_path
</span></span><span style="display:flex;"><span><span style="color:#f92672">from</span> PIL <span style="color:#f92672">import</span> Image
</span></span></code></pre></div><h3 id="adım-2-pdfyi-görüntülere-dönüştürün">Adım 2: PDF&rsquo;yi Görüntülere Dönüştürün</h3>
<p>Kütüphaneleri içe aktardıktan sonra, bir PDF dosyasını görüntülere dönüştürebilirsiniz. İşte nasıl yapacağınız:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#75715e"># PDF&#39;yi görüntülere dönüştür</span>
</span></span><span style="display:flex;"><span>images <span style="color:#f92672">=</span> convert_from_path(<span style="color:#e6db74">&#39;yourfile.pdf&#39;</span>)
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Her sayfayı bir görüntü olarak kaydet</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">for</span> i, image <span style="color:#f92672">in</span> enumerate(images):
</span></span><span style="display:flex;"><span>    image<span style="color:#f92672">.</span>save(<span style="color:#e6db74">f</span><span style="color:#e6db74">&#39;page_</span><span style="color:#e6db74">{</span>i<span style="color:#e6db74">}</span><span style="color:#e6db74">.jpg&#39;</span>, <span style="color:#e6db74">&#39;JPEG&#39;</span>)
</span></span></code></pre></div><h3 id="kodun-açıklaması">Kodun Açıklaması:</h3>
<ul>
<li><code>convert_from_path()</code> fonksiyonu, PDF dosyasını <strong>PIL görüntü nesneleri</strong> listesine dönüştürür.</li>
<li>Ardından, görüntülerin üzerinden geçerek PDF&rsquo;nin her sayfasını ayrı bir görüntü (bu durumda, JPEG formatında) olarak kaydederiz.</li>
</ul>
<h3 id="adım-3-isteğe-bağlı--diğer-görüntü-formatlarına-dönüştürme"><strong>Adım 3: İsteğe Bağlı – Diğer Görüntü Formatlarına Dönüştürme</strong></h3>
<p>Görüntüleri <code>image.save()</code> yönteminde formatı değiştirerek kolayca diğer formatlara (PNG gibi) dönüştürebilirsiniz:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span>image<span style="color:#f92672">.</span>save(<span style="color:#e6db74">f</span><span style="color:#e6db74">&#39;page_</span><span style="color:#e6db74">{</span>i<span style="color:#e6db74">}</span><span style="color:#e6db74">.png&#39;</span>, <span style="color:#e6db74">&#39;PNG&#39;</span>)
</span></span></code></pre></div><h3 id="tam-kod">Tam Kod</h3>
<p>İşte tam kod. Basitçe kopyalayın, herhangi bir isimle kaydedip <code>.py</code> uzantısını ekleyin ve çalıştırın. Örneğin, <code>convert_pdf_to_images.py</code> olarak adlandırabilirsiniz.</p>
<p>Çalıştırmadan önce, <code>pdf_path</code> değişkenini girdiniz PDF dosyasının yolunu gösterecek şekilde güncelleyin.</p>
<script type="application/javascript" src="https://gist.github.com/fileformat-blog-gists/6e26bc3d0c73587f6be860e20a5d6881.js?file=convert-pdf-to-image-in-python.py"></script>

<h3 id="örnek-pdfyi-indirin-ve-ekran-görüntüsünü-görün">Örnek PDF’yi İndirin ve Ekran Görüntüsünü Görün</h3>
<p>Herhangi bir PDF&rsquo;yi kullanabilirsiniz, ancak bu kodu çalıştırmak ve test etmek için belirli bir PDF&rsquo;yi kullandık.</p>
<ul>
<li><a href="https://github.com/fileformat-blog-gists/content/raw/main/convert-pdf-to-image-in-python/sample.pdf">Örnek PDF’yi İndirin</a></li>
</ul>
<p><img loading="lazy" src="https://raw.githubusercontent.com/fileformat-blog-gists/content/main/convert-pdf-to-image-in-python/sample-input-pdf-screenshot.png" alt="Örnek Girdi PDF Ekran Görüntüsü"  />
</p>
<h3 id="kod-tarafından-üretilen-çıktı-görüntüler">Kod Tarafından Üretilen Çıktı Görüntüler</h3>
<ul>
<li>page_1.jpg</li>
<li>page_2.jpg</li>
<li>page_3.jpg</li>
</ul>
<p><img loading="lazy" src="https://raw.githubusercontent.com/fileformat-blog-gists/content/main/convert-pdf-to-image-in-python/output-images/page_1.jpg" alt="page_1.jpg"  />

<img loading="lazy" src="https://raw.githubusercontent.com/fileformat-blog-gists/content/main/convert-pdf-to-image-in-python/output-images/page_2.jpg" alt="page_2.jpg"  />

<img loading="lazy" src="https://raw.githubusercontent.com/fileformat-blog-gists/content/main/convert-pdf-to-image-in-python/output-images/page_3.jpg" alt="page_3.jpg"  />
</p>
<h2 id="pythonda-pdfyi-görüntüye-dönüştürme-için-alternatif-yöntemler">Python&rsquo;da PDF&rsquo;yi Görüntüye Dönüştürme İçin Alternatif Yöntemler</h2>
<p><strong>pdf2image</strong> ve <strong>Poppler</strong> yaygın olarak kullanılsa da, <strong>Poppler</strong> gerekmeden PDF&rsquo;yi görüntüye dönüştürmek için başka yöntemler de vardır. Örneğin:</p>
<ol>
<li><strong>PyMuPDF (fitz) Kullanarak</strong>: Bu kütüphane de PDF&rsquo;lerden görüntü çıkarmanıza ve bunları düzenlemenize olanak tanır.</li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>pip install pymupdf
</span></span></code></pre></div><p>Kod örneği:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#f92672">import</span> fitz  <span style="color:#75715e"># PyMuPDF</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># PDF dosyasını aç</span>
</span></span><span style="display:flex;"><span>doc <span style="color:#f92672">=</span> fitz<span style="color:#f92672">.</span>open(<span style="color:#e6db74">&#34;yourfile.pdf&#34;</span>)
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Her sayfanın üzerinden geç ve görüntüye dönüştür</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">for</span> page_num <span style="color:#f92672">in</span> range(len(doc)):
</span></span><span style="display:flex;"><span>    page <span style="color:#f92672">=</span> doc<span style="color:#f92672">.</span>load_page(page_num)
</span></span><span style="display:flex;"><span>    pix <span style="color:#f92672">=</span> page<span style="color:#f92672">.</span>get_pixmap()
</span></span><span style="display:flex;"><span>    pix<span style="color:#f92672">.</span>save(<span style="color:#e6db74">f</span><span style="color:#e6db74">&#34;page_</span><span style="color:#e6db74">{</span>page_num<span style="color:#e6db74">}</span><span style="color:#e6db74">.png&#34;</span>)
</span></span></code></pre></div><p>Bu yöntem <strong>Poppler</strong> gerektirmeden çalışır ve kurulum sorunları yaşıyorsanız bir alternatif olabilir.</p>
<h2 id="yaygın-hatalar-ve-sorun-giderme"><strong>Yaygın Hatalar ve Sorun Giderme</strong></h2>
<p>Genel olarak, Python&rsquo;da PDF&rsquo;leri görüntülere dönüştürmek kolaydır, ancak bazı sorunlarla karşılaşabilirsiniz. İşte birkaç yaygın hata ve çözümleri:</p>
<ol>
<li>
<p><strong>Hata: <code>OSError: cannot identify image file</code></strong></p>
<ul>
<li>Bu, genellikle <strong>PDF düzgün render edilmediğinde</strong> meydana gelir. <strong>Poppler</strong>&lsquo;ın doğru bir şekilde kurulduğundan ve Python ortamınızdan erişilebilir olduğundan emin olun.</li>
</ul>
</li>
<li>
<p><strong>Hata: <code>RuntimeError: cannot open image file</code></strong></p>
<ul>
<li>Bu hata, desteklenmeyen bir görüntü formatını açmaya çalışıyorsanız oluşabilir. Kaydetmeye çalıştığınız görüntü formatını (JPEG, PNG, vb.) tekrar kontrol edin ve <strong>Pillow</strong>&lsquo;un bunu desteklediğinden emin olun.</li>
</ul>
</li>
</ol>
<h2 id="sonuç">Sonuç</h2>
<p>Python&rsquo;da <strong>pdf2image</strong> ve <strong>Pillow</strong> gibi kütüphanelerin yardımıyla PDF belgelerini görüntülere dönüştürmek kolaydır. İster bir PDF&rsquo;den görüntü çıkarmak isteyin, ister her sayfasını bir resim olarak göstermek isteyin, bu kılavuz size bunu adım adım nasıl yapacağınızı gösterdi.</p>
<p>Proje ihtiyaçlarınıza bağlı olarak, benzer sonuçlar elde etmek için <strong>PyMuPDF</strong> gibi başka Python kütüphanelerini de keşfedebilirsiniz.</p>
<p>Bu çözümü uygularken herhangi bir sorunla karşılaşırsanız veya sorularınız varsa, <a href="https://forum.fileformat.com/">forumlarımızda</a> bir yorum bırakmaktan çekinmeyin!</p>
<h2 id="paylaş-ve-keşfet">Paylaş ve Keşfet</h2>
<p>Bu kılavuz size yardımcı olduysa, başkalarıyla paylaşmayı unutmayın ve daha fazla kod ipucu ve püf noktası için diğer yardımcı kılavuzlarımızı keşfedin!</p>
<h2 id="ayrıca-bakınız">Ayrıca Bakınız</h2>
<ul>
<li><a href="https://blog.fileformat.com/programming/batch-change-file-encoding-to-utf8/">Toplu dosya kodlamasını UTF-8&rsquo;e değiştirme</a></li>
</ul>
]]></content:encoded>
    </item>
    
    <item>
      <title>Java veya PHP: Web geliştirme için hangisi daha iyidir?</title>
      <link>https://blog.fileformat.com/tr/programming/java-or-php-which-one-is-better-for-web-development/</link>
      <pubDate>Fri, 10 Sep 2021 17:32:20 +0000</pubDate>
      
      <guid>https://blog.fileformat.com/tr/programming/java-or-php-which-one-is-better-for-web-development/</guid>
      <description>Java, PHP&amp;#39;ye kıyasla daha fazla fayda sağladığı için PHP&amp;#39;den daha iyidir. Her ikisi de uygulamaların ve sayfaların geliştirilmesi için kullanılsa da, Java&amp;#39;nın geliştiriciler tarafından tercih edildiği için daha fazla tesise sahiptir.</description>
      <content:encoded><![CDATA[<h2 id="java-nedir-wp-blok-başlığı">Java nedir? {.wp-blok başlığı}</h2>
<p>James Arthur Gosling tarafından sınıf önyargılı üst düzey, nesne yönelimli bir programlama dili geliştirildi. Bu dilin tasarımı mümkün olduğunca daha az uygulama bağımlı tutulur. Hemen hemen tüm platformlar, yeni başlayanlar ve geliştiriciler için öğrenilmesi daha kolay olan basit ve tanıdık bir sözdizimine sahip Java&rsquo;yı destekler, sözdiziminin uyum sağlaması daha kolaydır. <a href="https://docs.fileformat.com/programming/java/">Java</a>, nesne yönelimli, güvenli, dinamik, sağlam ve taşınabilir genel amaçlı bir dildir.
Belirli bir dilin kodunu geliştirmek için belirli IDE ve spesifik işletim sistemlerinin gerekli olduğu önceki yılların aksine, birçok entegre geliştirme ortamı Java ile uyumlu hale getirilir. Bu IDE&rsquo;ler Visual Studio, Eclipse, Apache Netbeans, Codeenvy, vb. İçerir. Bunların hepsi Java kodunu geliştirmek ve çalıştırmak için uygun hale getirilmiştir.</p>
<h2 id="php-nedir-wp-blok-başlığı">PHP nedir? {.wp-blok başlığı}</h2>
<p>Başka bir programlama dili, web geliştirme uğruna harika bir platform olan <a href="https://docs.fileformat.com/programming/php/">PHP</a> &lsquo;dir. 1994 yılında Rasmus Lerdorf, PHP&rsquo;nin ilk sürümlerini iki arkadaşı ile birlikte başlattı. Web geliştirme çoğunlukla web sunucusunda yürütülür. Birden fazla hedefi var. İlişkisel veritabanı yönetim sistemleri, komut satırı komut dosyası ve grafik kullanıcı arayüz uygulamalarının geliştirilmesi için kullanılabilir.
Son birkaç yılda, bu dil milyonlarca sunucuya kuruldu ve milyonlarca web sitesinin geliştirilmesi için kullanıldı. Bu dillerin kodlanması ve geliştirilmesi için, piyasada XAMP, WAMP, LAMP, Easyphp vb. Gibi birçok web sunucusu mevcuttur.</p>
<h2 id="neden-karşılaştırmalı-wp-blok-başlığı">Neden karşılaştırmalı? {.wp-blok başlığı}</h2>
<p>Karşılaştırmalarının ardındaki nedeni, her ikisinin de web geliştirme için kullanılmasıdır. Web geliştirme alanındaki insanların çoğunun tüm dilleri öğrenmesi mümkün değildir. Hem Java hem de PHP&rsquo;nin geniş kullanımı ve benzerlikleri vardır, bu nedenle çoğunlukla karşılaştırılırlar.</p>
<h3 id="kodlama-hızı-wp-blok-başlık">Kodlama Hızı {.wp-blok başlık}</h3>
<p>Java optimize edilmiş kodlama hızı içerir, ancak sonuçlar alınan zamandır. Öte yandan, PHP daha az optimize edilmiş kod içerirken, daha kısa ve daha az zaman alma sonuç kodları içerir.</p>
<h3 class="WP-Block-Heading" id="fame">FAME</h3>
<p>Bu dillerden hangisinin daha fazla popülerlik veya şöhret olduğunu kontrol etmek için şirketlerin ve geliştiricilerin değerlendirilmesini bilmeliyiz. Java, geliştiriciler ve şirketler arasında PHP ile karşılaştırıldığında daha fazla şöhrete sahiptir.</p>
<h3 id="vitality-wp-blok-başlık">Vitality {.wp-blok başlık}</h3>
<p>Kod veya programlama dilinin canlılığı, sonuçların ve kodun ne kadar kararlı olduğu anlamına gelir. Projeden sonra eksik olduğu için bu mülk Java&rsquo;da daha azdır. PHP&rsquo;de kodun, sonuçların sabit olduğunu ve her aşamada canlılığa sahip olduğunu fark edeceksiniz.</p>
<h3 class="wp-blok-başlık" id="öğrenmesi-kolay">Öğrenmesi kolay</h3>
<p>Java ve PHP çoğunlukla diğer dillere kıyasla karmaşık bir görev olmayan Web geliştirme için kullanıldığından, bunların her ikisinin de öğrenilmesi daha kolaydır.</p>
<h3 id="bellek-güvenliği-wp-blok-başlık">Bellek Güvenliği {.wp-blok başlık}</h3>
<p>Java, sisteminizdeki hatalarla birlikte saldırılara karşı güvenlik sağladığı için PHP&rsquo;ye kıyasla daha güvenlidir. Bu açıdan Java, PHP&rsquo;ye kıyasla daha güvenli ve bellek güvenlidir.</p>
<h3 id="dokümantasyon-kolaylığı-wp-blok-başlık">Dokümantasyon kolaylığı {.wp-blok başlık}</h3>
<p>Java daha kolay ve daha az karmaşık dokümantasyon özelliklerine sahiptir. Statik olarak yazılmıştır ve hatasız belgeler sağlar. PHP dinamik olarak yazılır ve belgeleri Java ile karşılaştırıldığında karmaşıktır.</p>
<h3 class="wp-block-heading" id="mesleğe-daha-iyi">Mesleğe daha iyi</h3>
<p>Profesyonel çalışma için Java, her aşamada denge ve PHP ile karşılaştırıldığında daha iyi hız sağladığı için tercih edilir. Bunun nedeni, PHP&rsquo;nin daha az hız ve istikrarından kaynaklanıyor olabilir.</p>
<h3 class="wp-block-heading" id="maliyet">Maliyet</h3>
<p>Her ikisi de geliştirme dilleridir ve bazı farklılıklarla birlikte benzerliklere sahiptir. Java gelişiminin maliyeti PHP&rsquo;ye göre daha yüksektir. Bunun nedeni her iki dilin özellikleri ve gereksinimleridir.</p>
<h3 class="wp-blok-başlık" id="performans"><strong>Performans</strong></h3>
<p>Bu karşılaştırmada Java, PHP&rsquo;ye kıyasla daha fazla performans yeteneğine sahiptir. Java&rsquo;nın önceden derlenen kodu, daha iyi performans yeteneğine katkıda bulunan bir başka avantajdır.</p>
<h2 id="java-ve-php-ne-zaman-kullanılır-wp-blok-başlığı">Java ve PHP ne zaman kullanılır? {.wp-blok başlığı}</h2>
<p>Web geliştirme ve web sitesi tasarımı için, bunların her ikisi de büyük ölçekte kullanılır. Ancak bunların her ikisinin de kullanımında bazı farklılıklar var</p>
<h3 id="java-ne-için-kullanılır-wp-blok-başlığı">Java ne için kullanılır? {.wp-blok başlığı}</h3>
<p>Java&rsquo;nın özel kullanımı uygulamaların geliştirilmesi içindir. Tek bir bilgisayara belirtilen veya çeşitli bilgisayarlar arasında dağıtılan uygulamalar Java aracılığıyla geliştirilmiştir. Oyun, bulut, web, mobil, masaüstü grafik kullanıcı arayüzü ve büyük veri teknolojilerine dayanan uygulamalar Java platformu altında geliştirilmiştir.</p>
<h3 id="php-ne-için-kullanılır-wp-blok-başlığı">PHP ne için kullanılır? {.wp-blok başlığı}</h3>
<p>PHP bir komut dosyası dili olan bu dilin ana hedefi sunucu tarafı komut dosyasıdır. Komut satırı komut dosyası web sunucuları gerektirmez. Grafik kullanıcı arayüzüne sahip masaüstü uygulamaları oluşturmak için kullanılabilir. PHP bu amaç için en iyi dil değildir, ancak özellikleri ve yetenekleri web geliştirme için iyidir ve büyük ölçekte kullanılır.</p>
<h2 class="wp-block-heading" id="alt-satır">Alt satır</h2>
<p>Dillerin özelliklerini, benzerliklerini, farklılıklarını, kullanımını ve sınırlamalarını karşılaştırarak, Java&rsquo;nın PHP&rsquo;den daha fazla fayda sağladığı için PHP&rsquo;den daha iyi olduğunu düşünebiliriz. Her ikisi de uygulamaların ve sayfaların geliştirilmesi için kullanılmasına rağmen, Java&rsquo;nın geliştiriciler tarafından tercih edildiği için daha fazla tesise sahiptir.</p>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
