JAVA için IronPDF kullanarak HTML'yi PDF'ye Nasıl Dönüştürürsünüz

Java ile HTML'den PDF'e

This article was translated from English: Does it need improvement?
Translated
View the article in English

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");
JAVA

Bugün IronPDF ile projenizde ücretsiz bir deneme ile başlayın.

İlk Adım:
green arrow pointer

İçindekiler


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>
XML

İ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]'
// }
JAVA

[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.

Lütfen dikkate alınIronPDF JAR, paketlenmiş bir Chromium motoru binary'si içerir. Yeni bir makinede ilk işleme çağrısı, geçici bir dizine çıkaracaktır, bu birkaç saniye sürer. Sonraki çağrılar önbelleğe alınmış binary'yi kullanır ve hızla başlar. Kapsayıcı ortamlarında, her kapsayıcı başlatılışında yeniden çıkarımlarını önlemek için çıkarım yoluna kalıcı bir hacim monte edin.

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"));
JAVA

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.

Demoda IronPDF filigranı bir PDF sayfası boyunca damgalanmış

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);
}
JAVA

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.

ÖnemliLicense.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");
JAVA

İş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");
JAVA

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.

İpuçlarıHTML şablonlarını özel bir dizinde tutun ve bu dizini temel yol olarak iletin. Bu model, tasarımcıların herhangi bir Java koduna dokunmadan şablonu güncellemelerine olanak tanı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");
JAVA

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");
JAVA

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.

Lütfen dikkate alınIronPDF, Chromium'un desteklediği tüm modern HTML ve CSS özelliklerini destekler - Flexbox, CSS Grid, CSS değişkenleri, Web yazı tipleri ve medya sorguları çıktı PDF'de doğru bir şekilde işlenir.


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");
JAVA

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.


Icon Quote related to PDF Üretim Seçeneklerini Nasıl Ayarlayabilirim?

Bu türden favori kütüphanem IronPDF'dir. PDF dosyalarının hızlı ve verimli bir şekilde işlenmesine olanak tanır. Ayrıca, PDF/A formatına dışa aktarma ve dijital imzalama gibi birçok değerli özelliğe sahiptir.

Milan Jovanovic related to PDF Üretim Seçeneklerini Nasıl Ayarlayabilirim?

Milan Jovanovic

Microsoft MVP

Vaka çalışmasını görüntüle
Icon Quote related to PDF Üretim Seçeneklerini Nasıl Ayarlayabilirim?

IronOCR, manuel işleme maliyetinden yıllık 40.000 USD tasarruf etmemizi sağlıyor, üretkenliği artırıyor ve yüksek etkili görevler için kaynakları serbest bırakıyor. Kesinlikle tavsiye ederim.

Brent Matzelle related to PDF Üretim Seçeneklerini Nasıl Ayarlayabilirim?

Brent Matzelle

Teknoloji Müdürü, OPYN

Vaka çalışmasını görüntüle
Icon Quote related to PDF Üretim Seçeneklerini Nasıl Ayarlayabilirim?

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.

David Jones related to PDF Üretim Seçeneklerini Nasıl Ayarlayabilirim?

David Jones

Baş Yazılım Mühendisi, Agorus Build

Vaka çalışmasını görüntüle

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");
JAVA

{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");
JAVA

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");
JAVA

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.

İpuçlarıTekrar eden bir döşeme filigranı üretmek — IronPDF'nin deneme modunda uyguladığı türden — HTML damga dizesindeki metin öğelerinden oluşan döndürülmüş bir ızgara işleyin ve tüm sayfayı dolduracak şekilde boyutlandırın.

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");
JAVA

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.

Lütfen dikkate alınKombinasyon listesindeki her kaynak 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");
JAVA

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");
JAVA

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.

UyarıPDF şifre koruması dosyayı şifreler, ancak doğru erişim kontrol sistemlerinin yerine geçmez. Özelleşmiş araçlara sahip azimli kullanıcılar zayıf şifrelere yönelik kaba kuvvet saldırıları deneyebilir. Gerçek güvenlik gerektiren belgeler için güçlü, rastgele oluşturulmuş şifreler kullanın.


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");
JAVA

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.

İpuçlarıToplu işte PDF üretirken — örneğin, her müşteri için bir fatura — döngüden önce bir kez 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);
JAVA

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");
JAVA

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:

  1. 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.
  2. Başlıklar ve altbilgiler — Marka logoları ve özel düzenlerle HTML başlıkları ve altbilgileri ekleyin.
  3. Sayfa düzeni — Baskıya hazır çıktı için özel kenar boşluklarını ve kağıt boyutlarını ayarlayın.
  4. Filigranlar — Belge güvenliğini sağlamak için arka plan ve ön plan filigranları uygulayın.
  5. İçerik çıkarma — Aşağı yönde işleme için PDF'lardan metinleri çıkarın ve görüntüleri çıkarın.
  6. Dosya sıkıştırma — Depolama ve e-posta iletimi için PDF dosya boyutunu düşürün.
  7. 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.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Sürüm: 2026.6 yeni yayınlandı
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz?
bir örnek çalıştır HTML'nizi bir PDF'ye dönüştüğünü izleyin.