PDF'yi Resim Dosyası Olarak Kaydetme
HTML dosyaları veya içeriklerini PDF sayfalarına dönüştürebilme yeteneği birçok uygulamada değerli bir özelliktir. C++'da, baştan HTML to PDF format dosyalarını üretmek için bir uygulama oluşturmak oldukça zahmetli olabilir. Bu makalede, wkhtmltopdf kütüphanesini kullanarak C++'da HTML'yi PDF'ye dönüştürmeyi inceleyeceğiz.
wkhtmltopdf Kütüphanesi
wkhtmltopdf, HTML düz metin sayfalarını yüksek kaliteli PDF belgelerine na nokta ve nokta dönüştüren açık kaynaklı bir komut satırı aracıdır. C++ programlarındaki işlevlerini kullanarak, HTML dize içeriğini kolayca PDF formatına dönüştürebiliriz. C++ ile wkhtmltopdf kütüphanesini kullanarak HTML sayfasını PDF'ye dönüştürme işleminin adımlarına girelim.
Gereksinimler
C++'da bir HTML'den PDF dosyasına dönüştürücü oluşturmak için aşağıdaki önşartların yerine getirilmesi gerekir:
- Sisteminizde yüklü bir C++ derleyicisi, örneğin GCC veya Clang.
- wkhtmltopdf kütüphanesi kurulu. Son sürümü resmi wkhtmltopdf web sitesinden indirip işletim sisteminizin talimatlarına göre yükleyebilirsiniz.
- C++ programlaması hakkında temel bilgi.
Code::Blocks'ta bir C++ HtmltoPdf projesi oluşturun
Code::Blocks'ta 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'nin ardından 'Proje'yi seçin ve Yeni Proje sihirbazını açın.
- Yeni Proje sihirbazında 'Konsol Uygulaması'nı seçin.
- C++ Dilini seçin.
- Proje Başlığını ve kaydetmek istediğiniz Yeri ayarlayın. 'İleri'ye tıklayarak devam edin.
- Uygun C++ derleyicisini seçin ve Debug veya Release gibi hedefi oluşturun. Proje oluşturmak için 'Son' seçeneğine tıklayın.
Arama Dizinleri Ayarlama
Code::Blocks'un gerekli başlık dosyalarını bulabilmesini sağlamak için, arama dizinlerini ayarlamamız gerekiyor:
- Üst menüdeki "Project" menüsüne tıklayın ve "Build options"u seçin. "Debug" seçtiğinizden emin olun.
- 'Derleme seçenekleri' iletişim kutusunda, 'Arama dizinleri' sekmesini seçin.
- "Compiler" sekmesi altında, "Add" butonuna tıklayın.
- wkhtmltox başlık dosyalarının bulunduğu dizine (örneğin, C:\Program Files\wkhtmltopdf\include) göz atın ve seçin.
- Son olarak, iletişim kutusunu kapatmak için 'Tamam' tıklayın.

Kütüphaneleri Bağlama
wkhtmltox kütüphanesine karşı bağlantı sağlamak için bu adımları izleyin:
- Tekrar menü çubuğunda 'Proje' menüsüne tıklayın ve 'Derleme seçenekleri'ni seçin. "Debug" seçtiğinizden emin olun.
- 'Derleme seçenekleri' iletişim kutusunda, 'Bağlayıcı ayarları' sekmesini seçin.
- "Link libraries" sekmesi altında, "Add" butonuna tıklayın.
- wkhtmltox kütüphane dosyalarının bulunduğu dizine göz atın (örneğin C:\Program Files\wkhtmltopdf\lib) ve uygun kütüphane dosyasını seçin.
- Kütüphaneyi projenize eklemek için "Open" tıklayın.
- Son olarak, iletişim kutusunu kapatmak için 'Tamam' 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 Etme
Başlamak için, C++ programınızda wkhtmltopdf kütüphanesinin işlevlerini kullanmak için gerekli başlık dosyalarını dahil edin. Şu örnekte gösterildiği gibi main.cpp kaynak kodu dosyasının başına aşağıdaki başlık dosyalarını ekleyin:
#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şlatma
HTML'yi PDF'ye dönüştürmek için, wkhtmltopdf dönüştürücüsünü başlatmamız gerekiyor. Kod şöyle devam ediyor:
// 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ği Ayarlama
Şimdi, PDF'ye dönüştürülmesi gereken HTML içeriğini sağlayalım. HTML dosyasını yükleyebilir veya doğrudan dize olarak 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ürme
Dönüştürücü ve HTML içeriği hazır olduğunda, HTML'yi bir PDF dosyasına dönüştürebiliriz. 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: Bellek Tamponu Olarak Çıktı Alma
wkhtmltopdf_get_output fonksiyonu ile, var olan 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 gerçekleştirecektir:
// 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ı Kaydetme
Dönüşüm tamamlandıktan sonra, oluşturulan PDF dosyasını diske kaydetmemiz gerekiyor. Kaydetmek istediğiniz PDF dosya yolunu belirtin. Daha sonra bir çıktı dosya akışı kullanarak, dosyayı ikili modda açın ve pdfData'ya 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: Temizleme
HTML'yi PDF'ye dönüştürdükten sonra, wkhtmltopdf tarafından ayırı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ırma ve PDF Dosyası Üretme
Şimdi projeyi derleyip kodu F9 ile çalıştırın. Çıktı üretilir ve proje klasörüne kaydedilir. Oluşan PDF aşağıdaki gibidir:

HTML File to PDF File in C
IronPDF
IronPDF HTML-to-PDF Dönüştürme Kütüphanesi, geliştiricilerin HTML içerikten PDF belgeleri oluşturması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, çok çeşitli uygulamalar ve kullanım alanları için popüler bir seçim haline getiren basit ve sezgisel bir API sunar.
IronPDF'nin temel avantajlarından biri çok yönlülüğüdür. Sadece basit HTML belgelerinin değil, aynı zamanda CSS stil ayarlaması, JavaScript etkileşimleri ve hatta dinamik içerikle karmaşık web sayfalarının dönüşümünü destekler. Dahası, dönüştürme yöntemlerine hızlı erişim sağlayarak çeşitli PDF dönüştürücüleri geliştirebilirsiniz.
İşte HTML Dizesini IronPDF kullanarak PDF'ye dönüştürmek için bir kod örneği C# dilinde:
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 bilgi için, lütfen bu HTML to PDF Kod Örnekleri sayfasına bakın.
IronPDF ile HTML içeriğinden PDF dosyaları üretmek, .NET Framework dillerinde basit bir görev haline geliyor. Sezgisel API'si ve kapsamlı özellik seti, C# projelerinde HTML'yi PDF'ye dönüştürmeleri gereken geliştiriciler için değerli bir araç haline getirir. İster raporlar, faturalar veya belirli bir HTML-PDF dönüşümü gerektiren başka herhangi bir belge üretmek olsun, IronPDF güvenilir ve etkili bir çözümdür.
IronPDF, geliştirme amacıyla ücretsizdir, ancak ticari kullanım için lisanslanması gerekir. Ayrıca, tam işlevselliğini test etmek için ticari kullanım için IronPDF'nin Tam İşlevselliğinde Ücretsiz Deneme sağlar. Yazılımı IronPDF İndirden indirebilirsiniz.




