Java ile HTML'den PDF'e
IronPDF for Java, HTML içeriğini, modern tarayıcıları çalıştıran aynı motor olan tam bir Chromium işleme motoru kullanarak PDF belgelerine dönüştürür. Her CSS özelliği, yazı tipi, resim ve JavaScript tarafından oluşturulan yerleşim, tarayıcı penceresinde olduğu gibi doğru bir şekilde işlenir, sonra piksel doğruğu bir PDF olarak sayfaya yerleştirilir.
Bu eğitim, üç temel dönüştürme yöntemini anlatır: HTML dizesinden PDF'ye, canlı URL'den PDF'ye ve yerel HTML dosyasından PDF'ye. Ayrıca kurulum, lisans yapılandırması ve geliştiricilerin sıklıkla başvurabileceği işleme seçeneklerini de kapsar.
Java kütüphanesi, IronPDF for .NET API şeklinin aynısını yansıtıyor, bu yüzden her iki çalışma zamanı ile çalışan ekipler geçişi sorunsuz bulacak. Bu eğitimin tüm örneklerinin kaynak kodu GitHub'da mevcuttur.
Hızlı Başlangıç: Java'da HTML'yi PDF'ye Dönüştürün
IronPDF'yi Maven pom.xml dosyanıza ekleyin, ardından bir yöntem çağırarak bir PDF üretin:
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/quickstart.java
import com.ironsoftware.ironpdf.*;
// Set your license key before any rendering calls
License.setLicenseKey("YOUR-LICENSE-KEY");
// Convert an HTML string to a PDF and save it
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF for Java!</h1>");
pdf.saveAs("output.pdf");
Bugün IronPDF ile projenizde ücretsiz bir deneme ile başlayın.
İçindekiler
- Java için IronPDF'in Kurulumu
- IronPDF'i Nasıl İçe Aktarırım ve Lisans Anahtarını Nasıl Yapılandırırım?
- HTML Dizgesini PDF'ye Nasıl Dönüştürürüm?
- Java'da URL'yi PDF'ye Nasıl Dönüştürürüm?
- Yerel HTML Dosyasını PDF'ye Nasıl Dönüştürürüm?
- PDF Üretim Seçeneklerini Nasıl Ayarlarım?
- Üstbilgi ve Altbilgi Nasıl Eklerim?
- Sayfa Kenar Boşluklarını ve Kağıt Boyutunu Nasıl Ayarlarım?
- Bir PDF'ye Filigran Nasıl Uygularım?
- Birden Fazla PDF'yi Birleştirerek Tek PDF Nasıl Yapılır?
- Bir PDF'ye Sayfa Nasıl Ekler veya Çıkarırım?
- Java'da Bir PDF'yi Şifreyle Nasıl Korurum?
- Dinamik Verili HTML Şablonunu Nasıl Dönüştürürüm?
- Java'da PDF'den Metin Nasıl Çıkarırım?
- Bir PDF Dosyasını Nasıl Sıkıştırırım?
- Sonraki Adımlar
IronPDF Java için'yı Yükleme
IronPDF for Java, Maven Central üzerinden ve bağımsız bir JAR olarak gönderilir. Maven yolu, çoğu proje için önerilir çünkü geçişli bağımlılıkları yönetir ve kütüphane sürümlerini geliştirici makineleri ve CI hatları arasında tutarlı tutar.
Seçenek 1: IronPDF'i Maven Bağımlılığı Olarak Ekleyin
Projenin pom.xml dosyasını açın ve <dependencies> bloğuna aşağıdaki girişleri ekleyin:
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/maven-dependency.xml
<dependencies>
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>[LATEST_VERSION]</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>[LATEST_VERSION]</version>
</dependency>
</dependencies>
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/maven-dependency.xml
<dependencies>
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>[LATEST_VERSION]</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>[LATEST_VERSION]</version>
</dependency>
</dependencies>
İlk eser, IronPDF for Java'nın en son sürümünü getirir. İkinci eser, IronPDF'in işleme motorunun çalıştırma sırasında tanı mesajlarını yazabilmesi için SLF4J kaydı etkinleştirir. Logback veya Log4J'i tercih eden geliştiriciler, bu sağlayıcıyı yerine kullanabilirler. Kayıt bağımlılığı isteğe bağlıdır — günlük gerekliyse, görmezden gelebilirsiniz.
Dosyayı kaydettikten sonra, her iki kütüphaneyi indirmek için projenin kök dizininde mvn install çalıştırın. Maven, IronPDF'in gerektirdiği herhangi bir geçiş bağımlılıkları dahil, tam bağımlılık grafiğini otomatik olarak çözer.
Gradle projeleri için, build.gradle'deki eşdeğer bağımlılık bildirimi şudur:
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/gradle-dependency.java
// build.gradle (Groovy DSL)
// dependencies {
// implementation 'com.ironsoftware:ironpdf:[LATEST_VERSION]'
// implementation 'org.slf4j:slf4j-simple:[LATEST_VERSION]'
// }
[LATEST_VERSION]'yi IronPDF değişiklik günlüğünden veya Maven Central sayfasındaki artefaktan sürüm numarası ile değiştirin.
Seçenek 2: JAR Dosyasını Elle Ekleyin
IronPDF JAR dosyasını Maven Central'dan doğrudan indirin ve projenizin classpath'ine ekleyin. Bu yaklaşım, bir yapı aracı olmadan çalışır, ancak manuel sürüm yönetimi gerektirir, bu yüzden en iyi şekilde Maven veya Gradle kullanmayan eski projeler veya dış ağ erişiminin kısıtlandığı ortamlara uygundur.
İndirildikten sonra, projedeki classpath'e JAR dosyasını IDE'nin proje ayarları üzerinden ekleyin. IntelliJ IDEA'da, proje kök dizinine sağ tıklayın, "Open Module Settings" seçeneğini, "Dependencies"'e gidin ve JAR dosyasını ekleyin. Eclipse'de proje üzerine sağ tıklayın, "Properties > Java Build Path > Libraries"'e gidin, ardından "Add External JARs"'e tıklayın.
Sistem Gereksinimleri
IronPDF for Java, JDK 8 veya daha üstü üzerinde çalışır. Windows, Linux ve macOS'u x86-64 ve ARM64 mimarilerinde destekler. Harici bir tarayıcı yüklemesi gerektirmez, çünkü Chromium binary'si JAR ile paketlenmiştir. Linux'ta, Chromium'un beklediği standart paylaşımlı kütüphanelerin mevcut olduğundan emin olun. IronPDF for Java belgeleri, yaygın Linux dağıtımları için minimum gerekli paketlerin bir listesini içerir.
IronPDF'i Nasıl İçe Aktarırım ve Lisans Anahtarını Nasıl Yapılandırırım?
Her IronPDF sınıfı com.ironsoftware.ironpdf paketi içinde yer alır. Herhangi bir kaynak dosyasının en üstünde, PDF belgeleri oluşturacak veya düzenleyecek olacak şekilde içe aktarın.
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/import-and-license.java
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;
// Apply your license key before any other IronPDF calls
License.setLicenseKey("YOUR-LICENSE-KEY");
// Optional: set a custom log file path
Settings.setLogPath(Paths.get("IronPdfEngine.log"));
Bir lisans anahtarı olmadan, IronPDF deneme modunda çalışır ve her PDF sayfasını karo şeklinde filigranlarla damgalar. Anahtarı ayarlamak filigranı kaldırır ve tüm özellikleri etkinleştirir. Ücretsiz bir deneme başlat başlangıçta bir anahtar almak için.

Lisans anahtarı, bir deneme veya ticari lisans etkinleştirildiğinde Iron Software tarafından verilen bir dizgedir. Bunu kaynak kodunda sabitlemek yerine bir ortam değişkenine veya bir yapılandırma dosyasına kaydedin. Yaygın bir model, başlatma sırasında bunu bir ortam değişkeninden okumaktır:
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/license-from-env.java
import com.ironsoftware.ironpdf.*;
// Read the license key from an environment variable
String licenseKey = System.getenv("IRONPDF_LICENSE_KEY");
if (licenseKey != null && !licenseKey.isEmpty()) {
License.setLicenseKey(licenseKey);
}
Bu yaklaşım, anahtarı sürüm kontrolünden uzak tutar ve geliştirme, hazırlık ve üretim ortamlarında farklı anahtarlar kullanmayı kolaylaştırır.
License.setLicenseKey ve Settings.setLogPath herhangi bir işleme veya manipülasyon yöntemi çağrılmadan önce her ikisi de çağrılmalıdır. Onları uygulama başlangıcında yerleştirin - ideal olarak bir statik başlatıcı blokta veya main giriş noktasında.HTML Dizgesini PDF'ye Nasıl Dönüştürürüm?
PdfDocument.renderHtmlAsPdf bir HTML işaretleme dizesini kabul eder ve diske yazmadan önce kaydedilebilen, birleştirilebilen veya değiştirilebilen bir PdfDocument nesnesi döndürür. Bu, programlı olarak oluşturulan HTML için birincil yöntemdir - örneğin, Java dizgesi olarak tanımlanan veya bir dosyadan yüklenen bir HTML şablonu ile veritabanı değerlerini birleştirerek oluşturulan raporlar.
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/html-string-to-pdf.java
import com.ironsoftware.ironpdf.*;
// Simple one-liner: convert an HTML string to a PDF
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
pdf.saveAs("htmlstring_to_pdf.pdf");
İşleme motoru, göreli varlık yollarını (resimler, stil dosyaları, betikler) isteğe bağlı ikinci argüman - temel yoluna karşı çözer. Bir temel yol sağlandığında, motor, göreli URL'lerin çözüleceği kök yol olarak bunu değerlendirir. Bu, yerel CSS ve resim dosyalarını referans alan HTML'nin, kaynak işaretlemede herhangi bir yol manipülasyonu olmaksızın doğru bir şekilde işlenmesini sağlar.
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/html-string-with-assets.java
import com.ironsoftware.ironpdf.*;
// HTML references assets in a local "assets" subfolder
String html = "<html>" +
"<head><link rel='stylesheet' href='assets/style.css'></head>" +
"<body><h1>Invoice</h1><img src='assets/logo.png' /></body>" +
"</html>";
// Pass the base path so IronPDF resolves relative asset URLs
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html, "C:/my-project/templates");
pdf.saveAs("invoice.pdf");
saveAs yöntemi mutlak veya göreli bir yol kabul eder. Eğer dosya mevcut değilse oluşturulur ve mevcutsa üzerine yazılır. Uygulamanın henüz oluşturmamış olabileceği bir dizine yazarken, saveAs çağrılmadan önce ilk olarak Files.createDirectories(Paths.get("output")) kullanarak dizini oluşturun.
IronPDF, Chromium tarafından uygulanan tam HTML5 ve CSS3 özellik setini destekler. CSS ile @font-face üzerinden yüklenen özel yazı tipleri, yazı tipi dosyaları temel yol üzerinde erişilebildiğinde doğru şekilde render edilir. JavaScript tarafından işlenen SVG öğeleri ve <canvas> öğeleri PDF çıktısında da görünür.
URL'yi Java'da PDF'ye Nasıl Dönüştürürüm?
PdfDocument.renderUrlAsPdf belirtilen URL'deki sayfayı alır, JavaScript'in çalışmasını ve dinamik içeriğin yüklenmesini bekler, ardından tamamen işlenmiş DOM'u bir PDF'ye dönüştürür.
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/url-to-pdf.java
import com.ironsoftware.ironpdf.*;
// Convert a live web page to PDF
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.saveAs("wikipedia_pdf_article.pdf");
Motor kimlik doğrulama başlıklarını, çerezleri ve JavaScript ağırlıklı tek sayfa uygulamalarını yönetir. Giriş veya özel istek başlıkları gerektiren sayfalar için, ChromePdfRenderOptions sınıfını kullanarak istek parametrelerini yapılandırın ve ardından renderUrlAsPdf çağırın.
Bu dönüştürme yöntemi, web sayfalarını arşivlemek, uyumluluk anlık görüntüleri oluşturmak ve iç panellerden müşteriye yönelik raporlar üretmek için kullanışlıdır. Yerel ağ üzerinden erişilen sunucu tarafından üretilen sayfalar tamamen desteklenir - http://localhost:8080/report/123'yi bir genel URL gibi aynı şekilde geçirin. IronPDF, sayfanın tam olarak yüklenmesini bekler, böylece asenkron veri alımına dayanan paneller, boş grafiklerle değil, verileri doldurulmuş olarak görüntülenir.
HTTP temel doğrulaması arkasındaki sayfalar için, kimlik bilgilerini http://user:password@host/path formatını kullanarak URL'ye geçirin. Oturum çerezleri ile korunan sayfalar için, çerez kavanozunu ChromePdfRenderOptions nesnesinde yapılandırın ve ardından renderUrlAsPdf'ye geçirin. Kimlik doğrulamalı URL'ler için istek başlıklarını yapılandırma ve çerezleri yönetme hakkında ayrıntılar için IronPDF for Java documentation başvurusuna bakın.
Yerel HTML Dosyasını PDF'e Nasıl Dönüştürebilirim?
PdfDocument.renderHtmlFileAsPdf'ye, yerel dosya sisteminden bir HTML dosyasını okur ve PDF olarak render eder. Dosyada bağlanılan tüm varlıklar (CSS, JavaScript, resimler) göreli yollarla referans verilirse, HTML dosyasının kendi dizinine göre çözülür.
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/html-file-to-pdf.java
import com.ironsoftware.ironpdf.*;
// Convert a local HTML file — assets resolve relative to its directory
PdfDocument pdf = PdfDocument.renderHtmlFileAsPdf("C:/invoices/TestInvoice1.html");
pdf.saveAs("htmlfile_to_pdf.pdf");
Bu yaklaşım karmaşık HTML belgelerini dönüştürmek için en doğru olandır. Çünkü işleme motoru, bellek içi bir dizgi yerine dosya sistemi yolunda çalışır, çok katmanlı varlık dizinlerine yapılan göreli referanslar, ek bir yapılandırma gerektirmeden çözülür. Aynı klasördeki style.css ve script.js'e bağımlı bir şablon, yol ayarlamaları olmadan doğru şekilde işlenir.
Bu yöntem fatura oluşturma, sözleşme üretme ve bir tasarımcının HTML şablonunu Java uygulamasından bağımsız olarak sürdüğü herhangi bir iş akışı için özellikle uygundur. Geliştirme ekibi şablonu bir veri dosyası olarak ele alır, uygulama ile birlikte depolar ve yol ile renderHtmlFileAsPdf çağırır. Tasarımcı marka değiştirme veya düzen değiştirmek için şablonu güncellediğinde, Java kodunda değişiklik gerekmez.
PDF Üretim Seçeneklerini Nasıl Ayarlayabilirim?
ChromePdfRenderOptions, kağıt boyutu, kenar boşlukları, yakınlaştırma seviyesi, baskı ortam tipi, JavaScript zaman aşımı ve daha fazlası gibi render davranışını kontrol eder. Bir örnek oluşturun, istenen özellikleri yapılandırın ve herhangi bir render*AsPdf yöntemine ikinci argüman olarak geçirin.
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/render-options.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;
ChromePdfRenderOptions options = new ChromePdfRenderOptions();
// Render the page using the print media type (uses @media print CSS rules)
options.setCssMediaType(CssMediaType.PRINT);
// Wait up to 5 seconds for JavaScript to finish executing
options.setJavascriptTimeout(5000);
// Apply a 1.5x zoom level to scale content to fit the page
options.setZoom(150);
// Render at 150 DPI for sharper images in print output
options.setDpi(150);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(
"<h1>Styled Report</h1>",
options
);
pdf.saveAs("styled_report.pdf");
CssMediaType.PRINT ayarı, motoru @media print CSS kurallarını uygulamaya yönlendirir; birçok HTML şablonu, gezinme çubuklarını gizlemek ve baskı için özel düzenler uygulamak için kullanır. setJavaScriptTimeout yöntemi, JavaScript grafik kütüphaneleri (D3.js, Chart.js) veya içeriği tembel yükleme kullanan sayfalar için önemlidir — zaman aşımı çok kısa ise, PDF, JavaScript işlenmesini tamamladıktan önce sayfayı yakalayarak boş grafikler veya eksik bölümler üretebilir. Beklenen içerik olmadığında render edilmiş PDF, zaman aşımını artırın.
setDpi yöntemi, çıkıştaki görüntü çözünürlüğünü kontrol eder. Varsayılan (96 DPI) ekran belgeleri için uygundur. Baskıya verilecek veya yüksek DPI ekranlarda gösterilecek PDF'ler için 150 veya 300 DPI kullanın. Daha yüksek DPI değerleri, dosya boyutunu orantılı olarak artırır. Konfigüre edilebilir özelliklerin tam listesi için PDF üretim ayarları kod örneğine bakın.
IronSuite, operasyonlarımızda kritik bir rol oynar. Bunlar, iş süreçlerinde verimliliği artıran, kat planları oluşturmak ve envanter yönetimini geliştirmek gibi araçlardır.
Başlıklar ve Altbilgileri Nasıl Ekleyebilirim?
IronPDF, hem metin tabanlı hem de HTML tabanlı üstbilgi ve altbilgileri destekler. Metin üstbilgileri, render zamanında otomatik olarak çözülen biçimlendirme belirteçleri (TextHeaderFooter, {page}, {total-pages}) içeren bir {date} nesnesi kullanır.
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/headers-footers.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.headerfooter.*;
// Create a text-based header and footer
TextHeaderFooter header = new TextHeaderFooter();
header.setCenterText("Confidential — {date}");
header.setFontSize(10);
TextHeaderFooter footer = new TextHeaderFooter();
footer.setLeftText("My Company, Inc.");
footer.setRightText("Page {page} of {total-pages}");
footer.setFontSize(9);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Annual Report</h1>");
pdf.addTextHeaders(header);
pdf.addTextFooters(footer);
pdf.saveAs("report_with_headers.pdf");
{page} ve {total-pages} belirteçleri, altbilgide "3 of 12" gibi değerler üretir ve sayfa sayısı değiştikçe otomatik olarak güncellenir, bu yüzden render öncesi son sayfa sayısını bilmeye gerek yoktur. {date} belirteci, sistem yerel ayarını kullanarak geçerli tarihi ekler. Diğer mevcut belirteçler {time}, {document-title} ve {url}'yi içerir.
addTextHeaders ve addTextFooters ile eklenen üstbilgi ve altbilgiler varsayılan olarak belgedeki her sayfaya uygulanır. Onları belirli sayfalarla sınırlamak için isteğe bağlı sayfa aralığı parametresini iletin - örneğin, kapak sayfasındaki başlığı atlamak için.
Logolar, marka renkleri veya özel düzenler gerektiren stillendirilmiş üstbilgiler için, bunun yerine HtmlHeaderFooter kullanın — tam bir HTML dizesini kabul eder ve sayfa gövdesi gibi aynı şekilde render eder. Tam HTML başlık deseni için özel başlıklar ve altbilgiler örneğine bakın.
Sayfa Kenar Boşluklarını ve Kağıt Boyutunu Nasıl Ayarlayabilirim?
Herhangi bir render*AsPdf yöntemi çağrılmadan önce, kenar boşlukları ve kağıt boyutu değerleri yapılandırılmış bir ChromePdfRenderOptions örneği geçirin.
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/margins-paper-size.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;
import com.ironsoftware.ironpdf.page.*;
ChromePdfRenderOptions options = new ChromePdfRenderOptions();
// Set uniform margins in millimeters
options.setMarginTop(20);
options.setMarginBottom(20);
options.setMarginLeft(15);
options.setMarginRight(15);
// Use A4 paper (default is Letter)
options.setPaperSize(PaperSize.A4);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<p>Page content here.</p>", options);
pdf.saveAs("a4_with_margins.pdf");
Eşik değerleri milimetre olarak verilir. PaperSize enumu standart boyutları kapsar (A4, Letter, Legal, A3 ve diğerleri). Standart dışı boyutlara ihtiyacı olan geliştiriciler, options.setCustomPaperWidth ve options.setCustomPaperHeight kullanarak özel bir genişlik ve yükseklik ayarlayabilir. Tam yapılandırma kalıplarını gösteren özel kağıt boyutu örneği ve özel kenar boşlukları örneği bakın.
Bir PDF'e Filigran Nasıl Uygularım?
IronPDF'deki bir filigran, yapılandırılabilir opaklıkta her sayfanın üzerine damga olarak basılmış HTML'dir. Bu yaklaşım, geliştiricilere filigranın görünümü üzerinde tam kontrol sağlar - herhangi bir HTML öğesi, resim veya stilize metin damga olarak kullanılabilir.
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/watermark.java
import com.ironsoftware.ironpdf.*;
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Confidential Report</h1><p>Internal use only.</p>");
// Define the watermark using an HTML string
String watermarkHtml = "<h1 style='color:rgba(200,0,0,0.3); transform:rotate(-45deg);'>DRAFT</h1>";
// Stamp the watermark on all pages at 50% opacity
pdf.applyStamp(watermarkHtml);
pdf.saveAs("draft_watermark.pdf");
applyStamp yöntemi, hassas konumlandırma — merkez, sol üst, özel piksel ofsetleri ve z-indeksi (ön plan veya arka plan) için HtmlStampOptions parametresini kabul eder. Damgayı bir arka plan olarak ayarlamak, metnin hala okunur kalması için belgelerin arkasına yerleştirir. Ön plan olarak ayarlamak, yazdırma sırasında gizlemeyi daha zorlaştırır.
Arka plan filigranları, döşemeli desenler ve lisans yükseltilerek filigranların kaldırılması için örnekler içeren özel filigran nasıl yapılır rehberine bakın.
Birden Fazla PDF'i Birleştirip Tek PDF Nasıl Oluştururum?
PdfDocument.merge, iki veya daha fazla PdfDocument nesnesini sırayla birleştirir ve tek bir yeni belge döndürür. Bileşen bölümlerinden raporlar oluşturmak, kapak sayfalarını eklemek veya bir grup görevdeki kullanıcıya özel bölümleri birleştirmek için tercih edilen yaklaşımdır.
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/merge-pdfs.java
import com.ironsoftware.ironpdf.*;
import java.util.Arrays;
import java.util.List;
// Render two separate HTML documents into PDFs
PdfDocument cover = PdfDocument.renderHtmlAsPdf("<h1>Cover Page</h1>");
PdfDocument body = PdfDocument.renderHtmlAsPdf("<h1>Report Body</h1><p>Section one...</p>");
PdfDocument appendix = PdfDocument.renderHtmlAsPdf("<h2>Appendix A</h2>");
// Merge all three into a single PDF in the specified order
List<PdfDocument> parts = Arrays.asList(cover, body, appendix);
PdfDocument merged = PdfDocument.merge(parts);
merged.saveAs("full_report.pdf");
Her kaynak belgeden gelen sayfalar, kaynak listesinin belirlediği sırayla birleştirilmiş çıktıda görünür. Birleştirilen belge, herhangi bir bireysel kaynaktan hiçbir meta veri miras almaz — bu alanlar aşağıdaki tüketici için önemliyse, birleştirdikten sonra PdfDocument.getPdfMetaData() kullanarak meta.title ve diğer belge özelliklerini güncelleyin.
merge yöntemi ayrıca tam olarak iki PdfDocument örneğini kabul eden iki argümanlı bir aşırı yüklemeye sahiptir. Birçok belgenin toplu olarak birleştirilmesi için, liste aşırı yüklemesini kullanın - bu, tüm kaynakları tek geçişte işlediği için, birden çok iki argüman çağrılarını zincirlemekten daha verimlidir.
PdfDocument, çağrıdan sonra geçerli ve değişmeden kalır. merged örneği yeni ve bağımsız bir belgedir. Artık ihtiyaç kalmadığında ilişkili yerel kaynakları serbest bırakmak için kaynak belgeleri close() metodlarıyla serbest bırakın.Bir PDF'ten Sayfa Ekleme veya Çıkartma Nasıl Yapılır?
PdfDocument.copyPage, PdfDocument.copyPages ve PdfDocument.removePages yöntemleri kullanılarak bireysel sayfalar bir belgeden diğerine kopyalanabilir veya tamamen silinebilir.
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/page-operations.java
import com.ironsoftware.ironpdf.*;
import java.util.Arrays;
// Generate a multi-page document using CSS page breaks
PdfDocument report = PdfDocument.renderHtmlAsPdf(
"<p>Page 1 content</p>" +
"<div style='page-break-after:always;'></div>" +
"<p>Page 2 content</p>" +
"<div style='page-break-after:always;'></div>" +
"<p>Page 3 content</p>"
);
// Remove page 2 (zero-indexed — page index 1)
report.removePages(Arrays.asList(1));
// Save the two-page result
report.saveAs("two_page_report.pdf");
IronPDF'deki sayfa indeksleri sıfır tabanlıdır. Birden fazla sayfa kaldırılırken, her kaldırma sonraki sayfa dizinlerini kaydırdığı için döngüde birden çok kez çağırmak yerine, tüm dizinleri tek bir removePages çağrısına geçirin. Tam listeyi tek defada iletmek indeks sürüklenmesini önler. Örneğin, beş sayfalık bir belgede sayfa 2 ve 4'ü kaldırmak için, iki ayrı çağrı yerine Arrays.asList(1, 3) geçirin.
Dış bir PDF'den sayfalar eklemek için — örneğin, statik bir şablondan yasal bir açıklamayı eklemek için — dış belgeyi belirli bir konumda birleştirmek için PdfDocument.insertPdf kullanın. Alan belge sayısı, eklemenin hemen ardından güncellenir.
css page-break-after:always CSS özelliği, HTML'de PDF olarak işlenecek olan sayfa sonlarını zorlamak için standart bir yoldur. IronPDF, ayrıca daha yeni olan break-after: page CSS özelliğini de destekler. Her iki yaklaşım, özel bir Java kodu gerektirmeden öngörülebilir sayfa sonları üretir.
Java'da Bir PDF'i Şifreyle Nasıl Korurum?
IronPDF, bir PDF'teki iki farklı şifreyi destekler: düzenleme, yazdırma ve kopyalama izinlerini kontrol eden bir sahibi şifresi ve belgeyi açmayı kontrol eden bir kullanıcı şifresi. Her ikisi de SecurityOptions sınıfı aracılığıyla ayarlanır.
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/password-protect.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.security.*;
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Secure Document</h1>");
SecurityOptions security = new SecurityOptions();
// Require a password to open the document
security.setUserPassword("user123");
// Require a separate password to edit, print, or copy content
security.setOwnerPassword("owner456");
// Restrict printing to prevent unauthorized reproduction
security.setAllowUserPrinting(PrintOptions.FullPrintQuality);
PdfSecurityManager securityManager = new PdfSecurityManager(pdf);
securityManager.setSecurityOptions(security);
pdf.saveAs("secure_document.pdf");
AllowUserPrinting ayarı bir PrintOptions enumunu kabul eder: FullPrintQuality, LowQualityPrint veya NoPrint. Sahip şifresi ayarlanmış ancak kullanıcı şifresi boş bırakılmışsa, belge şifresiz olarak açılır ama düzenleme ve diğer işlemler için bir PDF editöründe sahibi şifresi gereklidir.
Dinamik Verilerle Bir HTML Şablonunu Nasıl Dönüştürürüm?
Veri odaklı bir HTML şablonundan PDF üretmek, IronPDF için en yaygın üretim kullanım durumlarından biridir. Standart yaklaşım, bir şablon kütüphanesi veya dize işlemleri kullanarak Java'da HTML dizesi oluşturmaktır, ardından bitmiş dizeyi renderHtmlAsPdf'ye geçirin.
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/dynamic-template.java
import com.ironsoftware.ironpdf.*;
// Simulate data from a database or service layer
String customerName = "Acme Corp";
String invoiceNumber = "INV-20240501";
String totalAmount = "$1,250.00";
String dueDate = "2024-06-01";
// Build the HTML template with real data injected
String html = "<!DOCTYPE html><html><head>" +
"<style>body{font-family:Arial,sans-serif;margin:40px;}" +
"table{width:100%;border-collapse:collapse;}" +
"th,td{border:1px solid #ccc;padding:8px;text-align:left;}" +
"th{background:#f4f4f4;}</style></head><body>" +
"<h1>Invoice</h1>" +
"<p><strong>Customer:</strong> " + customerName + "</p>" +
"<p><strong>Invoice #:</strong> " + invoiceNumber + "</p>" +
"<table><tr><th>Description</th><th>Amount</th></tr>" +
"<tr><td>Professional Services</td><td>" + totalAmount + "</td></tr>" +
"</table>" +
"<p><strong>Due Date:</strong> " + dueDate + "</p>" +
"</body></html>";
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html);
pdf.saveAs(invoiceNumber + ".pdf");
Daha büyük projeler için, HTML şablonlarını ayrı dosyalar olarak yönetmek, veri enjekte etmek için bir konteks nesnesi kullanmak ve dize birleştirmeden daha temiz bir şablon sözdizimi sağlamak için Thymeleaf veya Freemarker gibi bir Java şablonlama kütüphanesini düşünün. Her iki kütüphane de doğrudan renderHtmlAsPdf'ye geçen düz bir HTML dizesi üretir.
ChromePdfRenderOptions'lerini örnekleyin ve her render çağrısı için aynı örneği yeniden kullanın. Her çağrı için yeni bir seçenekler nesnesi oluşturmak, gereksiz nesne tahsis yükü ekler.Java'da Bir PDF'den Metin Nasıl Çıkarırım?
PdfDocument.extractAllText PDF içindeki her sayfadaki tüm metin içeriğini okur ve tek bir dize olarak geri döner. Bu, arama endeksleme, veri çıkarma ve render sonrasındaki içerik doğrulama için faydalıdır.
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/extract-text.java
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;
// Open an existing PDF (or use the result of a render call)
PdfDocument pdf = PdfDocument.fromFile(Paths.get("output.pdf"));
// Extract all text content as a plain string
String text = pdf.extractAllText();
System.out.println(text);
Dönen dize, her sayfadaki metinlerin okuma sırasını korur ancak biçimlendirme içermez. Sütunlar ve tablo hücreleri arasındaki boşluk, boşluklar olarak temsil edilir. Birden fazla mantıksal bölüm içeren PDF'ler için extractTextFromPage(int pageIndex), tek bir sayfadaki metni izole eder ve büyük belgeleri bir seferde bir sayfa işlemek daha verimlidir.
Metin çıkarımı, yalnızca PDF yapısında metin nesneleri olarak depolanan metnin bulunduğu PDF'lerde çalışır — renderHtmlAsPdf tarafından üretilen PDF'ler her zaman bu koşullara uyar. Sayfaların görüntü olarak olduğu taranmış belgeler, metin çıkarımı mümkün olmadan önce OCR gerektirir. IronOCR, Java ve .NET uygulamalarına OCR yetenekleri ekleyen tamamlayıcı bir Iron Software kütüphanesidir.
Görüntü çıkartımı için, belge içinde bulunan her görüntü için birer birer BufferedImage nesnesi döndüren pdf.extractAllImages() kullanın. Tam kod desenleri için PDF'den metin çıkarma örneği ve PDF'den görüntü çıkarma örneğine bakın.
Bir PDF Dosyasını Nasıl Sıkıştırırım?
PdfDocument.compressImages, gömülü görüntüleri daha düşük kalitede yeniden kodlayarak dosya boyutunu küçültür. Bu, büyük fotoğraf veya afiş resimleri içeren web sayfalarından üretilmiş PDF'ler için özellikle etkili
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/compress-pdf.java
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;
PdfDocument pdf = PdfDocument.fromFile(Paths.get("large_report.pdf"));
// Compress embedded images to 60% quality (0–100 scale)
pdf.compressImages(60);
pdf.saveAs("compressed_report.pdf");
Kalite değerleri genellikle %40-%70 arası dosya boyutu azaltırken, ekran okuma için kabul edilebilir görsel sadakat sağlar. 40'ın altındaki değerler fotoğraflarda görülebilir kusurlar oluşturabilir, ancak geniş tek renkli alanlara sahip diyagramlar ve ekran görüntüleri için kabul edilebilir.
Aşırı yüklenen compressImages(int quality, boolean scaleExistingImages) yöntemi, PDF'deki görüntüleri, gösterim boyutlarından daha büyük olup olmadıklarını ölçekleyip ölçeklemeyeceğini belirleyen bir boolean da kabul eder. Bunu true olarak ayarlamak, yüksek çözünürlükteki bir görüntü gömülü ancak sayfada çok daha küçük boyutlarda gösterildiğinde oluşan fazla çözünürlüğü ortadan kaldırarak dosya boyutunu daha da küçültür. İkili çözünürlükte resimlerin retina ekranları için sunulduğu web-to-PDF dönüşümlerinde yaygındır.
PDF sıkıştırma örneği, çok sayfalı belgeler arasında toplu sıkıştırmayı ve sıkıştırmadan sonra boyut azalımını nasıl doğrulayacağınızı gösterir.
Sonraki Adımlar
Bu öğretici, üç HTML'den PDF'e dönüştürme yöntemlerini, kurulumu, lisans konfigürasyonunu, render seçeneklerini, başlığı ve altbilgileri, sayfa düzen ayarlarını, metin çıkarımını ve dosya sıkıştırmayı kapsıyordu.
IronPDF için Java dokümantasyonu içinde bu kaynakları keşfedin:
- PDF üretim ayarları — Hassas render kontrolü için DPI, yakınlaştırma, zaman aşımı ve CSS medya türü yapılandırın.
- Başlıklar ve altbilgiler — Marka logoları ve özel düzenlerle HTML başlıkları ve altbilgileri ekleyin.
- Sayfa düzeni — Baskıya hazır çıktı için özel kenar boşluklarını ve kağıt boyutlarını ayarlayın.
- Filigranlar — Belge güvenliğini sağlamak için arka plan ve ön plan filigranları uygulayın.
- İçerik çıkarma — Aşağı yönde işleme için PDF'lardan metinleri çıkarın ve görüntüleri çıkarın.
- Dosya sıkıştırma — Depolama ve e-posta iletimi için PDF dosya boyutunu düşürün.
- API Referansı — Her sınıf ve yöntemi görmek için IronPDF Java API referansı üzerine göz atın.
Ücretsiz bir deneme başlat, Java uygulamanızda HTML'yi PDF'ye dönüştürmeye bugün başlamak için. Dağıtmaya hazır olduğunuzda, projenize en uygun planı bulmak için lisanslama seçeneklerini görüntüleyin.
Sıkça Sorulan Sorular
HTML dizelerini Java'da PDF'ye nasıl dönüştürürüm?
HTML dizesiyle PdfDocument.renderHtmlAsPdf çağrısı yapın. Göreceli CSS, resim ve komut dosyası referanslarının doğru şekilde çözülmesi için ikinci argüman olarak isteğe bağlı bir temel yolu girin. Dosyayı yazmak için döndürülen PdfDocument üzerinde saveAs çağrısı yapın.
Bir URL'yi Java'da PDF'ye nasıl dönüştürürüm?
Tam nitelikli URL ile PdfDocument.renderUrlAsPdf çağrısı yapın. IronPDF sayfayı çeker, JavaScript'in yürütülmesini bekler ve tamamen yüklenmiş DOM'u PDF'ye render eder.
Java'da yerel bir HTML dosyasını PDF'ye nasıl dönüştürürüm?
Mutlak dosya yolu ile PdfDocument.renderHtmlFileAsPdf çağrısı yapın. HTML dosyasındaki tüm göreceli varlık referansları otomatik olarak bu dosyanın dizinine göre çözülür.
Maven kullanarak bir Java projesinde IronPDF'yi nasıl kurarım?
pom.xml içinde groupId com.ironsoftware ve artifactId ironpdf ile IronPDF bağımlılığını ekleyin, ardından proje kökünden mvn install çalıştırın.
IronPDF tarafından üretilen PDF'lerden filigranı nasıl kaldırırım?
Herhangi bir işleme çağrısından önce geçerli bir lisans anahtarı ile License.setLicenseKey çağrısı yapın. Lisans anahtarı olmadan, IronPDF her sayfaya döşenmiş bir filigran damgalar.
Java'da bir PDF'ye başlıklar ve alt başlıklar nasıl eklerim?
TextHeaderFooter örneği oluşturun, metin özelliklerini {page} ve {total-pages} gibi format belirteçlerini kullanarak ayarlayın, ardından pdf.addTextHeaders ve pdf.addTextFooters çağrısı yapın. Logolarla stilize edilmiş başlıklar için HtmlHeaderFooter kullanın.
Java'da PDF sayfa kenar boşluklarını ve kağıt boyutunu nasıl ayarlarım?
ChromePdfRenderOptions örneği oluşturun ve setMarginTop, setMarginBottom, setMarginLeft, setMarginRight (milimetre cinsinden) ve setPaperSize yöntemlerini çağırın ve bir PaperSize enum değeri ayarlayın. Seçenekleri herhangi bir işleme yöntemine iletin.
Java'da birden çok PDF'yi nasıl birleştiririm?
Belirlenen sırayla belgeleri içeren bir List<PdfDocument> oluşturun ve bunu PdfDocument.merge yöntemine iletin. Yöntem, tüm kaynaklardan gelen tüm sayfaları içeren yeni bir PdfDocument döndürür.
Java'da bir PDF'yi nasıl şifrelerim?
SecurityOptions örneği oluşturun, setUserPassword ve setOwnerPassword çağrısı yapın, ardından belgeyi kaydetmeden önce PdfSecurityManager aracılığıyla uygulayın.
Java'da PDF'den metni nasıl çıkartabilirim?
Tüm metin içeriğini tek bir dize olarak almak için pdf.extractAllText() çağrısı yapın. Belirli bir sayfadan metin çıkarmak için extractTextFromPage(int pageIndex) kullanın.


