Java'da PDF Dosyalarını Yazdırma

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

IronPDF for Java, PDF dosyalarını kullanıcı etkileşimi ile veya etkileşimsiz olarak programlı bir şekilde yazdırmanıza olanak tanır. PDF'leri doğrudan fiziksel yazıcılara gönderebilir, kopya ve sayfa aralıkları gibi yazdırma ayarlarını kontrol edebilir ve Java uygulamalarında belge yazdırma iş akışlarını otomatikleştirebilirsiniz. İster kurumsal belge yönetim sistemleri geliştiriyor ister fatura üretimini otomatik hale getiriyor olun, IronPDF, Java'nın yazdırma altyapısına düzgün bir şekilde entegre olan yazdırma yetenekleri sağlar. Ayrıca, PDF'leri dijital olarak imzalama veya görüntüleri PDF'ye dönüştürme gibi diğer PDF görevleriyle kullanabilir, daha geniş bir belge işleme hatlarının bir parçası olarak.

IronPDF for Java yazdırma iş akışı, bir PDF belgesinin programlı olarak yazıcıya gönderilmesini göstermektedir

Hızlı Başlangıç: Java'da Bir PDF Dosyası Yazdırma

  1. Projenize IronPDF bağımlılığı ekleyin
  2. Lisans anahtarınızı License.setLicenseKey() ile ayarlayın
  3. PdfDocument kullanarak bir PDF yükleyin veya oluşturun
  4. İletişim kutusu tabanlı yazdırma için pdf.print()'yi, doğrudan yazdırma için pdf.printWithoutDialog()'yi çağırın
  5. PDF seçtiğiniz veya varsayılan yazıcınıza gönderilir

```java :title=Hızlı Başlangıç //:path=/static-assets/ironpdf-java/content-code-examples/how-to/print-pdf/quickstart.java import com.ironsoftware.IronPDF.*;

public class PrintPDFQuickstart { public static void main(String[] args) { // Lisans anahtarınızı uygulayın Lisans.setLicenseKey("LİSANS-ANAHTARINIZ");

    // HTML'den bir PDF oluşturun
    PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Invoice #12345</h1><p>Total: $100.00</p>");

    // Dialog ile yazdır (etkileşimli)
    pdf.PRINT();

    // Veya dialog olmadan yazdır (otomatik)
    // PDF.printWithoutDialog();
}

}


<div class="hsg-featured-snippet">
    <h3>Java'da PDF Dosyalarını Nasıl Yazdırırım?</h3>
    <ol>
        <li><a class="js-modal-open" data-modal-id="download-modal" href="#download-modal">PDF dosyalarını yazdırmak için Java kütüphanesini yükleyin</a></li>
        <li>Mevcut bir PDF'yi yükleyin veya yenisini oluşturun</li>
        <li><code>print</code> yöntemini bir dialog ile yazdırmak için kullanın</li>
        <li><code>printWithoutDialog</code> yöntemini bir dialog olmadan yazdırmak için kullanın</li>
        <li>Yazdırılan PDF belgesini kontrol edin</li>
    </ol>
</div>

<hr>

## PFD'leri Kullanıcı Etkileşimi ile Nasıl Yazdırırım?

Yazdırmak istediğiniz PDF belgesini yükleyin, ardından `pdf.print()` komutunu çağırın. Yöntem, kullanıcıların yazıcıyı, sayfa aralığını ve iş gönderilmeden önce diğer seçenekleri seçmesine olanak tanıyan standart yazdırma diyalogunu açar. Bu, işletim sisteminin yerel yazdırma işlevine entegre olur, bu yüzden makinede kurulu olan her yazıcı (ağ ve sanal yazıcılar dahil) diyalog penceresinde otomatik olarak görünür.

```java
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/print-pdf/interactive-printing.java
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;

public class InteractivePrinting {
    public static void main(String[] args) {
        // Set the license key for IronPDF
        License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

        try {
            // Option 1: Create a new PDF from HTML
            PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Monthly Report</h1><p>Sales data...</p>");

            // Option 2: Load an existing PDF file
            // PdfDocument pdf = PdfDocument.fromFile(Paths.get("report.pdf"));

            // Print the PDF with a print dialog for user interaction
            pdf.PRINT();

            System.out.println("Print job sent to selected printer");

        } catch (IOException e) {
            System.err.println("Error printing PDF: " + e.getMessage());
        }
    }
}

Yazdırma diyaloğu, işlem yazıcıya gönderilmeden önce kullanıcı tarafından seçilen ayarları kabul eder.

IronPDF Java entegrasyonunu sistem yazdırma iletişim kutusuyla gösteren, yazıcı seçimi, sayfa aralığı ve kopya sayısı seçeneklerini görüntüleyen yazdırma iletişim kutusu

Diyalog Tabanlı Yazdırmayı Ne Zaman Kullanmalısınız?

Diyalog tabanlı yazdırma, kullanıcılara yazıcı seçimi, sayfa aralığı, kopya sayısı ve kağıt yönelimi gibi ayarlar üzerinde kontrol sunar. Bu yaklaşım, masaüstü uygulamaları, belge yönetim sistemleri veya kullanıcıların işi göndermeden önce ayarları gözden geçirmesi ve ayarlaması gereken her türlü senaryoya uygundur.

print()'yi gerektiren yaygın durumlar:

  • Yazdırma önizleme işlevselliğine sahip masaüstü uygulamaları
  • Kullanıcıların belirli sayfa aralıklarını seçtiği belge iş akış sistemleri
  • Farklı yazıcıların farklı amaçlarla hizmet verdiği ofis ortamları
  • Hassas belgeleri yazdırmadan önce kullanıcı onayı gerektiren uygulamalar

Yazdırmadan önce birden çok PDF'yi birleştirmesi gereken uygulamalar için, belgeleri önce birleştirin, ardından birleşik sonucu yazdırma diyaloguna geçirin. Web içeriğinden baskıya hazır PDF'ler oluşturma kılavuzu için IronPDF'nin HTML'den PDF'ye eğitimini inceleyin.

Yazdırma Diyaloğu Hangi Yapılandırmayı Sunuyor?

Standart Java yazdırma diyaloğu, sayfa yönelimi, medya boyutu, yazdırma kalitesi ve sıralama düzeni gibi tüm işletim sistemi düzeyinde yazdırma niteliklerini yüzeye çıkarır. IronPDF, öznitelik müzakeresi için altta yatan javax.print API'sine başvurur, bu nedenle kullanılabilir seçenekler her yazıcının bildirdiği özelliklere bağlıdır. Windows'ta, yerel Win32 yazdırma diyaloğu görünür; Linux ve macOS'ta ise GTK veya Cocoa diyaloğu kullanılır. Java uygulamanızın, sunum otomatik olarak işletim sistemi tarafından yapıldığı için özel bir kullanıcı arayüzü koduna ihtiyacı yoktur.


Kullanıcı Komutları Olmadan PDF'leri Nasıl Yazdırabilirim?

printWithoutDialog() yöntemi, yazdırma iletişim kutusunu atlar ve belgeyi doğrudan varsayılan yazıcıya gönderir. Akışın herhangi bir noktasında kullanıcı etkileşimi gerekmiyor. Bu, tutarlı, bağımsız çıktının hedef olduğu sunucu tarafı uygulamaları, toplu işleme sistemleri ve planlı iş akışları için doğru seçenek yapar.

//:path=/static-assets/ironpdf-java/content-code-examples/how-to/print-pdf/automated-printing.java
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Paths;
import java.time.LocalDateTime;

public class AutomatedPrinting {
    public static void main(String[] args) {
        // Set the license key for IronPDF
        License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

        try {
            // Create a batch of invoices
            for (int i = 1; i <= 10; i++) {
                String html = String.format(
                    "<h1>Invoice #%d</h1>" +
                    "<p>Date: %s</p>" +
                    "<p>Amount: $%.2f</p>",
                    i, LocalDateTime.now(), i * 100.0
                );

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

                // Print directly without showing dialog
                pdf.printWithoutDialog();

                System.out.println("Printed invoice #" + i);

                // Save a copy for records
                pdf.saveAs(Paths.get("invoices/invoice_" + i + ".pdf"));
            }

        } catch (IOException e) {
            System.err.println("Printing error: " + e.getMessage());
        }
    }
}
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/print-pdf/automated-printing.java
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Paths;
import java.time.LocalDateTime;

public class AutomatedPrinting {
    public static void main(String[] args) {
        // Set the license key for IronPDF
        License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

        try {
            // Create a batch of invoices
            for (int i = 1; i <= 10; i++) {
                String html = String.format(
                    "<h1>Invoice #%d</h1>" +
                    "<p>Date: %s</p>" +
                    "<p>Amount: $%.2f</p>",
                    i, LocalDateTime.now(), i * 100.0
                );

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

                // Print directly without showing dialog
                pdf.printWithoutDialog();

                System.out.println("Printed invoice #" + i);

                // Save a copy for records
                pdf.saveAs(Paths.get("invoices/invoice_" + i + ".pdf"));
            }

        } catch (IOException e) {
            System.err.println("Printing error: " + e.getMessage());
        }
    }
}
JAVA

Yukarıdaki döngü, her faturayı bir HTML şablonundan işler ve hemen varsayılan yazıcıya gönderir. Diyalog döngüyü engellemediği için, tüm toplu işlem kesintisiz tamamlanır.

İpuçlarıYazıcıyı bir sunucuya otomatik yüklemeye dağıtmadan önce, hedef makinada varsayılan bir yazıcı yapılandırıldığını doğrulayın. Başsız Linux sunucularında, CUPS gibi sanal bir yazıcı veya bir PDF dosyasına yazdırma hedefi iyi çalışır.

Sessiz Yazdırmanın Yararları Nelerdir?

Sessiz yazdırma, kullanıcı komutlarını ortadan kaldırarak tamamen otomatik iş akışları sağlar. Ana avantajlar şunlardır:

  • Hız: Kullanıcı etkileşimi yok, bu nedenle büyük gruplar için daha hızlı işlem
  • Tutarlılık: Aynı yazdırma ayarları her seferinde uygulanır
  • Otomasyon: Planlı görevler ve arka plan servisleri için çalışır
  • Entegrasyon: Mevcut otomatik iş akışlarına modifikasyona gerek olmadan uyar

Büyük belgeleri işlerken, dosya boyutlarını küçültmek için IronPDF'nin Java için PDF sıkıştırmasını ilk olarak uygulayın ve böylece hem yazdırma süresini hem de kaynak kullanımını azaltın.

Doğrudan Yazdırma Ne Zaman En Etkili Olur?

Otomatik belge iş akışları, zamanlanmış yazdırma işleri veya manuel müdahale olmadan yazdırma işleminin gerçekleşmesi gereken arka uç hizmetleri için printWithoutDialog() kullanın. Yaygın kullanım alanları şunlardır:

  • Satış Noktası Sistemleri: İşlemlerden sonra makbuzları otomatik olarak yazdırın
  • Rapor Oluşturma: Günlük veya haftalık raporlar için planlama ve yazdırma
  • Etiket Yazdırma: Depo yönetim sistemlerinde gönderim etiketlerini yazdırın
  • Belge İşleme: Sözleşmeler veya yasal belgeleri toplu yazdırma

Java'da filigran ekleme veya içeriği damgalama gereksinimi olan uygulamalar için, PDF'leri ilk olarak işleyin, sonra doğrudan yazıcıya gönderin.


Otomatik İş Akışlarında Yazdırma Hatalarını Nasıl Yönetirim?

Diyalogsuz yazdırırken, uygun hata yönetimi esastır. Yazıcı müsaitliği sorunları, kağıt sıkışmaları ve bağlantı problemleri, tüm bir partiyi kesintiye uğratabilir. Yazdırma çağrılarını try-catch bloklarında sarma ve bir tekrar stratejisi uygulama, geçici hatalar oluştuğunda iş akışlarını çalışır durumda tutar.

//:path=/static-assets/ironpdf-java/content-code-examples/how-to/print-pdf/retry-print-handler.java
import com.ironsoftware.IronPDF.*;
import java.io.IOException;
import java.util.logging.*;

public class RobustPrintHandler {
    private static final Logger logger = Logger.getLogger(RobustPrintHandler.class.getName());

    public static void safePrint(PdfDocument pdf, int maxRetries) {
        int attempts = 0;
        boolean success = false;

        while (attempts < maxRetries && !success) {
            try {
                attempts++;
                pdf.printWithoutDialog();
                success = true;
                logger.info("Print successful on attempt " + attempts);

            } catch (Exception e) {
                logger.warning("Print attempt " + attempts + " failed: " + e.getMessage());

                if (attempts < maxRetries) {
                    try {
                        // Wait before retrying
                        Thread.sleep(2000);
                    } catch (InterruptedException ie) {
                        Thread.currentThread().interrupt();
                    }
                } else {
                    // Max retries reached
                    logger.severe("Print failed after " + maxRetries + " attempts");
                }
            }
        }
    }
}
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/print-pdf/retry-print-handler.java
import com.ironsoftware.IronPDF.*;
import java.io.IOException;
import java.util.logging.*;

public class RobustPrintHandler {
    private static final Logger logger = Logger.getLogger(RobustPrintHandler.class.getName());

    public static void safePrint(PdfDocument pdf, int maxRetries) {
        int attempts = 0;
        boolean success = false;

        while (attempts < maxRetries && !success) {
            try {
                attempts++;
                pdf.printWithoutDialog();
                success = true;
                logger.info("Print successful on attempt " + attempts);

            } catch (Exception e) {
                logger.warning("Print attempt " + attempts + " failed: " + e.getMessage());

                if (attempts < maxRetries) {
                    try {
                        // Wait before retrying
                        Thread.sleep(2000);
                    } catch (InterruptedException ie) {
                        Thread.currentThread().interrupt();
                    }
                } else {
                    // Max retries reached
                    logger.severe("Print failed after " + maxRetries + " attempts");
                }
            }
        }
    }
}
JAVA

safePrint yöntemi, denemeler arasında iki saniyelik bir ara vererek maxRetries defaya kadar yeniden deneme yapar. Her deneme günlüğe kaydedilir, böylece hataları belirli işlere kadar izleyebilirsiniz. Bir kez tekrar sınırına ulaşıldığında, yöntem ciddi bir mesaj kaydeder. Bundan sonra, uygulamanız belgeyi diske kaydedebilir, daha sonra için sıraya alabilir veya bir idari yetkiliyi bilgilendirebilir.

ÖnemliJava standart kütüphanesinin bir parçası olan javax.print API, IronPDF'nin yazdırma entegrasyonunun temelini oluşturur. Düşük seviyeli yazıcı keşfi ve öznitelik yapılandırması için Oracle'ın web sitesindeki Java SE javax.print belgelerine bakın.

Hangi Günlük ve İzleme Uygulamalarına Uymalısınız?

Üretim yazdırma iş akışları uygularken, bu uygulamaları göz önünde bulundurun:

  1. Yazıcı İzleme: İşleri göndermeden önce çevrimdışı bir cihaza karşı sıraya almaktan kaçınmak için yazıcı durumu kontrol edin
  2. Sıra Yönetimi: Tek bir yazıcıyı aşırı yüklemekten kaçınmak için yazdırma sırasını izleyin
  3. Denetleme Kaydı: Her yazdırma işini (zaman damgası, belge adı, yazıcı ve sonuç) uyumluluk amaçlı kaydedin
  4. Yedekleme Seçenekleri: Ana yazıcı kullanılabilir olmadığında alternatif yazıcılar veya dosyaya kaydetme yedekleme yapılandırın

Karmaşık yazdırma gereksinimleri için, IronPDF'nin Java'da PDF formları oluşturma veya HTML şablonlarından belgeleri yazdırmadan önce oluşturma özelliklerini keşfedin. Apache PDFBox projesi ayrıca Java'nın alttaki PDF belirtimiyle nasıl etkileştiğini anlamak için kullanışlı bir referansdır.

Yazdırma İşi Kuyruğunu Nasıl Yapılandırmalısınız?

Yüksek geçişli sistemler için, yazdırma işi gönderimini yürütmeden ayırmak, yazıcı doygunluğuna karşı koruma sağlar. Uygulamanızın PdfDocument nesnelerini kuyruğa eklediği ve özel bir PRINT iş parçacığının bunları kuyruktan alıp dağıttığı üretici-tüketici modeli, yoğun yük altında bile ana uygulamanın yanıt verebilirliğini korur. Java'nın BlockingQueue'dan java.util.concurrent'e geçişi burada iyi sonuç verir: PRINT iş parçacığı bir döngü içinde queue.take()'yi çağırır, gelen her belgeyi yazdırır ve sonucu günlüğe kaydeder. Bu kalıp aynı zamanda öncelik düzeyleri, hız sınırlandırma veya tekrar bütçesini tüketen işler için bir ölü harf kuyruğu eklemeyi kolaylaştırır.


Java'da PDF Yazdırma İçin Sonraki Adımlar Nelerdir?

Bu kılavuzda iki yaklaşım ele alınmıştır: kullanıcıların kontrol gerektiren masaüstü uygulamaları için print() aracılığıyla etkileşimli PRINT ve otomatik toplu iş akışları için printWithoutDialog() aracılığıyla sessiz PRINT. Her iki yöntem de Java'nın standart yazdırma altyapısıyla entegre olur ve işletim sistemine kurulu herhangi bir yazıcı ile çalışır.

Projenize IronPDF eklemek ve yazdırmaya başlamak için ücretsiz denemenizi başlatın. Kredi kartı gerekmiyor. Dağıtmaya hazır olduğunuzda, ekibiniz veya kuruluşunuz için lisanslama seçeneklerini görün.

IronPDF'nin başka neler yapabileceğini görmeye hazır mısınız? Tam eğitim sayfasını buradan inceleyin: Java PDF Yazdırma Eğitimi

Sıkça Sorulan Sorular

Java'da bir PDF dosyasını yazdırma dialoguyla nasıl yazdırırım?

PdfDocument.fromFile() ile PDF'nizi yükleyin veya renderHtmlAsPdf() kullanarak bir tane oluşturun, ardından pdf.print() çağırın. Bu, kullanıcıların yazıcı, sayfa aralıkları, kopya sayısı ve diğer ayarları seçebileceği standart sistem yazdırma diyalogunu açar ve iş göndermeden önce.

Java'da bir PDF'yi diyalog göstermeden nasıl yazdırırım?

IronPDF'nin printWithoutDialog() metodunu kullanın. Bu, PDF'yi doğrudan varsayılan yazıcıya gönderir, kullanıcı etkileşimi gerektirmeden, toplu işleme, sunucu tarafı hizmetleri ve planlanmış yazdırma işleri için uygundur.

Java'da IronPDF ile PDF'leri yazdırmak için gereken ön koşullar nelerdir?

Maven veya Gradle aracılığıyla Java projenize IronPDF'yi bağımlılık olarak ekleyin ve ardından yazdırmadan önce License.setLicenseKey() çağırın. Kütüphane, Java'nın javax.print altyapısı ile entegre olur ve işletim sisteminizde yüklü tüm yazıcılarla çalışır.

Yazdırmadan önce HTML'den bir PDF'yi nasıl oluştururum?

Bir HTML metni veya URL ile PdfDocument.renderHtmlAsPdf() çağırın. Yöntem hemen pdf.print() veya printWithoutDialog()'a geçebileceğiniz bir PdfDocument döner, ilk önce diske kaydetmeden.

IronPDF for Java'da print() ve printWithoutDialog() arasındaki fark nedir?

print(), kullanıcıların yazıcılarını seçip ayarları iş başlamadan önce yapılandırabilmesi için etkileşimli bir sistem diyaloğu açar. printWithoutDialog(), tüm diyalogları atlayıp işi doğrudan varsayılan yazıcıya yönlendirir. Masaüstü uygulamalarında print() ve otomatik veya sunucu tarafı iş akışlarında printWithoutDialog() kullanın.

Varolan bir PDF dosyasını yükleyip IronPDF ile yazdırabilir miyim?

Evet. Herhangi bir standart PDF'yi yüklemek için PdfDocument.fromFile(Paths.get("yourfile.pdf")) kullanın ve ardından her iki yazdırma yöntemini de çağırın. IronPDF, dosya yollarından, bayt dizilerinden veya giriş akışlarından PDF'lerin yüklenmesini destekler.

Java toplu iş akışında yazdırma hatalarını ve tekrarları nasıl ele alırım?

printWithoutDialog()'u bir try-catch bloğuna sarın. Başarısızlıkta, hatayı günlüğe kaydedin ve kısa bir süre sonra Thread.sleep() kullanarak tekrar deneyin. Yüksek düzeyde bir mesaj günlüğe kaydedin ve maksimum deneme sayısına ulaşıldığında izleme sisteminizin kalıcı hatalar konusunda uyarı verebilmesi için bir giriş sayacı izleyin.

Java için IronPDF, başsız Linux sunucularında çalışır mı?

Evet. Başsız sunucularda, PDF veya dosyaya yazdırma hedefi ile sanal bir yazıcı (CUPS gibi) yapılandırın. IronPDF'nin printWithoutDialog() metodu işleri OS üzerinde tanımlanan varsayılan yazıcıya gönderir, bu nedenle herhangi bir CUPS tarafından yönetilen yazıcı hedefi desteklenir.

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.