Azure Function'da IronPDF for Java Nasıl Çalıştırılır

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

  • IronPDF for Java yalnızca Docker dağıtımını destekler.
  • Zip Dağıtımı desteklenmiyor, çünkü IronPDF çalıştırma zamanında ikili dosyaların çalıştırılmasını gerektirir.

  1. Linux Kullanarak Özel Resimle Fonksiyon Oluşturma için Microsoft Resmi Kılavuzunu Takip Edin
    • Choose a programming language icin -> Java secin
    • Uygulamanız çalışana kadar rehberi takip edin.
  2. IronPDF bağımlılığını ekleyin

    • Bunu en son <version> ile pom'unuza ekleyin:
    <dependencies>
        <dependency>
            <groupId>com.ironsoftware</groupId>
            <artifactId>ironpdf</artifactId>
            <version>2022.xx.x</version>
        </dependency>
        <dependency>
            <groupId>com.ironsoftware</groupId>
            <artifactId>ironpdf-engine-linux-x64</artifactId>
            <version>2022.xx.x</version>
        </dependency>
    </dependencies>
    <dependencies>
        <dependency>
            <groupId>com.ironsoftware</groupId>
            <artifactId>ironpdf</artifactId>
            <version>2022.xx.x</version>
        </dependency>
        <dependency>
            <groupId>com.ironsoftware</groupId>
            <artifactId>ironpdf-engine-linux-x64</artifactId>
            <version>2022.xx.x</version>
        </dependency>
    </dependencies>
    XML
    • Not: Docker'da IronPDF'i calistirmak icin ironpdf-engine-linux-x64 gereklidir.
  3. Bir RenderPdf fonksiyonu ekleyin

    • Function.java icinde yeni bir fonksiyon ekleyin
    • Bu fonksiyon bir URL alacak ve işlenmiş bir PDF döndürecek.
    import com.microsoft.azure.functions.*;
    import com.ironsoftware.ironpdf.PdfDocument;
    import java.util.Optional;
    
    public class Function {
    
        /**
         * Azure function to render a URL as a PDF and return it.
         * Triggered by an HTTP request with a URL query string parameter.
         */
        @FunctionName("RenderPdf")
        public HttpResponseMessage renderPdf(
                @HttpTrigger(
                        name = "req",
                        methods = {HttpMethod.GET, HttpMethod.POST},
                        authLevel = AuthorizationLevel.ANONYMOUS)
                HttpRequestMessage<Optional<String>> request,
                final ExecutionContext context) {
            context.getLogger().info("Java HTTP trigger processed a request. (RenderPdf)");
    
            // Parse query parameter for the URL
            final String url = request.getQueryParameters().get("url");
    
            // Check if the URL parameter is provided
            if (url == null) {
                return request.createResponseBuilder(HttpStatus.BAD_REQUEST)
                        .body("Please pass a url on the query string")
                        .build();
            } else {
                try {
                    context.getLogger().info("IronPDF is attempting to render the URL: " + url);
    
                    // Render the given URL as a PDF
                    PdfDocument pdfDocument = PdfDocument.renderUrlAsPdf(url);
    
                    // Convert the PDF document to binary data
                    byte[] content = pdfDocument.getBinaryData();
    
                    // Return the PDF as an attachment in the response
                    return request.createResponseBuilder(HttpStatus.OK)
                            .body(content)
                            .header("Content-Disposition", "attachment; filename=ironpdf_result.pdf")
                            .build();
                } catch (Exception e) {
                    context.getLogger().severe("Failed to render PDF: " + e.getMessage());
                    return request.createResponseBuilder(HttpStatus.INTERNAL_SERVER_ERROR)
                            .body("An error occurred while rendering the PDF.")
                            .build();
                }
            }
        }
    }
    import com.microsoft.azure.functions.*;
    import com.ironsoftware.ironpdf.PdfDocument;
    import java.util.Optional;
    
    public class Function {
    
        /**
         * Azure function to render a URL as a PDF and return it.
         * Triggered by an HTTP request with a URL query string parameter.
         */
        @FunctionName("RenderPdf")
        public HttpResponseMessage renderPdf(
                @HttpTrigger(
                        name = "req",
                        methods = {HttpMethod.GET, HttpMethod.POST},
                        authLevel = AuthorizationLevel.ANONYMOUS)
                HttpRequestMessage<Optional<String>> request,
                final ExecutionContext context) {
            context.getLogger().info("Java HTTP trigger processed a request. (RenderPdf)");
    
            // Parse query parameter for the URL
            final String url = request.getQueryParameters().get("url");
    
            // Check if the URL parameter is provided
            if (url == null) {
                return request.createResponseBuilder(HttpStatus.BAD_REQUEST)
                        .body("Please pass a url on the query string")
                        .build();
            } else {
                try {
                    context.getLogger().info("IronPDF is attempting to render the URL: " + url);
    
                    // Render the given URL as a PDF
                    PdfDocument pdfDocument = PdfDocument.renderUrlAsPdf(url);
    
                    // Convert the PDF document to binary data
                    byte[] content = pdfDocument.getBinaryData();
    
                    // Return the PDF as an attachment in the response
                    return request.createResponseBuilder(HttpStatus.OK)
                            .body(content)
                            .header("Content-Disposition", "attachment; filename=ironpdf_result.pdf")
                            .build();
                } catch (Exception e) {
                    context.getLogger().severe("Failed to render PDF: " + e.getMessage());
                    return request.createResponseBuilder(HttpStatus.INTERNAL_SERVER_ERROR)
                            .body("An error occurred while rendering the PDF.")
                            .build();
                }
            }
        }
    }
    JAVA
  4. Dockerfile'ı güncelleyin

    • Gerekli IronPDF Linux paketlerini ekleyin. Örnekten, temel Docker imaji mcr.microsoft.com/azure-functions/java:4-java$JAVA_VERSION-build olup, Debian 11 uzerine kuruludur. Bu nedenle, Dockerfile'a bu paketleri eklememiz gerekiyor.
    RUN apt update \
    && apt install -y libgdiplus libxkbcommon-x11-0 libc6 libc6-dev libgtk2.0-0 libnss3 \
                     libatk-bridge2.0-0 libx11-xcb1 libxcb-dri3-0 libdrm-common libgbm1 \
                     libasound2 libxrender1 libfontconfig1 libxshmfence1
    RUN apt-get install -y xvfb libva-dev libgdiplus
  5. İşlevinizi Azure'a yeniden dağıtın
    1. Oluştur & paketle: mvn clean package
    2. Docker imaji yapılandırin: docker build --tag <DOCKER_ID>/azurefunctionsimage:v1.0.0 .
    3. Docker imajini itin: docker push <DOCKER_ID>/azurefunctionsimage:v1.0.0
  6. Azure işlevini güncelleyin:

      az functionapp create --name <APP_NAME> --storage-account <STORAGE_NAME> \
                            --resource-group AzureFunctionsContainers-rg --plan myPremiumPlan \
                            --deployment-container-image-name <DOCKER_ID>/azurefunctionsimage:v1.0.0
      az functionapp create --name <APP_NAME> --storage-account <STORAGE_NAME> \
                            --resource-group AzureFunctionsContainers-rg --plan myPremiumPlan \
                            --deployment-container-image-name <DOCKER_ID>/azurefunctionsimage:v1.0.0
    SHELL
  7. IronPDF'yi kullanarak
    • Fonksiyonu https://<APP_NAME>.azurewebsites.net/api/RenderPdf?url=https://www.google.com adresinde tetikleyin
    • Not: İşlev ilk kez tetiklendiğinde, başlatmayla ilgili yavaşlık veya başarısızlık nedeniyle yavaş olabilir, ancak bundan sonra tutarlı performans göstermelidir.

Sıkça Sorulan Sorular

Azure Function kullanarak Java'da bir PDF uretici nasıl oluşturabilirim?

IronPDF'yi Docker araciligiyla yayimlayarak Azure Function kullanarak Java'da bir PDF uretici oluşturabilirsiniz. Bu, PDF oluşturma işlemlerini bir Azure Function ortamina dahil etmek için IronPDF kütüphanesinin kullanilmasini icerir.

Neden IronPDF için Azure Function'larda Docker yayilimi gereklidir?

IronPDF için Azure Function'larda Docker yayilimi gereklidir cunku çalışma zamaninda ikili dosyalarin çalışmasi gerekir ve bu, Zip yayilim yöntemleriyle desteklenmez.

Bir Maven projesine IronPDF bagimliliklari nasıl eklenir?

Bir Maven projesine IronPDF bagimliliklari eklemek için IronPDF ve `ironpdf-engine-linux-x64` kütüphanelerini `pom.xml` dosyasina dahil edin. Uyumluluk için en son sürüm numaralarini kullandiginizdan emin olun.

Azure Function'da RenderPdf fonksiyonu nasıl çalışir?

Azure Function'daki RenderPdf fonksiyonu, bir HTTP isteginden bir URL okur, IronPDF'in `PdfDocument.renderUrlAsPdf` methodunu kullanarak URL'yi bir PDF olarak dönüştürur ve yanitta PDF'yi bir ek olarak dondurur.

IronPDF için Dockerfile'da hangi Linux paketleri gereklidir?

IronPDF için Dockerfile, Debian tabanli bir imajda doğru çalışma için `libgdiplus`, `libxkbcommon-x11-0`, `libc6` ve `libgtk2.0-0` gibi Linux paketlerini icermelidir.

PDF oluşturma fonksiyonunu ilk kez tetikledigimde ne beklemeliyim?

PDF oluşturma fonksiyonunu ilk kez tetiklediginde, başlangic süreçleri nedeniyle yavaslayabilir veya basarisiz olabilir. Sonraki çalıştırmalar daha istikrarli olmali.

Azure Function için Docker imajini nasıl yayimlayabilirim?

Bir Azure Function için Docker imajini yayimlamak için `mvn clean package` ile projenizi derleyin, Docker imajini oluşturun, bir Docker kayıt deposuna yükleyin ve Azure Function'u bu yeni imajla guncelleyin.

Azure'da bir PDF oluşturma fonksiyonunu tetiklemek için doğru URL formati nedir?

PDF oluşturma fonksiyonunu tetiklemek için URL formatini kullanin: `https://.azurewebsites.net/api/RenderPdf?url=`.

Kendi Docker imajinizi kullanarak bir Azure Function kurmak için kaynaklari nerede bulabilirim?

Kendi Docker imajinizi kullanarak bir Azure Function kurmak için Microsoft Resmi Rehberine Linux uzerinde Kendi Imajinizla Azure Function Oluşturma konusunda basvurabilirsiniz.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

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

Hala Kaydiriyor musunuz?

Hızlı bir kanit mi istiyorsunuz?
bir örnek çalıştır HTML'nizin PDF olduğunu izleyin.