Altbilgi içeriğine atla
PDF ARAçLARı

Mac ve Windows'ta Web Sayfasını PDF Dosyası Olarak Nasıl Kaydederim

PDF dosyaları, farklı platformlarda formatlamayı koruma yeteneklerinden dolayı belge alışverişi için yaygın olarak kullanılan bir formattır. Çeşitli uygulamalarda, PDF dosyalarının içeriklerini programatik olarak okumak çok değerli hale gelir.

Bu makalede, Xpdf komut satırı aracını kullanarak C++ ile PDF dosyalarından metin görüntülemeyi öğreneceğiz. Xpdf, metin çıkarma dahil PDF dosyaları ile çalışmak için bir dizi komut satırı aracı ve C++ kütüphanesi sunar. Xpdf'yu C++ PDF görüntüleme programımıza entegre ederek, PDF dosyalarından metin içeriğini verimli bir şekilde görüntüleyebilir ve programlı olarak işleyebiliriz.

Xpdf - C++ Kütüphanesi ve Komut Satırı Araçları

Xpdf, PDF dosyalarıyla çalışmak için bir dizi araç ve kütüphane sunan açık kaynaklı bir yazılım setidir. PDF ile ilgili işlevsellikleri etkinleştiren çeşitli komut satırı araçları ve C++ kütüphaneleri içerir, örneğin analiz, render etme, yazdırma ve metin çıkarma. Xpdf'in komut satırı araçları ayrıca terminalden doğrudan PDF dosyalarını görüntüleme yolları sunar.

Xpdf'nin ana bileşenlerinden biri, öncelikle PDF dosyalarından metin içeriği çıkarmasıyla tanınan pdftotext'dir. Ancak, pdftops ve pdfimages gibi diğer araçlarla birlikte kullanıldığında, Xpdf kullanıcılara PDF içeriğini farklı şekillerde görüntüleme imkanı sunar. pdftotext aracı, PDF'lerden metin bilgilerini çıkararak daha fazla işleme veya analize olanak sunarken, hangi sayfalardan metin çıkarılacağını belirleme seçenekleri sunar.

Gereksinimler

Başlamadan önce, aşağıdaki ön koşullara sahip olduğunuzdan emin olun:

  1. Sisteminizde yüklü bir C++ derleyicisi, örneğin GCC veya Clang. Bu amaç için Code::Blocks IDE'yi kullanacağız.
  2. Xpdf komut satırı araçları kurulu ve komut satırından erişilebilir. Xpdf'i İndir ve ortamınıza uygun sürümü yükleyin. Daha sonra, Xpdf'in bin dizinini sistem ortam değişkenleri yoluna ayarlayın, böylece dosya sistemindeki herhangi bir yerden erişebilirsiniz.

PDF Görüntüleyici Projesi Oluşturma

  1. Code::Blocks'u Açın: Bilgisayarınızda Code::Blocks IDE'yi başlatın.
  2. Yeni Proje Oluştur: Üst menüden "Dosya" tıklayın ve açılır menüden "Yeni" seçeneğini seçin. Sonra, alt menüden "Proje" yi tıklayın.
  3. Proje Türünü Seçin: "Şablondan yeni" penceresinde, "Konsol uygulaması" seçin ve "Git" e tıklayın. Sonra dili "C/C++" seçin ve "İleri" ye tıklayın.
  4. Proje Detaylarını Girin: "Proje başlığı" alanına projenize bir isim verin (örneğin, "PDFViewer"). Proje dosyalarını kaydetmek istediğiniz yeri seçin ve "İleri" ye tıklayın.
  5. Derleyiciyi Seçin: Projeniz için kullanmak istediğiniz derleyiciyi seçin. Varsayılan olarak, Code::Blocks sistemi üzerinde mevcut derleyicileri otomatik olarak algılamış olmalıdır. Eğer algılanmadıysa, listeden uygun bir derleyici seçin ve "Bitir"e tıklayın.

C++'da PDF'den Metin Görünteleme Adımları

Gerekli Başlıkları Dahil Etmek

Önce, gerekli başlık dosyalarını main.cpp dosyamıza ekleyelim:

#include <cstdlib>
#include <iostream>
#include <fstream>
#include <cstdio>

using namespace std; // Use standard namespace for convenience
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <cstdio>

using namespace std; // Use standard namespace for convenience
C++

Giriş ve Çıkış Yollarını Ayarlayın

string pdfPath = "input.pdf";
string outputFilePath = "output.txt";
string pdfPath = "input.pdf";
string outputFilePath = "output.txt";
C++

main fonksiyonunda, iki dize tanımlarız: pdfPath ve outputFilePath. pdfPath, girdi PDF dosyasının yolunu saklar ve outputFilePath, çıkarılan metnin düz metin dosyası olarak kaydedileceği yolu saklar.

Giriş dosyası aşağıdaki gibidir:

C++'ta PDF Dosyalarını Nasıl Görüntüleyebilirim: Şekil 1

pdftotext Komutunu Çalıştırın

// Construct the command to execute pdftotext with input and output paths
string command = "pdftotext " + pdfPath + " " + outputFilePath;

// Execute the command using system function and capture the status
int status = system(command.c_str());
// Construct the command to execute pdftotext with input and output paths
string command = "pdftotext " + pdfPath + " " + outputFilePath;

// Execute the command using system function and capture the status
int status = system(command.c_str());
C++

Burada, içeriğini görüntülemek için PDF dosyasını açmak amacıyla pdfPath ve outputFilePath değişkenlerini kullanarak pdftotext komutunu oluşturuyoruz. Daha sonra komutu yürütmek için system fonksiyonu çağrılır ve dönüş değeri status değişkenine kaydedilir.

Metin Çekme Durumunu Kontrol Etmek

if (status == 0) 
{
    cout << "Text extraction successful." << endl;
} 
else 
{ 
    cout << "Text extraction failed." << endl; 
}
if (status == 0) 
{
    cout << "Text extraction successful." << endl;
} 
else 
{ 
    cout << "Text extraction failed." << endl; 
}
C++

pdftotext komutunun başarılı bir şekilde yürütülüp yürütülmediğini görmek için status değişkenini kontrol ediyoruz. status sıfıra eşitse, metin çıkarmanın başarılı olduğu anlamına gelir ve bir başarı mesajı yazdırıyoruz. status sıfır değilse, bir hata olduğunu belirtir ve bir hata mesajı yazdırıyoruz.

Çıkartılan Metni Oku ve Görüntüle

// Open the output file to read the extracted text
ifstream outputFile(outputFilePath);
if (outputFile.is_open()) 
{ 
    string textContent;
    string line;
    while (getline(outputFile, line)) 
    {
        textContent += line + "\n"; // Concatenate each line to the text content
    }
    outputFile.close();
    cout << "Text content extracted from PDF:" << endl;
    cout << textContent << endl;
} 
else 
{
    cout << "Failed to open output file." << endl;
}
// Open the output file to read the extracted text
ifstream outputFile(outputFilePath);
if (outputFile.is_open()) 
{ 
    string textContent;
    string line;
    while (getline(outputFile, line)) 
    {
        textContent += line + "\n"; // Concatenate each line to the text content
    }
    outputFile.close();
    cout << "Text content extracted from PDF:" << endl;
    cout << textContent << endl;
} 
else 
{
    cout << "Failed to open output file." << endl;
}
C++

Yukarıdaki örnek kodda, outputFile'yi (pdftotext tarafından oluşturulan metin dosyası) açarız, içeriğini satır satır okur ve textContent dizesine kaydederiz. Son olarak, dosyayı kapatır ve çıkarılan metin içeriğini konsolda yazdırırız.

Çıktı Dosyasını Kaldırın

Düzenlenebilir metin dosyasına ihtiyacınız yoksa veya disk alanını boşaltmak istiyorsanız, ana işlevi bitirmeden önce aşağıdaki komutla programın sonunda basitçe silin:

// Remove the output file to free up disk space and if output is not needed
remove(outputFilePath.c_str());
// Remove the output file to free up disk space and if output is not needed
remove(outputFilePath.c_str());
C++

Programın Derlenmesi ve Çalıştırılması

Kodları "Ctrl + F9" kısayol tuşunu kullanarak derleyin. Başarılı bir derleme sonucunda çalıştırılabilir dosya, belirtilen PDF belgesinden metin içeriğini çıkaracak ve konsolda görüntüleyecektir. Çıktı şu şekildedir:

C++'ta PDF Dosyalarını Nasıl Görüntüleyebilirim: Şekil 2

View PDF files in C

IronPDF .NET C# Kütüphanesi, kullanıcıların C# uygulamaları içinde PDF dosyalarını kolayca görüntülemelerine olanak tanıyan güçlü bir .NET C# PDF kütüphanesidir. Chromium web tarayıcı motorundan yararlanarak, IronPDF, resimler, yazı tipleri ve karmaşık biçimler dahil olmak üzere PDF içeriğini doğru bir şekilde çözümler ve görüntüler. Kullanıcı dostu arayüzü ve geniş işlevsellikleri ile geliştiriciler, kullanıcıların PDF belgelerini verimli ve etkileşimli bir şekilde görüntülemelerini sağlayarak, IronPDF'i C# projelerine sorunsuz bir şekilde entegre edebilir. İster raporlar, fatura veya başka bir PDF içeriği olsun, IronPDF, C#'ta zengin özellikli PDF görüntüleyiciler oluşturmak için sağlam bir çözüm sunar.

Visual Studio'da IronPDF NuGet paketini kurmak için şu adımları izleyin:

  1. Visual Studio'yu Açın: Visual Studio veya tercih ettiğiniz başka bir IDE'yi başlatın.
  2. Projenizi Oluşturun veya Açın: IronPDF paketini yüklemek istediğiniz yeni bir C# projesi oluşturun veya mevcut bir projeyi açın.
  3. NuGet Paket Yöneticisini Açın: Visual Studio'da "Araçlar" > "NuGet Paket Yöneticisi" > "Çözüm İçin NuGet Paketlerini Yönet" e gidin. Alternatif olarak, çözüm gezginini tıklayın ve ardından "Çözüm İçin NuGet Paketlerini Yönet" seçeneğini seçin.
  4. IronPDF'i Arayın: "NuGet Paket Yöneticisi" penceresinde, "Göz at" sekmesine tıklayın ve ardından arama çubuğunda "IronPDF" arayın. Alternatif olarak, NuGet IronPDF Paketi 'ni ziyaret edin ve "IronPDF" in en son sürümünü doğrudan indirin.
  5. IronPDF Paketini Seçin: Projeniz için "IronPDF" paketini bulun ve seçmek için üzerine tıklayın.
  6. IronPDF'i Yükle: Seçilen paketi yüklemek için "Yükle" düğmesine tıklayın.
  7. Ancak, NuGet Paket Yöneticisi Konsolu'nu kullanarak aşağıdaki komutla IronPDF'i de yükleyebilirsiniz:

    Install-Package IronPdf

IronPDF kullanarak, PDF belgelerinden metin ve görüntüleri çıkarma gibi işlemler gerçekleştirebilir ve bunları görüntülemek için konsolda görüntüleyebilirsiniz. Bu görevi gerçekleştirmek için aşağıdaki kod yardımcı olur:

using IronPdf;
using IronSoftware.Drawing;
using System.Collections.Generic;

// Extracting Image and Text content from Pdf Documents
// Open a 128-bit encrypted PDF
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");

// Get all text to put in a search index
string text = pdf.ExtractAllText();

// Get all Images
var allImages = pdf.ExtractAllImages();

// Or even find the precise text and images for each page in the document
for (var index = 0 ; index < pdf.PageCount ; index++)
{
    int pageNumber = index + 1;
    text = pdf.ExtractTextFromPage(index);
    List<AnyBitmap> images = pdf.ExtractBitmapsFromPage(index);
    // Further processing here...
}
using IronPdf;
using IronSoftware.Drawing;
using System.Collections.Generic;

// Extracting Image and Text content from Pdf Documents
// Open a 128-bit encrypted PDF
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");

// Get all text to put in a search index
string text = pdf.ExtractAllText();

// Get all Images
var allImages = pdf.ExtractAllImages();

// Or even find the precise text and images for each page in the document
for (var index = 0 ; index < pdf.PageCount ; index++)
{
    int pageNumber = index + 1;
    text = pdf.ExtractTextFromPage(index);
    List<AnyBitmap> images = pdf.ExtractBitmapsFromPage(index);
    // Further processing here...
}
Imports IronPdf
Imports IronSoftware.Drawing
Imports System.Collections.Generic

' Extracting Image and Text content from Pdf Documents
' Open a 128-bit encrypted PDF
Private pdf = PdfDocument.FromFile("encrypted.pdf", "password")

' Get all text to put in a search index
Private text As String = pdf.ExtractAllText()

' Get all Images
Private allImages = pdf.ExtractAllImages()

' Or even find the precise text and images for each page in the document
For index = 0 To pdf.PageCount - 1
	Dim pageNumber As Integer = index + 1
	text = pdf.ExtractTextFromPage(index)
	Dim images As List(Of AnyBitmap) = pdf.ExtractBitmapsFromPage(index)
	' Further processing here...
Next index
$vbLabelText   $csharpLabel

IronPDF hakkında daha detaylı bilgi için lütfen IronPDF Belgelerini ziyaret edin.

Sonuç

Bu makalede, Xpdf komut satırı aracını kullanarak C++'da bir PDF belgesinin içeriğini çıkarmayı ve görüntülemeyi öğrendik. Bu yaklaşım, çıkartılan metni C++ uygulamalarımız içinde sorunsuz bir şekilde işlememize ve analiz etmemize olanak tanır.

Ticari amaçlar için test etmek üzere bir Ücretsiz Deneme Lisansı mevcuttur.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara