PDF Sayfalarını Görüntüye Dönüştürmek ve Metin Çıkarmak için Ücretsiz C++ Kütüphanesi.
PDF Sayfalarını Görüntülere Dönüştürmek, Metin Çıkarmak, Şifre Koruması Olan PDF'lerle Çalışmak ve C++ API aracılığıyla Belge Meta Verilerine Erişmek için Açık Kaynaklı C++ PDF İşleme Kütüphanesi.
PDFium-Render Nedir?
C++ uygulaması içinde PDF'leri işlemek ve renderlemek tarihsel olarak karmaşık bir zorluktu; genellikle pahalı ticari lisanslar veya hantal açık kaynak araçlar gerektiriyordu. İşte PDFium-Render, modern, sadece başlık dosyalarından oluşan bir C++ sarmalayıcı kütüphane; Google'ın PDFium motorunun gücünü sezgisel ve temiz bir arayüzle projelerinize getiriyor. PDFium-render, PDFium için güvenli, idiomatik bir Rust bağlamasıdır; Google Chrome ve Mozilla Firefox'u güçlendiren aynı PDF renderleme motoru. ajrcarey tarafından oluşturulan ve sürdürülen bu kütüphane, geliştiricilere PDF sayfalarını görüntülere renderlemek, metin çıkarmak, PDF yapısını manipüle etmek ve belge metaverilerine erişmek için güçlü bir araç seti sunar—tüm bunları Rust'ın bellek güvenliği garantileriyle birlikte kullanarak.
Birçok PDF kütüphanesinin yalnızca oluşturma veya temel ayrıştırmaya odaklanmasının aksine, PDFium-Render PDF içeriğini piksel mükemmelliğiyle render etmede üstün performans gösterir ve mevcut PDF belgelerini görüntüleme, dönüştürme veya işleme ihtiyacı duyan uygulamalar için idealdir. PDF dosyaları ve sayfalarını render etme, metin çıkarma ve analiz, belge meta verileriyle çalışma, sayfa nesnelerine erişim ve bunları manipüle etme, şifre korumalı PDF'lerle çalışma gibi temel ve gelişmiş çeşitli özellikleri destekler ve daha fazlasını sunar. pdfium-render'ın en büyük güçlü yönlerinden biri çapraz platform desteğidir. Kütüphane Windows, macOS ve Linux üzerinde sorunsuz çalışır, PDFium ikili dosyalarındaki platforma özgü farkları soyutlar. Bir belge görüntüleyici oluşturuyor, PDF işleme iş akışlarını otomatikleştiriyor ya da PDF'lerden veri çıkarıyorsanız, pdfium-render ihtiyacınız olan araçları sağlar.
PDFium-Render ile Başlarken
PDFium-Render'ı kurmanın önerilen yolu CMake kullanmaktır. Sorunsuz bir kurulum için lütfen aşağıdaki komutu kullanın.
PDFium-Render'ı GitHub Üzerinden Kurun
vcpkg install pdfium-render
PDFium-Render'ı GitHub Üzerinden Kurun
Git clone https://github.com/ajrcarey/pdfium-render.git Ayrıca manuel olarak da kurabilirsiniz; en son sürüm dosyalarını doğrudan GitHub deposundan indirin.
C++ ile Yüksek Doğrulukta PDF Oluşturma
Açık kaynak PDFium-Render kütüphanesinin temel gücü, render yeteneklerinde yatar. PDF sayfalarını olağanüstü kaliteyle raster görüntülere dönüştürebilir, PNG, JPEG ve BMP dahil çeşitli çıktı formatlarını destekler. Render motoru, şeffaflık, degrade, gömülü yazı tipleri ve vektör grafikler gibi karmaşık PDF özelliklerini, Chrome'un PDF görüntüleyicisinde beklediğiniz aynı doğrulukla işler. İşte, yazılım geliştiricilerin C++ uygulamaları içinde belirli bir sayfayı PNG görüntü formatına nasıl render edebileceğini gösteren basit bir örnek.
C++ ile Belirli Bir PDF Sayfasını PNG Formatına Nasıl Render Edilir?
use pdfium_render::prelude::*;
fn render_pdf_page() -> Result<(), PdfiumError> {
// Initialize PDFium library
let pdfium = Pdfium::new(
Pdfium::bind_to_library(Pdfium::pdfium_platform_library_name_at_path("./"))
.or_else(|_| Pdfium::bind_to_system_library())?
);
// Load a PDF document
let document = pdfium.load_pdf_from_file("sample.pdf", None)?;
// Get the first page
let page = document.pages().get(0)?;
// Render the page to a bitmap at 300 DPI
let bitmap = page.render_with_config(
&PdfRenderConfig::new()
.set_target_width(2480) // 300 DPI for 8.27 inches
.set_target_height(3508) // 300 DPI for 11.69 inches
)?;
// Save as PNG
bitmap.as_image().as_rgba8().unwrap()
.save("output.png")?;
Ok(())
}
C++ Kütüphanesi ile Metin Çıkarma ve Analizi
Render işlemlerinin ötesinde, PDFium-Render kütüphanesi kapsamlı metin çıkarma yetenekleri sunar. Metin çıkarma API'si sezgisel ve güçlüdür. Yazılım geliştiriciler, tek tek sayfalardan metin çıkarabilir, belirli dizeleri arayabilir ve sadece birkaç satır kodla karakter düzeyinde konum bilgisine erişebilir — metin seçimi veya vurgulama gibi özelliklerin uygulanması için kritik öneme sahiptir. Aşağıdaki örnek, yazılım geliştiricilerin C++ uygulamaları içinde belirli PDF sayfa bölgelerinden metin nasıl çıkarabileceğini gösterir.
C++ API'si ile Belirli PDF Sayfa Bölgelerinden Metin Nasıl Çıkarılır?
use pdfium_render::prelude::*;
fn extract_text_from_page() -> Result<(), PdfiumError> {
let pdfium = Pdfium::new(
Pdfium::bind_to_library(Pdfium::pdfium_platform_library_name_at_path("./"))
.or_else(|_| Pdfium::bind_to_system_library())?
);
let document = pdfium.load_pdf_from_file("document.pdf", None)?;
let page = document.pages().get(0)?;
// Extract all text from the page
let text = page.text()?;
let all_text = text.all();
println!("Page text: {}", all_text);
// Search for specific text
let search_results = text.search("important", true, false)?;
for result in search_results {
println!("Found at index: {}", result.start_index());
}
// Get text in a specific rectangular area
let rect = PdfRect::new(100.0, 100.0, 300.0, 200.0);
let bounded_text = text.bounded(rect)?;
println!("Text in region: {}", bounded_text);
Ok(())
}
C++ ile Şifre Koruması Olan PDF'de Word
Belgelerle çalışırken güvenlik çok önemlidir. PDFium-Render, şifre korumalı PDF'leri sorunsuz bir şekilde yönetir ve hem kullanıcı hem de sahip şifrelerini destekler. Kütüphane kimlik doğrulamayı şeffaf bir şekilde gerçekleştirir, şifre yanlışsa veya PDF'in belirli işlemleri engelleyen kısıtlamaları varsa uygun hataları döndürür. İşte C++ uygulamaları içinde şifre korumalı PDF belgelerini nasıl ele alacağınızı gösteren çok faydalı bir örnek.
C++ API'si ile Şifre Koruması Olan PDF Belgeleri Nasıl Açılır ve Yüklenir?
fn open_encrypted_pdf() -> Result<(), PdfiumError> {
let pdfium = Pdfium::new(
Pdfium::bind_to_library(Pdfium::pdfium_platform_library_name_at_path("./"))
.or_else(|_| Pdfium::bind_to_system_library())?
);
// Attempt to load with password
let document = pdfium.load_pdf_from_file(
"confidential.pdf",
Some("secret_password")
)?;
println!("Successfully opened encrypted PDF");
println!("Pages: {}", document.pages().len());
Ok(())
}
C++ ile PDF Meta Verileri ve Özellikleri Üzerinde Çalışma
Bir PDF'in yapısını anlamak birçok uygulama için esastır. Açık kaynaklı PDFium-Render kütüphanesi, belge meta verileri, sayfa sayısı, boyutlar ve diğer özelliklere tam erişim sağlar. Bu işlevsellik, belge yönetim sistemleri, PDF doğrulayıcıları veya özelliklerine göre PDF'leri sınıflandırması veya işlemesi gereken herhangi bir uygulama oluşturmak için paha biçilmezdir. Aşağıdaki kod örneği, programcıların PDF belgelerinin meta verileriyle nasıl çalışabileceğini ve çeşitli özelliklere kolayca erişebileceğini gösterir.
C++ API'si ile PDF Belgelerinin Metaverileriyle Nasıl Çalışılır?
fn inspect_document_metadata() -> Result<(), PdfiumError> {
let pdfium = Pdfium::new(
Pdfium::bind_to_library(Pdfium::pdfium_platform_library_name_at_path("./"))
.or_else(|_| Pdfium::bind_to_system_library())?
);
let document = pdfium.load_pdf_from_file("report.pdf", None)?;
// Access document metadata
let metadata = document.metadata();
println!("Title: {}", metadata.title().unwrap_or("Untitled"));
println!("Author: {}", metadata.author().unwrap_or("Unknown"));
println!("Creator: {}", metadata.creator().unwrap_or("Unknown"));
println!("Producer: {}", metadata.producer().unwrap_or("Unknown"));
// Get page count
let page_count = document.pages().len();
println!("Total pages: {}", page_count);
// Inspect individual page properties
for (index, page) in document.pages().iter().enumerate() {
let width = page.width();
let height = page.height();
println!("Page {}: {}x{} points", index + 1, width.value, height.value);
}
Ok(())
}