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

C++'da PDF Dosyaları Nasıl Okunur

PDF (Taşınabilir Belge Formatı) dosyaları, belge değişimi için yaygın olarak kullanılır ve içeriklerini programatik olarak okuyabilmek çeşitli uygulamalarda değerlidir. C++'ta PDF okumak için mevcut kütüphaneler: Poppler, MuPDF, Haru ücretsiz PDF kütüphanesi, Xpdf ve Qpdf.

Bu makalede, Xpdf komut satırı aracı kullanarak C++'ta PDF dosyalarının nasıl okunacağını inceleyeceğiz. Xpdf, PDF dosyalarıyla çalışmak için bir dizi yardımcı program sağlar, metin içeriğinin çıkarılması da dahil. Xpdf'i bir C++ programına entegre ederek, PDF dosyalarından metin çıkarabilir ve bunu programatik olarak işleyebiliriz.

Xpdf - Komut Satırı Araçları

Xpdf, PDF (Taşınabilir Belge Formatı) dosyalarıyla çalışmak için bir araç ve kütüphane koleksiyonu sağlayan açık kaynaklı bir yazılım takımınıdır. Xpdf takımı, ayrıştırma, render, metin çıkartma ve daha fazlası gibi çeşitli PDF ile ilgili işlevsellikleri sağlayan çeşitli komut satırı yardımcıları ve C++ kütüphanelerini içerir. Xpdf'in bazı ana bileşenleri pdfimages, pdftops, pdfinfo ve pdftotext'tir. Burada, PDF belgelerini okumak için pdftotext kullanacağız.

pdftotext, PDF dosyalarından metin içeriğini çıkaran ve düz metin olarak çıktısını veren bir komut satırı aracıdır. Bu araç, PDF'lerden çıkartılan metin bilgilerinin daha fazla işlenmesi veya analizi gerektiğinde özellikle faydalıdır. Seçenekleri kullanarak, metin çıkarmak için hangi sayfayı veya sayfaları belirleyebilirsiniz.

Ön Koşullar

Metin çıkartmak için bir PDF okuyucu projesi yapmak üzere, aşağıdaki ön koşulların sağlanması gerekmektedir:

  1. Sisteminizde yüklü bir C++ derleyicisi, örneğin GCC veya Clang. C++ programlamayı destekleyen herhangi bir IDE kullanabilirsiniz.
  2. Sisteminize Xpdf komut satırı araçlarının kurulmuş olması. Xpdf, Xpdf web sitesinden temin edilebilen bir PDF yardımcı programları koleksiyonudur. Onu Xpdf Web Sitesi'nden indirin. Xpdf'in bin dizinini Ortam değişkenleri yoluna ayarlayın, böylece komut satırı aracı kullanılarak herhangi bir yerden erişilebilir.

C++'ta PDF Dosya Biçimini Okuma Adımları

Adım 1: Gerekli Üstbilgilerin Dahil Edilmesi

Öncelikle, gerekli başlık dosyalarını main.cpp dosyamızda en üste ekleyelim:

# include <cstdlib>  // For system call
# include <iostream> // For basic input and output
# include <fstream>  // For file stream operations
# include <cstdlib>  // For system call
# include <iostream> // For basic input and output
# include <fstream>  // For file stream operations
C++

Adım 2: C++ Kodunu Yazma

Xpdf komut satırı aracını çağırarak, PDF belgesinden metin çıkaracak olan C++ kodunu yazalım. Aşağıdaki input.pdf dosyasını kullanacağız:

C++'da PDF Dosyalarını Nasıl Okunur: Şekil 1

Kod örneği şöyledir:

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

using namespace std;

int main() {
    // Specify the input and output file paths
    string pdfPath = "input.pdf";
    string outputFilePath = "output.txt";

    // Construct the command to run pdftotext
    string command = "pdftotext " + pdfPath + " " + outputFilePath;
    int status = system(command.c_str());

    // Check if the command executed successfully
    if (status == 0) {
        cout << "Text extraction successful." << endl;
    } else {
        cout << "Text extraction failed." << endl;
        return 1; // Exit the program with error code
    }

    // 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"; // Append each line to the textContent
        }
        outputFile.close();

        // Display the extracted text
        cout << "Text content extracted from PDF document:" << endl;
        cout << textContent << endl;
    } else {
        cout << "Failed to open output file." << endl;
        return 1; // Exit the program with error code
    }

    return 0; // Exit the program successfully
}
# include <cstdlib>
# include <iostream>
# include <fstream>

using namespace std;

int main() {
    // Specify the input and output file paths
    string pdfPath = "input.pdf";
    string outputFilePath = "output.txt";

    // Construct the command to run pdftotext
    string command = "pdftotext " + pdfPath + " " + outputFilePath;
    int status = system(command.c_str());

    // Check if the command executed successfully
    if (status == 0) {
        cout << "Text extraction successful." << endl;
    } else {
        cout << "Text extraction failed." << endl;
        return 1; // Exit the program with error code
    }

    // 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"; // Append each line to the textContent
        }
        outputFile.close();

        // Display the extracted text
        cout << "Text content extracted from PDF document:" << endl;
        cout << textContent << endl;
    } else {
        cout << "Failed to open output file." << endl;
        return 1; // Exit the program with error code
    }

    return 0; // Exit the program successfully
}
C++

Kod Açıklaması

Yukarıdaki kodda, girdi PDF dosyasının yolunu tutacak pdfPath değişkenini tanımlıyoruz. Bunu, gerçek giriş PDF belgenizin uygun yoluyla değiştirdiğinizden emin olun.

Ayrıca, Xpdf tarafından oluşturulacak olan çıktı metin dosyasının yolunu tutacak outputFilePath değişkenini de tanımlıyoruz.

Kod, pdftotext komutunu, giriş PDF dosyası yolu ve çıktı metin dosyası yolunu komut satırı argümanları olarak geçirerek, system fonksiyonunu kullanarak çalıştırır. status değişkeni, komutun çıkış durumunu yakalar.

Eğer pdftotext başarıyla çalışırsa (durum 0 olarak belirtildiğinde), çıktı metin dosyasını ifstream kullanarak açmaya devam ederiz. Metin içeriğini satır satır okur ve textContent string'inde saklarız.

Son olarak, üretilen çıktı dosyasından çıkarılan metin içeriğini konsola çıktılar. Düzenlenebilir çıktı metin dosyasına ihtiyaçınız yoksa veya disk alanını boşaltmak istiyorsanız, ana fonksiyonu sonlandırmadan önce aşağıdaki komutu kullanarak programın sonunda onu silin:

remove(outputFilePath.c_str());
remove(outputFilePath.c_str());
C++

Adım 3: Programı Derleme ve Çalıştırma

C++ kodunu derleyin ve çalıştırılabilir dosyayı çalıştırın. pdftotext, Ortam Değişkenleri Sistem Yolu'na eklendiğinde, komutu başarıyla çalışacaktır. Program, çıktı metin dosyasını üretir ve PDF belgesinden metin içeriğini çıkartır. Çıkartılan metin daha sonra konsolda görüntülenir.

Çıktı aşağıdaki gibidir

C++'da PDF Dosyalarını Nasıl Okunur: Şekil 2

C# ile PDF dosyalarını okuma

IronPDF Kitaplığı

IronPDF, PDF belgeleriyle çalışmak için güçlü işlevsellikler sağlayan popüler bir C# PDF kütüphanesidir. Geliştiricilerin programatik olarak PDF dosyaları oluşturmalarına, düzenlemelerine, değiştirmelerine ve okumalarına olanak tanır.

IronPDF kütüphanesini kullanarak PDF belgelerini okumak kolay bir süreçtir. Kütüphane, geliştiricilerin PDF sayfalarından metin, resimler, meta veriler ve diğer verileri çıkartmasına olanak tanıyan çeşitli yöntemler ve özellikler sunar. Çıkartılan bilgiler, daha fazla işlenmek, analiz edilmek veya uygulama içinde görüntülenmek üzere kullanılabilir.

Aşağıdaki kod örneği IronPDF'yi PDF dosyalarını okumak için kullanacaktır:

// Import necessary namespaces
using IronPdf; // For PDF functionalities
using IronSoftware.Drawing; // For handling images
using System.Collections.Generic; // For using the List

// Example of extracting text and images from PDF using IronPDF

// Open a 128-bit encrypted PDF
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");

// Get all text from the PDF
string text = pdf.ExtractAllText();

// Extract all images from the PDF
var allImages = pdf.ExtractAllImages();

// Iterate over each page to extract text and images
for (var index = 0; index < pdf.PageCount; index++) {
    int pageNumber = index + 1;
    text = pdf.ExtractTextFromPage(index);
    List<AnyBitmap> images = pdf.ExtractBitmapsFromPage(index);
    // Perform actions with text and images...
}
// Import necessary namespaces
using IronPdf; // For PDF functionalities
using IronSoftware.Drawing; // For handling images
using System.Collections.Generic; // For using the List

// Example of extracting text and images from PDF using IronPDF

// Open a 128-bit encrypted PDF
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");

// Get all text from the PDF
string text = pdf.ExtractAllText();

// Extract all images from the PDF
var allImages = pdf.ExtractAllImages();

// Iterate over each page to extract text and images
for (var index = 0; index < pdf.PageCount; index++) {
    int pageNumber = index + 1;
    text = pdf.ExtractTextFromPage(index);
    List<AnyBitmap> images = pdf.ExtractBitmapsFromPage(index);
    // Perform actions with text and images...
}
' Import necessary namespaces
Imports IronPdf ' For PDF functionalities
Imports IronSoftware.Drawing ' For handling images
Imports System.Collections.Generic ' For using the List

' Example of extracting text and images from PDF using IronPDF

' Open a 128-bit encrypted PDF
Private pdf = PdfDocument.FromFile("encrypted.pdf", "password")

' Get all text from the PDF
Private text As String = pdf.ExtractAllText()

' Extract all images from the PDF
Private allImages = pdf.ExtractAllImages()

' Iterate over each page to extract text and images
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)
	' Perform actions with text and images...
Next index
$vbLabelText   $csharpLabel

PDF belgelerini nasıl okuyacağınız hakkında daha ayrıntılı bilgi almak için lütfen IronPDF C# PDF Okuma Kılavuzu adresini ziyaret edin.

Sonuç

Bu makalede, Xpdf komut satırı aracı kullanarak C++'ta bir PDF belgesinin içeriğini nasıl okuyacağımızı öğrendik. Xpdf'i bir C++ programına entegre ederek, programlı bir şekilde PDF dosyalarından saniyeler içinde metin içeriğini çıkarabiliriz. Bu yaklaşım sayesinde C++ uygulamalarımızda çıkarılan metni işleyip analiz edebiliriz.

IronPDF, PDF dosyalarını okumayı ve değiştirmeyi kolaylaştıran güçlü bir C# kutuphanesidir. Kapsamlı özellikleri, kullanım kolaylığı ve güvenilir oluşturucu motoru, onu C# projelerinde PDF belgeleri ile çalışan geliştiriciler için popüler bir tercih yapıyor.

IronPDF geliştirme için ücretsizdir ve ticari kullanım için ücretsiz bir deneme sürümü sağlar. Bunun ötesinde, ticari amaçlar için lisanslanması gerekmektedir.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku

Iron Destek Ekibi

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