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

C++'da HTML'yi PDF'ye Nasıl Dönüştürürüm

HTML dosyalarını veya içeriğini PDF sayfalarına dönüştürme becerisi birçok uygulamada değerli bir özelliktir. C++'da, HTML'den PDF formatı dosyalar oluşturmak için sıfırdan bir uygulama oluşturmak oldukça zahmetli olabilir. Bu makalede, wkhtmltopdf kütüphanesini kullanarak C++'ta HTML'yi PDF'ye dönüştürmeyi araştıracağız.

WKHTMLTOPDF Kütüphanesi

wkhtmltopdf, HTML düz metin sayfalarını yüksek kaliteli PDF belgelerine dönüştüren açık kaynaklı bir komut satırı aracıdır. C++ programlarında işlevselliklerini kullanarak, HTML dizesi içeriğini kolayca PDF formatına dönüştürebiliriz. C++'ta wkhtmltopdf kütüphanesini kullanarak HTML sayfasını PDF'ye dönüştürmenin adım adım sürecine bakalım.

Ön Koşullar

C++'da bir HTML'den PDF dosyası dönüştürücü oluşturmak için, aşağıdaki ön koşulların yerine getirildiğinden emin olun:

  1. Sisteminizde yüklü bir C++ derleyicisi, örneğin GCC veya Clang.
  2. wkhtmltopdf kütüphanesi yüklendi. En son sürümünü wkhtmltopdf resmi websitesinden indirip işletim sisteminizin talimatlarına göre yükleyebilirsiniz.
  3. C++ programlama hakkında temel bilgi.

Code::Blocks'da Bir C++ HtmltoPdf Projesi Oluşturun

Code::Blocks'da bir C++ PDF dönüştürme projesi oluşturmak için, şu adımları izleyin:

  1. Code::Blocks IDE'sini açın.
  2. "Dosya" menüsüne gidin ve "Yeni" ve ardından "Proje" öğesini seçerek Yeni Proje sihirbazını açın.
  3. Yeni Proje sihirbazında, "Konsol Uygulaması"nı seçin.
  4. C++ Dili'ni seçin.
  5. Kaydetmek istediğiniz Proje Başlığı ve Konumu ayarlayın. Devam etmek için "İleri"ye tıklayın.
  6. Uygun C++ derleyiciyi ve derleme hedefini, örneğin Hata Ayıklama veya Yayın, seçin. Projeyi oluşturmak için "Tamamla" düğmesini tıklayın.

Arama Dizinlerini Ayarlama

Code::Blocks'un gerekli başlık dosyalarını bulabilmesini sağlamak için arama dizinlerinin ayarlanması gerekmektedir:

  1. Menü çubuğundaki "Proje" menüsüne tıklayın ve "Derleme seçenekleri"ni seçin. "Hata Ayıklama" yı seçtiğinizden emin olun.
  2. "Derleme seçenekleri" diyalog kutusunda, "Arama dizinleri" sekmesini seçin.
  3. "Derleyici" sekmesi altında "Ekle" düğmesine tıklayın.
  4. wkhtmltox başlık dosyalarının bulunduğu dizini tarayın (örneğin, C:\Program Files\wkhtmltopdf\include) ve seçin.
  5. Son olarak, diyalog kutusunu kapatmak için "Tamam" düğmesini tıklayın.

C++ ile HTML'yi PDF'ye Dönüştürme: Şekil 1 - Dizin Ara

Kütüphaneleri Bağlama

Kütüphaneye bağlanmak için wkhtmltox kütüphaneye karşı bu adımları izleyin:

  1. Menü çubuğunda tekrar "Proje" menüsünü tıklayın ve "Derleme seçeneklerini" seçin. "Hata Ayıklama" yı seçtiğinizden emin olun.
  2. "Derleme seçenekleri" diyalog kutusunda, "Bağlayıcı ayarları" sekmesini seçin.
  3. "Kütüphaneleri bağla" sekmesi altında "Ekle" düğmesine tıklayın.
  4. wkhtmltox kütüphane dosyalarının bulunduğu dizine gidin (ör., C:\Program Files\wkhtmltopdf\lib) ve uygun kütüphane dosyasını seçin.
  5. Kütüphaneyi projenize eklemek için 'Aç' düğmesine tıklayın.
  6. Son olarak, diyalog kutusunu kapatmak için "Tamam" düğmesine tıklayın.

C++ ile HTML'yi PDF'ye Dönüştürme: Şekil 2 - Kütüphaneleri bağlama

C++'da HTML'yi PDF'ye Kolayca Dönüştürme Adımları

Adım 1: HTML Dosyalarını Dönüştürmek İçin Kütüphaneyi Dahil Etmek

Başlamak için, C++ programınızda wkhtmltopdf kütüphanesinin fonksiyonlarını kullanmak için gerekli başlık dosyalarını dahil edin. main.cpp kaynak kodu dosyasının başına aşağıdaki başlık dosyalarını dahil edin ve aşağıdaki örnekte gösterildiği gibi:

# include <iostream>
# include <fstream>
# include <string>
# include <wkhtmltox/pdf.h>
# include <iostream>
# include <fstream>
# include <string>
# include <wkhtmltox/pdf.h>
C++

Adım 2: Dönüştürücüyü Başlatmak

HTML'yi PDF'ye dönüştürmek için, wkhtmltopdf dönüştürücüsünü başlatmamız gerekiyor. Kod şu şekildedir:

// Initialize the wkhtmltopdf library
wkhtmltopdf_init(false);

// Create global settings object
wkhtmltopdf_global_settings* gs = wkhtmltopdf_create_global_settings();

// Create object settings object
wkhtmltopdf_object_settings* os = wkhtmltopdf_create_object_settings();

// Create the PDF converter with global settings
wkhtmltopdf_converter* converter = wkhtmltopdf_create_converter(gs);
// Initialize the wkhtmltopdf library
wkhtmltopdf_init(false);

// Create global settings object
wkhtmltopdf_global_settings* gs = wkhtmltopdf_create_global_settings();

// Create object settings object
wkhtmltopdf_object_settings* os = wkhtmltopdf_create_object_settings();

// Create the PDF converter with global settings
wkhtmltopdf_converter* converter = wkhtmltopdf_create_converter(gs);
C++

Adım 3: HTML İçeriğini Ayarlamak

Şimdi PDF'ye dönüştürülmesi gereken HTML içeriğini sağlayalım. Bir HTML dosyasını yükleyebilir veya doğrudan dizeyi sağlayabilirsiniz.

std::string htmlString = "<html><body><h1>Hello, World!</h1></body></html>";

// Add the HTML content to the converter
wkhtmltopdf_add_object(converter, os, htmlString.c_str());
std::string htmlString = "<html><body><h1>Hello, World!</h1></body></html>";

// Add the HTML content to the converter
wkhtmltopdf_add_object(converter, os, htmlString.c_str());
C++

Adım 4: HTML'yi PDF'ye Dönüştürmek

Dönüştürücü ve HTML içeriği hazır olduğunda, HTML'yi bir PDF dosyasına dönüştürmeye devam edebiliriz. Aşağıdaki kod parçasını kullanın:

// Perform the actual conversion
if (!wkhtmltopdf_convert(converter)) {
    std::cerr << "Conversion failed!" << std::endl;
}
// Perform the actual conversion
if (!wkhtmltopdf_convert(converter)) {
    std::cerr << "Conversion failed!" << std::endl;
}
C++

Adım 5: Çıkışı Bellek Arabelleği Olarak Almak

wkhtmltopdf_get_output fonksiyonu ile mevcut PDF verilerini bir bellek tampon akışı olarak alabiliriz. Ayrıca PDF'nin uzunluğunu da döndürür. Aşağıdaki örnek bu görevi yerine getirecektir:

// Retrieve the PDF data in memory buffer
const unsigned char* pdfData;
int pdfLength = wkhtmltopdf_get_output(converter, &pdfData);
// Retrieve the PDF data in memory buffer
const unsigned char* pdfData;
int pdfLength = wkhtmltopdf_get_output(converter, &pdfData);
C++

Adım 6: PDF Dosyasını Kaydetmek

Dönüşüm tamamlandığında, oluşturulan PDF dosyasını diske kaydetmemiz gerekiyor. PDF'yi kaydetmek istediğiniz dosya yolunu belirtin. Sonra, bir çıktı dosyası akışı kullanarak, dosyayı ikili modda açın ve pdfVerisini buna yazın. Son olarak, dosyayı kapatın:

const char* outputPath = "file.pdf";
std::ofstream outputFile(outputPath, std::ios::binary);

// Write the PDF data to the file
outputFile.write(reinterpret_cast<const char*>(pdfData), pdfLength);
outputFile.close();
const char* outputPath = "file.pdf";
std::ofstream outputFile(outputPath, std::ios::binary);

// Write the PDF data to the file
outputFile.write(reinterpret_cast<const char*>(pdfData), pdfLength);
outputFile.close();
C++

Adım 7: Temizlik

HTML'yi PDF'ye dönüştürdükten sonra, wkhtmltopdf tarafından ayrılan kaynakları temizlemek önemlidir:

// Clean up the converter and settings
wkhtmltopdf_destroy_converter(converter);
wkhtmltopdf_destroy_object_settings(os);
wkhtmltopdf_destroy_global_settings(gs);

// Deinitialize the wkhtmltopdf library
wkhtmltopdf_deinit();

std::cout << "PDF saved successfully." << std::endl;
// Clean up the converter and settings
wkhtmltopdf_destroy_converter(converter);
wkhtmltopdf_destroy_object_settings(os);
wkhtmltopdf_destroy_global_settings(gs);

// Deinitialize the wkhtmltopdf library
wkhtmltopdf_deinit();

std::cout << "PDF saved successfully." << std::endl;
C++

Adım 8: Kodu Çalıştırmak ve PDF Dosyası Oluşturmak

Şimdi projeyi derleyin ve F9 kullanarak kodu yürütün. Çıktı üretilir ve proje klasöründe kaydedilir. Ortaya çıkan PDF şöyledir:

C++ ile HTML'yi PDF'ye Dönüştürme: Şekil 3 - PDF Çıkışı

C#'ta HTML Dosyasını PDF Dosyasına Dönüştürme

IronPDF

IronPDF HTML-to-PDF Çevirim Kütüphanesi, geliştiricilerin HTML içeriğinden kolayca PDF belgeleri oluşturmalarına olanak tanıyan sağlam bir .NET ve .NET Core C# kütüphanesidir. HTML web sayfalarını PDF'ye dönüştürme sürecini basitleştiren basit ve kullanıcı dostu bir API sunarak, çeşitli uygulamalar ve kullanım alanları için popüler bir seçim haline gelir.

IronPDF'nin başlıca avantajlarından biri, onun çok yönlülüğüdür. Sadece basit HTML belgelerini değil, aynı zamanda CSS stillemeleri, JavaScript etkileşimleri ve hatta dinamik içeriklerle karmaşık web sayfalarının da dönüşümünü destekler. Ayrıca, dönüştürme yöntemlerine hızlı erişim ile farklı PDF dönüştürücüleri geliştirebilirsiniz.

İşte C#'ta IronPDF kullanarak HTML Dizisi'ni PDF'ye Dönüştürmek için bir kod örneği:

using IronPdf;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create PDF content from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");

// Export to a file or Stream
pdf.SaveAs("output.pdf");
using IronPdf;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create PDF content from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");

// Export to a file or Stream
pdf.SaveAs("output.pdf");
Imports IronPdf

' Instantiate Renderer
Private renderer = New ChromePdfRenderer()

' Create PDF content from an HTML string using C#
Private pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")

' Export to a file or Stream
pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

PDF çıktısı:

C++ ile HTML'yi PDF'ye Dönüştürme: Şekil 4 - IronPDF Çıkışı

Farklı HTML dosyalarını, web sayfası URL'lerini ve görüntüleri PDF'ye nasıl dönüştüreceğiniz hakkında daha fazla ayrıntı için lütfen bu HTML'den PDF Kod Örnekleri sayfasını ziyaret edin.

IronPDF ile, HTML içeriğinden PDF dosyaları üretmek .NET Framework dillerinde kolay bir hale gelir. Kullanıcı dostu API'si ve geniş özellik seti, C# projelerinde HTML'yi PDF'ye Dönüştürme ihtiyaçı olan geliştiriciler için değerli bir araç haline getirir. İster raporlar, ister faturalar veya HTML'yi PDF'ye hassas bir şekilde dönüştürmeyi gerektiren herhangi bir belge oluşturulması olsun, IronPDF güvenilir ve etkili bir çözümdür.

IronPDF geliştirme amaçları için ücretsizdir, ancak ticari kullanım için lisanslanması gerekmektedir. Ayrıca ticari kullanım için IronPDF'nin tüm işlevselliğini test etmek amacıyla IronPDF'nin Tam İşlevselliğinin Ücretsiz Denemesi sunar. Yazılımı IronPDF İndir adresinden indirebilirsiniz.

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