Bilgi Bankası

Java Kullanarak HTML'den PDF Oluşturma [Adım Adım]

Bu makale, Java kullanarak HTML’den PDF’ler oluşturmayı gösterecek. CSS stilleri dahil HTML belgelerini kolayca manipüle edebilir ve render edebilirsiniz.

Aspose.HTML for Java uygulamalarınızın geniş bir HTML manipülasyon görevini gerçekleştirmesini sağlar ve HTML5, CSS3, SVG ve HTML Canvas özelliklerini destekler. API’mizle web sayfalarını yükleyebilir, analiz edebilir, içeriği düzenleyebilir ve sayfaları kaydedip dönüştürebilirsiniz.
Manipüle edebileceğiniz popüler formatlar: XHTML, MHTML, SVG, MD, PDF, XPS, EPUB, PNG, TIFF, JPEG, BMP ve diğerleri.

PDF from HTML in Java

Zengin özellik seti

Aspose.HTML for Java, birçok farklı alanda size çok sayıda özellik sunar:

• Document Object Model - düğümleri düzenlemenize, oluşturmanıza ve kaldırmanıza izin verir ve resmi HTML belgelerine göre oluşturulmuştur.
• Yüksek performanslı dönüştürücüler. Desteklenen dosya formatları hakkında daha fazla bilgi için Özellik Listesi veya Dönüştürme makalelerini ziyaret edin.
• CSS, JavaScript ve diğer yerleşik formatların işlenmesi.

Tek Satır Java Kodu ile HTML’den PDF Oluşturma

Statik Converter sınıfının yöntemlerini kullanarak Java uygulamanızda HTML’den PDF’yi tek bir satır kodla kolayca oluşturabilirsiniz.

// Invoke the ConvertHTML method to convert the HTML to PDF.
com.aspose.html.converters.Converter.convertHTML(
        "<span>Hello World!!</span>",
        ".",
        new com.aspose.html.saving.PdfSaveOptions(),
        "output.pdf"
);

Java Kullanarak HTML’den PDF’yi Satır Satır Oluşturma

HTML’den PDF’yi satır satır oluşturmak için adımlar aşağıdadır:

  1. Önce HtmlDocument sınıfını kullanarak HTML dosyasını yükleyin.
  2. Ardından bir PdfSaveOptions örneği oluşturun.
  3. Converter sınıfının ConvertHTML() yöntemiyle HTML’yi PDF dosyası olarak kaydedin. HTML’den PDF oluşturmak için HTMLDocument , PdfSaveOptions ve çıktı dosya yolunu ConvertHTML() yöntemine geçirmeniz gerekir.
// Prepare an HTML code and save it to the file.
String code = "<span>Hello World!!</span>";
try (java.io.FileWriter fileWriter = new java.io.FileWriter("document.html")) {
    fileWriter.write(code);
}

// Initialize an HTML document from the file
com.aspose.html.HTMLDocument document = new com.aspose.html.HTMLDocument("document.html");
try {
    // Initialize PdfSaveOptions
    com.aspose.html.saving.PdfSaveOptions options = new com.aspose.html.saving.PdfSaveOptions();

    // Convert HTML to PDF
    com.aspose.html.converters.Converter.convertHTML(
            document,
            options,
            "output.pdf"
    );
} finally {
    if (document != null) {
        document.dispose();
    }
}

Kaydetme Seçeneği ile Render İşlemini Özelleştirme

PdfSaveOptions ile render sürecini özelleştirebilir ve sayfa boyutu , dosya izinleri , kenarlar , CSS medya tipi ve daha fazlasını belirtebilirsiniz. Aşağıdaki örnekte PdfSaveOptions nasıl kullanılacağını ve özel sayfa boyutu ve arka plan rengiyle PDF dosyası oluşturulacağını görebilirsiniz:

// Prepare an HTML code and save it to the file
String code = "<span>Hello</span> <span>World!!</span>";
try (java.io.FileWriter fileWriter = new java.io.FileWriter("document.html")) {
    fileWriter.write(code);
}

// Set A5 as a page-size and change the background color to green
com.aspose.html.saving.PdfSaveOptions options = new com.aspose.html.saving.PdfSaveOptions();
com.aspose.html.rendering.PageSetup pageSetup = new com.aspose.html.rendering.PageSetup();
com.aspose.html.drawing.Page anyPage = new com.aspose.html.drawing.Page();
anyPage.setSize(
        new com.aspose.html.drawing.Size(
                com.aspose.html.drawing.Length.fromInches(8.3f),
                com.aspose.html.drawing.Length.fromInches(5.8f)
        )
);
pageSetup.setAnyPage(anyPage);
options.setPageSetup(pageSetup);

options.setBackgroundColor(com.aspose.html.drawing.Color.getGreen());

// Convert HTML document to PDF
com.aspose.html.converters.Converter.convertHTML(
        "document.html",
        options,
        "output.pdf"
);

Fine-Tuning Converters makalesinde, [PdfSaveOptions] hakkında daha fazla bilgi bulabilirsiniz.

Çıktı Akışı Sağlayıcı

Bulut veya veritabanı gibi uzak depolama alanına dosyaları kaydetmek istiyorsanız MemoryStreamProvider arayüzünü uygulayabilirsiniz.
MemoryStreamProvider arayüzü, bir akış oluşturmak ve sayfa ya da belge render edildikten sonra önceden oluşturulan akışı serbest bırakmak için bir geri çağırma nesnesi olarak tasarlanmıştır.

Aşağıda MemoryStreamProvider kullanımına bir örnek göstereceğiz:

package com.aspose.html.examples.java;

// For complete examples and data files, please go to https://github.com/aspose-html/Aspose.HTML-for-Java
public class MemoryStreamProvider implements java.io.Closeable {
    // List of InputStream objects created during the document rendering
    public java.util.List<java.io.InputStream> lStream = new java.util.ArrayList<>();

    @Override
    public void close() throws java.io.IOException {
        for (java.io.InputStream stream : lStream) {
            stream.close();
        }
    }
}
// Create an instance of MemoryStreamProvider
try (MemoryStreamProvider streamProvider = new MemoryStreamProvider()) {
    // Initialize an HTML document
    com.aspose.html.HTMLDocument document = new com.aspose.html.HTMLDocument("<span>Hello World!!</span>", ".");
    try {
        // Convert HTML to PDF by using the MemoryStreamProvider
        com.aspose.html.converters.Converter.convertHTML(
                document,
                new com.aspose.html.saving.PdfSaveOptions(),
                streamProvider.lStream
        );

        // Get access to the memory stream that contains the result data
        java.io.InputStream inputStream = streamProvider.lStream.stream().findFirst().get();

        // Flush the result data to the output file
        try (java.io.FileOutputStream fileOutputStream = new java.io.FileOutputStream("output.pdf")) {
            byte[] buffer = new byte[inputStream.available()];
            inputStream.read(buffer);
            fileOutputStream.write(buffer);
        }
    } finally {
        if (document != null) {
            document.dispose();
        }
    }
}

Aspose tüm ürünleri için teknik destek sağlar, bilgi tabanı makaleleri , dokümantasyon , blog , kod örnekleri , ve demolar gibi kaynaklardan Ücretsiz Destek ve yüksek erişilebilir Ücretli Destek sunar. İhtiyaçlarınıza göre Aspose.HTML for Java’yı uygulamanıza yardımcı olacak uzmanlara ihtiyacınız varsa, en iyi çözüm bizim Ücretli Danışmanlık hizmetimizdir.