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:
- Sisteminizde yüklü bir C++ derleyicisi, örneğin GCC veya Clang.
- 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.
- 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:
- Code::Blocks IDE'sini açın.
- "Dosya" menüsüne gidin ve "Yeni" ve ardından "Proje" öğesini seçerek Yeni Proje sihirbazını açın.
- Yeni Proje sihirbazında, "Konsol Uygulaması"nı seçin.
- C++ Dili'ni seçin.
- Kaydetmek istediğiniz Proje Başlığı ve Konumu ayarlayın. Devam etmek için "İleri"ye tıklayın.
- 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:
- 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.
- "Derleme seçenekleri" diyalog kutusunda, "Arama dizinleri" sekmesini seçin.
- "Derleyici" sekmesi altında "Ekle" düğmesine tıklayın.
- wkhtmltox başlık dosyalarının bulunduğu dizini tarayın (örneğin, C:\Program Files\wkhtmltopdf\include) ve seçin.
- Son olarak, diyalog kutusunu kapatmak için "Tamam" düğmesini tıklayın.

Kütüphaneleri Bağlama
Kütüphaneye bağlanmak için wkhtmltox kütüphaneye karşı bu adımları izleyin:
- 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.
- "Derleme seçenekleri" diyalog kutusunda, "Bağlayıcı ayarları" sekmesini seçin.
- "Kütüphaneleri bağla" sekmesi altında "Ekle" düğmesine tıklayın.
- 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.
- Kütüphaneyi projenize eklemek için 'Aç' düğmesine tıklayın.
- Son olarak, diyalog kutusunu kapatmak için "Tamam" düğmesine tıklayın.

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>
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);
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());
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;
}
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);
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();
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;
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#'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")
PDF çıktısı:

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.

