1. Tuotteet
  2.   PDF
  3.   C++
  4.   PDFium-Render
 
  

Ilmainen C++-kirjasto PDF-sivujen renderöintiin kuviksi ja tekstin purkamiseen.

Avoimen lähdekoodin C++-PDF-käsittelykirjasto PDF-sivujen renderöintiin kuviksi, tekstin purkamiseen, salasanasuojattujen PDF:ien käsittelyyn ja asiakirjan metatietojen käyttöön C++-API:n kautta.

Mikä on PDFium-Render?

PDF-tiedostojen käsittely ja renderöinti C++-sovelluksessa on historiallisesti ollut monimutkainen haaste, johon on usein liittynyt kalliita kaupallisia lisenssejä tai kömpelöitä avoimen lähdekoodin työkaluja. Tässä astuu kuvaan PDFium-Render, moderni, header-only C++-käärepaketti, joka tuo Googlen PDFium-moottorin voiman projekteihisi intuitiivisella ja selkeällä käyttöliittymällä. PDFium-render on turvallinen, idiomatisoitu Rust-sidonta PDFiumiin, samaan PDF-renderöintimoottoriin, joka ohjaa Google Chromea ja Mozilla Firefoxia. Ajrcareyn luoma ja ylläpitämä kirjasto tarjoaa kehittäjille tehokkaan työkalupaketin PDF-sivujen renderöintiin kuviksi, tekstin poimintaan, PDF-rakenteiden muokkaamiseen ja asiakirjan metatietoihin pääsyyn — kaikki hyödyntäen Rustin muistiturvan takuita.

Eri PDF-kirjastoista, jotka keskittyvät vain luomiseen tai perusjäsennykseen, PDFium-Render erottuu PDF-sisällön renderöinnissä pikselintarkalla tarkkuudella, mikä tekee siitä ihanteellisen sovelluksiin, jotka tarvitsevat PDF-dokumenttien näyttämistä, muuntamista tai käsittelyä. Se tukee erilaisia perus- ja edistyneitä ominaisuuksia PDF-dokumenttien kanssa työskentelyyn, kuten PDF-tiedostojen ja -sivujen renderöintiä, tekstin poimintaa ja analysointia, asiakirjan metatietojen käsittelyä, sivuobjektien pääsyä ja muokkaamista, salasanasuojattujen PDF:ien käsittelyä ja paljon muuta. Yksi PDFium-Renderin suurimmista vahvuuksista on sen monialustatuki. Kirjasto toimii saumattomasti Windowsissa, macOSissa ja Linuxissa, piilottaen PDFium-binäärien alustakohtaiset erot. Olitpa sitten rakentamassa asiakirjakatselua, automatisoimassa PDF-käsittelytyönkulkuja tai poimimassa tietoja PDF:istä, PDFium-Render tarjoaa tarvitsemasi työkalut.

Previous Next

Aloittaminen PDFium-Renderin kanssa

Suositeltu tapa asentaa PDFium-Render on käyttää CMakea. Käytä seuraavaa komentoa sujuvan asennuksen varmistamiseksi.

Asenna PDFium-Render GitHubin kautta

 vcpkg install pdfium-render

Asenna PDFium-Render GitHubin kautta

 Git clone https://github.com/ajrcarey/pdfium-render.git 

Voit myös asentaa sen manuaalisesti; lataa uusimmat julkaisutiedostot suoraan GitHub-varastosta.

Korkealaatuinen PDF-renderöinti C++:lla

Avoimen lähdekoodin PDFium-Render-kirjaston ensisijainen vahvuus on sen renderöintikyvyt. Se voi muuntaa PDF-sivut rasterikuviksi poikkeuksellisen laadukkaasti, tukien erilaisia tulostusmuotoja, kuten PNG, JPEG ja BMP. Renderöintimoottori käsittelee monimutkaisia PDF-ominaisuuksia, kuten läpinäkyvyyttä, liukuvärejä, upotettuja fontteja ja vektorigrafiikkaa samalla tarkkuudella, kuin mitä odottaisit Chromen PDF-katselijalta. Tässä on yksinkertainen esimerkki, joka näyttää, miten ohjelmistokehittäjät voivat renderöidä tietyn sivun PNG-kuvamuotoon C++-sovelluksissa.

Kuinka renderöidä tietty PDF-sivu PNG-muotoon C++:lla?

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)?;
    
  

Kuinka poimia tekstiä tietyistä PDF-sivun alueista C++-API:n avulla?

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(())
}

 

Word salasanasuojatun PDF:n kanssa C++:lla

Turvallisuus on ensisijainen asiakirjojen käsittelyssä. PDFium-Render käsittelee salasanasuojattuja PDF-tiedostoja saumattomasti, tukien sekä käyttäjän että omistajan salasanoja. Kirjasto hoitaa todennuksen läpinäkyvästi ja palauttaa asianmukaiset virheet, jos salasana on väärä tai jos PDF:ssä on rajoituksia, jotka estävät tiettyjä toimintoja. Tässä on erittäin hyödyllinen esimerkki, joka näyttää, miten käsitellä salasanasuojattuja PDF-asiakirjoja C++-sovelluksissa.

Kuinka avata ja ladata salasanasuojatut PDF-dokumentit C++-API:n avulla?

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(())
}

PDF-metatietojen ja ominaisuuksien käsittely C++:lla

PDF:n rakenteen ymmärtäminen on olennaista monissa sovelluksissa. Avoimen lähdekoodin PDFium-Render -kirjasto tarjoaa täyden pääsyn asiakirjan metatietoihin, sivumääriin, mittoihin ja muihin ominaisuuksiin. Tämä toiminnallisuus on korvaamatonta asiakirjahallintajärjestelmien, PDF-validaattorien tai minkä tahansa sovelluksen rakentamisessa, joka tarvitsee luokitella tai käsitellä PDF-tiedostoja niiden ominaisuuksien perusteella. Seuraava koodiesimerkki osoittaa, miten ohjelmoijat voivat työskennellä PDF-asiakirjojen metatietojen kanssa ja käyttää erilaisia ominaisuuksia vaivattomasti.

Kuinka käsitellä PDF-asiakirjojen metatietoja C++-API:n avulla?

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(())
}
 Suomen