Java'da IronPDF kullanarak PDF Nasıl Oluşturulur

Java'da PDF Dosyaları Nasıl Oluşturulur

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

Java'da PDF dosyası oluşturmak, faturalandırma ve talep üzerine raporlar oluşturma, sertifika, makbuz ve denetim logları üretme gibi iş uygulamaları için yaygın bir gereksinimdir. Java için IronPDF, tam bir Chromium işleme motoru kullanarak HTML'yi PDF'ye dönüştürür, bu da herhangi bir HTML5, CSS3 ve JavaScript içeriğinin, biçimlendirme kaybı olmadan sadakatle işlendiği anlamına gelir.

Bu kılavuz, üç PDF oluşturma yöntemini kapsar: bir HTML dizesinden, yerel bir HTML dosyasından ve canlı bir URL'den. Ayrıca sayfa biçimlendirmesi, parola koruması ve Spring Boot entegrasyonunu da kapsar.

Hızlı Başlangıç: Java'da HTML'den PDF Oluştur

  1. IronPDF'yi pom.xml'ye ekleyin:
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/maven-dependency.xml
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>2024.9.1</version>
</dependency>
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/maven-dependency.xml
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>2024.9.1</version>
</dependency>
XML
  1. Kütüphaneyi içe aktarın ve bir PDF oluşturun:
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/quickstart.java
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;

// Set your license key (remove watermarks in production)
License.setLicenseKey("Your-License-Key");

// Convert HTML string to PDF and save
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello, IronPDF!</h1>");
pdf.saveAs(Paths.get("output.pdf"));
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/quickstart.java
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;

// Set your license key (remove watermarks in production)
License.setLicenseKey("Your-License-Key");

// Convert HTML string to PDF and save
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello, IronPDF!</h1>");
pdf.saveAs(Paths.get("output.pdf"));
JAVA

Java İçin IronPDF Nedir ve Neden Kullanılmalıdır?

Java için IronPDF, Chromium işleme motoru üzerine kurulu bir PDF oluşturma ve manipülasyon kütüphanesidir. Chrome'un HTML'yi tam anlamıyla işlemesine dayanarak, karmaşık düzenleri, özel yazı tiplerini, CSS animasyonlarını, JavaScript ile oluşturulan içerikleri ve gömülü görüntüleri hiçbir manuel düzenleme kodu gerektirmeden işler.

Kütüphane, tek bir bağımlılık içinde tam PDF yaşam döngüsünü kapsar. Geliştiriciler belgeleri sıfırdan oluşturabilir, mevcut HTML içeriğini dönüştürebilir, dosyaları birleştirebilir veya ayırabilir, filigranlar ekleyebilir, parolalarla şifreleyebilir, metin ve resimleri çıkarabilir ve doldurulabilir formlar oluşturabilir, tümü tutarlı bir API üzerinden. HTML ağırlıklı iş akışları için, IronPDF, Apache PDFBox gibi düşük seviyeli PDF kütüphanelerinin gerektirdiği manuel sayfa düzeni hesaplamalarını ortadan kaldırır.

Çoğu ticari kullanım için AGPL açık kaynak lisansı gerektiren iText'in aksine, IronPDF ticari dostu bir lisanslama ile gelir ve karmaşık bir lisans uyumluluğu incelemesi gerektirmez. Java için IronPDF, bir Maven eseri olarak gönderilir ve Windows, Linux ve macOS üzerinde çalışır. Spring Boot, Jakarta EE ve bağımsız Java uygulamaları ile entegre olur. Kütüphane ayrıca, AWS, Azure ve Google Cloud üzerinde sunucu konuşlandırmalarını destekler.

Lütfen dikkate alınIronPDF, perde arkasında Chromium kullanarak işler. Chrome'da doğru görünen aynı HTML, PDF'nizde de aynı çıktıyı üretir, tarayıcıdan PDF'ye biçimlendirme sürprizleri yaşamaz.

Java'da IronPDF Kullanımı İçin Gereksinimler Nelerdir?

Hangi Java Sürümü ve Derleme Aracı Gereklidir?

Java için IronPDF JDK 8 veya daha üstü gerektirir. Üretim kullanımı için önerilen minimum, JDK 11 (LTS)'dir. Download the JDK from the Oracle download page or use an OpenJDK distribution such as Eclipse Temurin.

Hem Maven (3.6+) hem de Gradle (7.0+) desteklenir. Maven, kurumsal Java projeleri için daha yaygın bir seçimdir.

Maven Projesine IronPDF Nasıl Eklerim?

Projenizin pom.xml dosyasını açın ve <dependencies> bloğunun içine aşağıdaki bağımlılığı ekleyin:

//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/maven-full.xml
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>2024.9.1</version>
</dependency>
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/maven-full.xml
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>2024.9.1</version>
</dependency>
XML

Kaydettikten sonra mvn install komutunu çalıştırın veya IDE'nizin bağımlılığı otomatik olarak çözmesine izin verin. Maven, IronPDF'yi Maven Central'dan indirir, bu nedenle özel bir depo yapılandırmasına gerek yoktur.

Gradle Projesine IronPDF Nasıl Eklerim?

dependencies dosyanızdaki build.gradle bloğuna aşağıdaki satırı ekleyin:

//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/gradle-dependency.gradle
implementation 'com.ironsoftware:ironpdf:2024.9.1'

Kütüphaneyi almak için gradle build komutunu çalıştırın. Check Maven Central for the latest published version.

Hangi İthalatlar ve Yapılandırmalar Gereklidir?

Java kaynak dosyanızın en üstüne şu ithal deyimleri ekleyin:

//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/imports.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.ChromePdfRenderOptions;
import com.ironsoftware.ironpdf.render.PaperOrientation;
import com.ironsoftware.ironpdf.render.PaperSize;
import com.ironsoftware.ironpdf.security.SecurityOptions;
import com.ironsoftware.ironpdf.security.SecurityManager;
import java.io.IOException;
import java.nio.file.Paths;
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/imports.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.ChromePdfRenderOptions;
import com.ironsoftware.ironpdf.render.PaperOrientation;
import com.ironsoftware.ironpdf.render.PaperSize;
import com.ironsoftware.ironpdf.security.SecurityOptions;
import com.ironsoftware.ironpdf.security.SecurityManager;
import java.io.IOException;
import java.nio.file.Paths;
JAVA

Herhangi bir PDF oluşturmadan önce, main yönteminde veya uygulama başlangıcında lisans anahtarınızı ayarlayın:

//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/license-setup.java
License.setLicenseKey("Your-License-Key");
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/license-setup.java
License.setLicenseKey("Your-License-Key");
JAVA

Not: Geçerli bir lisans anahtarı olmadan, PDF'ler deneme filigranı ile üretilir. Filigranı kaldırmak için bir lisans satın alın veya ücretsiz denemenizi başlatın. Java'da lisans anahtarlarını kullanma hakkında ek yapılandırma seçenekleri için Java'da lisans anahtarlarını kullanma konusuna bakın.

Java'da Bir HTML Dizesinden PDF Nasıl Oluşturulur?

Herhangi bir HTML dizesini doğrudan PdfDocument.renderHtmlAsPdf()'ye aktarın. IronPDF, bellekteki bitmiş belgeyi temsil eden bir PdfDocument örneği döndürür. Disk'e yazmak için saveAs()'yi çağırın.

//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/html-string-to-pdf.java
// HTML content with inline CSS
String htmlContent = "<h1>Hello World!</h1><p>This is an example HTML string.</p>";

// Render HTML string to PDF
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(htmlContent);

// Save to disk
pdf.saveAs(Paths.get("html.pdf"));
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/html-string-to-pdf.java
// HTML content with inline CSS
String htmlContent = "<h1>Hello World!</h1><p>This is an example HTML string.</p>";

// Render HTML string to PDF
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(htmlContent);

// Save to disk
pdf.saveAs(Paths.get("html.pdf"));
JAVA

renderHtmlAsPdf(), web yazı tipleri, Flexbox, Grid düzenleri ve JavaScript yürütme dahil olmak üzere HTML5 ve CSS3 spesifikasyonlarının tamamını destekler. Aşağıdaki örnek, özel stillere sahip çok satırlı bir HTML şablonu kullanır:

//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/html-string-styled.java
// Multi-line HTML with CSS styling using a text block (Java 13+)
String styledHtml = """
    <!DOCTYPE html>
    <html>
    <head>
        <style>
            body { font-family: Arial, sans-serif; margin: 40px; }
            h1 { color: #2563eb; border-bottom: 2px solid #e5e7eb; padding-bottom: 8px; }
            .summary { background: #f3f4f6; padding: 16px; border-radius: 4px; }
        </style>
    </head>
    <body>
        <h1>Invoice #1042</h1>
        <div class="summary">
            <p>Amount due: $1,250.00</p>
            <p>Due date: 2024-06-01</p>
        </div>
    </body>
    </html>
    """;

PdfDocument invoice = PdfDocument.renderHtmlAsPdf(styledHtml);
invoice.saveAs(Paths.get("invoice.pdf"));
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/html-string-styled.java
// Multi-line HTML with CSS styling using a text block (Java 13+)
String styledHtml = """
    <!DOCTYPE html>
    <html>
    <head>
        <style>
            body { font-family: Arial, sans-serif; margin: 40px; }
            h1 { color: #2563eb; border-bottom: 2px solid #e5e7eb; padding-bottom: 8px; }
            .summary { background: #f3f4f6; padding: 16px; border-radius: 4px; }
        </style>
    </head>
    <body>
        <h1>Invoice #1042</h1>
        <div class="summary">
            <p>Amount due: $1,250.00</p>
            <p>Due date: 2024-06-01</p>
        </div>
    </body>
    </html>
    """;

PdfDocument invoice = PdfDocument.renderHtmlAsPdf(styledHtml);
invoice.saveAs(Paths.get("invoice.pdf"));
JAVA

Yukarıdaki fatura örneği, Java 13'ten beri mevcut olan Java metin bloklarını, daha temiz çok satırlı HTML için kullanır. Eski Java sürümleri için, HTML dizesini manuel olarak birleştirin veya renderHtmlFileAsPdf() kullanarak bir dosyadan yükleyin. JavaScript işleme de dahil olmak üzere HTML'den PDF'ye dönüşüm hakkında daha geniş bir bakış için, HTML to PDF kılavuzuna bakın.

İpuçlarıKısa HTML dizeleri verirken, IronPDF içeriği otomatik olarak minimal bir HTML belgesine sarar. Baş etiketleri, meta karakter seti ve CSS resetleri üzerinde tam kontrol sağlamak için, tam bir <!DOCTYPE html> belgesi geçirin.

Java'da Yerel Bir HTML Dosyasından PDF Nasıl Oluşturulur?

Yerel dosya sisteminde depolanan bir HTML dosyasını dönüştürmek için PdfDocument.renderHtmlFileAsPdf() kullanın. Yolu bir dize olarak geçirin; göreli yollar, mevcut çalışma dizinine göre çözülür:

//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/html-file-to-pdf.java
// Convert a local HTML file to PDF
PdfDocument filePdf = PdfDocument.renderHtmlFileAsPdf("invoice-template.html");

// Save the converted document
filePdf.saveAs(Paths.get("invoice_output.pdf"));
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/html-file-to-pdf.java
// Convert a local HTML file to PDF
PdfDocument filePdf = PdfDocument.renderHtmlFileAsPdf("invoice-template.html");

// Save the converted document
filePdf.saveAs(Paths.get("invoice_output.pdf"));
JAVA

IronPDF, tüm referans varlıkları (dış CSS dosyaları, yerel görüntüler ve JavaScript kütüphaneleri) HTML dosyasının dizinine göre çözer. Bu, bağlantılı stil sayfalarına sahip eksiksiz bir HTML şablonu oluşturup, hiçbir varlık yolunu değiştirmeden IronPDF'den geçirebileceğiniz anlamına gelir.

Yöntem, hem String yolunu hem de java.nio.file.Path nesnesini kabul eder. Çalışma dizini belirsizliğinden kaçınmak için üretimde mutlak yolları tercih edin. Dosyadan PDF'ye örneği tamamı çalışan bir gösterim için inceleyin.

Java'da Bir Web Sayfası URL'sinden PDF Nasıl Oluşturulur?

PdfDocument.renderUrlAsPdf() canlı bir URL'yi alır, Chromium kullanarak görüntüler ve bir PDF dosyası döndürür. Gösterge tablolarının anlık görüntülerini yakalamak, barındırılan makbuz sayfalarından PDF makbuzları oluşturmak veya web içeriğini arşivlemek için bu kullanışlıdır:

//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/url-to-pdf.java
// Render a live web page to PDF
PdfDocument webPdf = PdfDocument.renderUrlAsPdf("https://ironpdf.com");
webPdf.saveAs(Paths.get("ironpdf-homepage.pdf"));
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/url-to-pdf.java
// Render a live web page to PDF
PdfDocument webPdf = PdfDocument.renderUrlAsPdf("https://ironpdf.com");
webPdf.saveAs(Paths.get("ironpdf-homepage.pdf"));
JAVA

HTTP kimlik doğrulaması gerektiren sayfalar için, kimlik bilgilerini ChromePdfRenderOptions aracılığıyla iletin:

//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/url-to-pdf-auth.java
// Configure render options with login credentials
ChromePdfRenderOptions renderOptions = new ChromePdfRenderOptions();
renderOptions.setAuthUsername("username");
renderOptions.setAuthPassword("password");

// Render authenticated page to PDF
PdfDocument securedPdf = PdfDocument.renderUrlAsPdf("https://your-internal-app.com/report", renderOptions);
securedPdf.saveAs(Paths.get("internal-report.pdf"));
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/url-to-pdf-auth.java
// Configure render options with login credentials
ChromePdfRenderOptions renderOptions = new ChromePdfRenderOptions();
renderOptions.setAuthUsername("username");
renderOptions.setAuthPassword("password");

// Render authenticated page to PDF
PdfDocument securedPdf = PdfDocument.renderUrlAsPdf("https://your-internal-app.com/report", renderOptions);
securedPdf.saveAs(Paths.get("internal-report.pdf"));
JAVA

URL'den PDF'ye kod örneği ayrıntılar için inceleyin. Çerezler veya form tabanlı kimlik doğrulama kullanan daha karmaşık giriş akışları için web sitesi giriş işlemleri sayfasını inceleyin.

Sayfa Boyutunu, Yönünü ve Kenar Boşluklarını Nasıl Kontrol Ederim?

Çıktı PDF'sinin fiziksel düzenini özelleştirmek için ChromePdfRenderOptions kullanın. Yapılandırılmış seçenekleri, herhangi bir işleme yönteminin ikinci argümanı olarak iletin. En yaygın ayarlar sayfa yönü, kağıt boyutu ve kenar boşluklarıdır:

//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/pdf-formatting.java
ChromePdfRenderOptions renderOptions = new ChromePdfRenderOptions();

// Set landscape orientation (default is portrait)
renderOptions.setPaperOrientation(PaperOrientation.LANDSCAPE);

// Use US Letter paper size (default is A4)
renderOptions.setPaperSize(PaperSize.LETTER);

// Set margins in millimeters (top, right, bottom, left)
renderOptions.setMarginTop(15);
renderOptions.setMarginRight(15);
renderOptions.setMarginBottom(15);
renderOptions.setMarginLeft(15);

// Include background colors and images
renderOptions.setPrintHtmlBackgrounds(true);

// Apply options when rendering
PdfDocument report = PdfDocument.renderHtmlAsPdf("<h1>Quarterly Report</h1>", renderOptions);
report.saveAs(Paths.get("report.pdf"));
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/pdf-formatting.java
ChromePdfRenderOptions renderOptions = new ChromePdfRenderOptions();

// Set landscape orientation (default is portrait)
renderOptions.setPaperOrientation(PaperOrientation.LANDSCAPE);

// Use US Letter paper size (default is A4)
renderOptions.setPaperSize(PaperSize.LETTER);

// Set margins in millimeters (top, right, bottom, left)
renderOptions.setMarginTop(15);
renderOptions.setMarginRight(15);
renderOptions.setMarginBottom(15);
renderOptions.setMarginLeft(15);

// Include background colors and images
renderOptions.setPrintHtmlBackgrounds(true);

// Apply options when rendering
PdfDocument report = PdfDocument.renderHtmlAsPdf("<h1>Quarterly Report</h1>", renderOptions);
report.saveAs(Paths.get("report.pdf"));
JAVA

ChromePdfRenderOptions, DPI, JavaScript yürütme zaman aşımı, Zoom faktörü ve CSS medya türü dahil olmak üzere, yukarıda gösterilenlerin ötesinde 30'dan fazla ayar sunar. Tam liste için PDF oluşturma ayarlarına bakın. PaperSize enumunda bulunmayan özel kağıt boyutları için özel PDF kağıt boyutlarına bakın.

ÖnemliDaima Kağıt Boyutunu önce Kağıt Yönünden önce ayarlayın. Bazı derlemelerde Kağıt Boyutu uygulandığında ilk olarak ayarlanan yön geçersiz kılınabilir. Önerilen sipariş: boyut, sonra yön, sonra kenar boşlukları.

Java'da Bir PDF'ye Şifre Koruması Nasıl Eklenir?

SecurityOptions, okuma ve sahip şifrelerinin yanı sıra izin bayraklarını da kontrol eder. Kaydetmeden önce belgenin SecurityManager kısmına SecurityOptions değerini aktarın:

//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/password-protect-basic.java
// Create security settings with a user-facing password
SecurityOptions securityOptions = new SecurityOptions();
securityOptions.setUserPassword("shareable");

// Apply security to the document
PdfDocument urlPdf = PdfDocument.renderUrlAsPdf("https://ironpdf.com");
SecurityManager securityManager = urlPdf.getSecurity();
securityManager.setSecurityOptions(securityOptions);

// Save the password-protected document
urlPdf.saveAs(Paths.get("protected.pdf"));
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/password-protect-basic.java
// Create security settings with a user-facing password
SecurityOptions securityOptions = new SecurityOptions();
securityOptions.setUserPassword("shareable");

// Apply security to the document
PdfDocument urlPdf = PdfDocument.renderUrlAsPdf("https://ironpdf.com");
SecurityManager securityManager = urlPdf.getSecurity();
securityManager.setSecurityOptions(securityOptions);

// Save the password-protected document
urlPdf.saveAs(Paths.get("protected.pdf"));
JAVA

Daha sıkı bir kontrol için, bir sahip parolası ayarlayın ve belirli işlemleri kısıtlayın:

//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/password-protect-advanced.java
SecurityOptions advancedSecurity = new SecurityOptions();

// User password: required to open the file
advancedSecurity.setUserPassword("user-open-pass");

// Owner password: required to change security settings
advancedSecurity.setOwnerPassword("owner-admin-pass");

// Restrict editing operations
advancedSecurity.setAllowPrint(false);
advancedSecurity.setAllowCopy(false);
advancedSecurity.setAllowEditContent(false);
advancedSecurity.setAllowEditAnnotations(false);
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/password-protect-advanced.java
SecurityOptions advancedSecurity = new SecurityOptions();

// User password: required to open the file
advancedSecurity.setUserPassword("user-open-pass");

// Owner password: required to change security settings
advancedSecurity.setOwnerPassword("owner-admin-pass");

// Restrict editing operations
advancedSecurity.setAllowPrint(false);
advancedSecurity.setAllowCopy(false);
advancedSecurity.setAllowEditContent(false);
advancedSecurity.setAllowEditAnnotations(false);
JAVA

PDF'yi açmak okuyucuyu bir parola istemi ile uyarır:

Password prompt dialog shown when opening an IronPDF-generated Java PDF with a user password set

PDF okuyucuları bir kullanıcı parolası ile korunmuş bir belge olduğunda parola istemini görüntüler.

Doğru parola girildikten sonra PDF açılır ve tam içeriği görüntüler:

IronPDF Java PDF document open in a PDF viewer after the correct password is entered, displaying full document content

Belge, doğru parola sağlandıktan sonra normal bir şekilde görüntülenir.

Yetki bayraklarının tam listesi için güvenlik ve meta veri ayarları sayfasını inceleyin.

Spring Boot Uygulamasında PDF Nasıl Oluşturulur?

IronPDF, Spring Boot ile doğrudan entegre edilir. Herhangi bir kontrolörü yönteminden bir bayt dizi HTTP yanıtı olarak bir PDF döndürün; bu model, isteğe bağlı rapor oluşturma, fatura indirmeleri ve veri dışa aktarımları için çalışır.

//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/spring-boot-controller.java
import com.ironsoftware.ironpdf.*;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;

@RestController
@RequestMapping("/api/pdf")
public class PdfController {

    @GetMapping("/invoice/{id}")
    public ResponseEntity<byte[]> generateInvoice(@PathVariable String id) throws IOException {
        // Build HTML dynamically using the invoice ID
        String html = """
            <html><body>
              <h1>Invoice #%s</h1>
              <p>Amount due: $500.00</p>
            </body></html>
            """.formatted(id);

        // Render and return as PDF download
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html);
        byte[] pdfBytes = pdf.getBinaryData();

        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_PDF);
        headers.setContentDispositionFormData("attachment", "invoice-" + id + ".pdf");

        return ResponseEntity.ok().headers(headers).body(pdfBytes);
    }
}
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/spring-boot-controller.java
import com.ironsoftware.ironpdf.*;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;

@RestController
@RequestMapping("/api/pdf")
public class PdfController {

    @GetMapping("/invoice/{id}")
    public ResponseEntity<byte[]> generateInvoice(@PathVariable String id) throws IOException {
        // Build HTML dynamically using the invoice ID
        String html = """
            <html><body>
              <h1>Invoice #%s</h1>
              <p>Amount due: $500.00</p>
            </body></html>
            """.formatted(id);

        // Render and return as PDF download
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html);
        byte[] pdfBytes = pdf.getBinaryData();

        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_PDF);
        headers.setContentDispositionFormData("attachment", "invoice-" + id + ".pdf");

        return ResponseEntity.ok().headers(headers).body(pdfBytes);
    }
}
JAVA

getBinaryData() yöntemi, PDF'yi bir bayt dizisi olarak döndürür ve Spring Boot bunu doğrudan istemciye aktarır. Disk'e geçici bir dosya yazılmamaktadır. Yüksek verimli dağıtımlar için, License.setLicenseKey() öğesini istek başına değil, bir @PostConstruct yönteminde veya uygulama başlatma dinleyicisinde örneklendirin.

İpuçlarıLisans anahtarınızı bir @PostConstruct yöntemi veya ApplicationRunner kullanarak uygulama başlangıcında bir kez ayarlayın. Her istekte License.setLicenseKey() çağırmak gereksiz aşırı yük oluşturur.

Java PDF Oluşturmak İçin Sonraki Adımlar Nelerdir?

Bu kılavuz, IronPDF kullanarak Java'da PDF oluşturma için dört yaklaşımı gösterdi: HTML dizesi işleme, yerel dosya dönüştürme, URL yakalama ve Spring Boot HTTP yanıt akışı. Tüm yöntemler aynı PdfDocument API'sini, biçimlendirme kontrolü için ChromePdfRenderOptions'yi ve erişim koruması için SecurityOptions'yi paylaşır.

Java için IronPDF ayrıca filigran ekleme ve damgalama, birden fazla PDF dosyasını birleştirme, PDF'leri bireysel sayfalara bölme, dijital imzalar ekleme, JavaScript grafikleri PDF olarak işleme ve programatik olarak PDF yazdırma seçeneklerini destekler.

Filigransız PDF oluşturmak için ücretsiz denemeye başlayın veya projelerinize uygun bir plan seçmek için lisanslama seçeneklerini görüntüleyin. Daha derine inmeye hazır mısınız? Java için IronPDF eğitim sayfasının tamamını inceleyin.

Sıkça Sorulan Sorular

Java'da bir HTML dizgisinden PDF nasıl oluşturulur?

HTML dizginizi PdfDocument.renderHtmlAsPdf()'e verin. Yöntem, bellekte bir PdfDocument nesnesi döndürür. Bunu diske yazmak için pdf.saveAs(Paths.get("output.pdf")) çağırın. IronPDF, tam HTML5, CSS3 ve JavaScript'i destekler.

IronPDF hangi Java sürümünü gerektirir?

IronPDF for Java, JDK 8 veya daha yenisini gerektirir. Üretim dağıtımları için önerilen asgari sürüm JDK 11 LTS'dir.

Maven projesine IronPDF nasıl eklenir?

groupId com.ironsoftware ve artifactId ironpdf olan bağımlılık bloğunu pom.xml dosyanızdaki bölümüne ekleyin, ardından mvn install çalıştırın.

Java'da yerel bir HTML dosyasından PDF nasıl oluşturulur?

PdfDocument.renderHtmlFileAsPdf() ile HTML dosyanızın yolunu verin. IronPDF, dosyanın dizinine göre tüm bağlı CSS, resimler ve JavaScript'i otomatik olarak çözümler.

Java'da bir URL'den PDF oluşturabilir miyim?

Evet. Hedef URL ile PdfDocument.renderUrlAsPdf() çağırın. IronPDF sayfayı Chromium kullanarak getirir ve bir PdfDocument döner. HTTP kimlik doğrulaması gerektiren sayfalar için ChromePdfRenderOptions üzerinden kimlik bilgilerini geçin.

Java'da IronPDF ile bir PDF'yi nasıl şifrelerim?

SecurityOptions nesnesi oluşturun, parolanızla setUserPassword() çağırın, ardından saveAs() öncesinde seçenekleri urlPdf.getSecurity().setSecurityOptions()'a geçin.

Bir Spring Boot uygulamasında IronPDF'i nasıl kullanırım?

PDF oluşturma mantığınızı bir @RestController yöntemine enjekte edin. PdfDocument.renderHtmlAsPdf() çağırın, ardından bunun MediaType.APPLICATION_PDF ile bir ResponseEntity olarak döndürmek için pdf.getBinaryData() kullanın.

Java'da IronPDF'te sayfa boyutunu ve yönünü nasıl ayarlarım?

ChromePdfRenderOptions nesnesi oluşturun, setPaperSize() ve setPaperOrientation() çağırın, ardından bunu herhangi bir render yöntemine ikinci argüman olarak geçirin. Sıralama sorunlarından kaçınmak için kağıt boyutunu yönden önce ayarlayın.

IronPDF Java için Linux ve macOS üzerinde çalışır mı?

Evet. IronPDF for Java, Windows, Linux ve macOS üzerinde çalışır. Ayrıca AWS, Azure ve Google Cloud'da dış bir PDF görüntüleyici veya render motoru gerektirmeyen bulut dağıtımlarını destekler.

Lisans anahtarı olmadan PDF'ler filigrana sahip olacak mı?

Evet. Geçerli bir lisans anahtarı olmadan, IronPDF tüm üretilen belgelere bir deneme filigranı ekler. Uygulama başlatıldığında geçerli bir anahtar ile License.setLicenseKey() çağırarak bunu kaldırı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.5 just released
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.