To create a Java program that generates PDF reports from data stored in an Azure SQL Database and saves them to an Azure Blob Storage container, follow these steps:

1. Set up your development environment by installing the required libraries and tools.

- Install JDK 8 or later: https://www.oracle.com/java/technologies/javase-downloads.html
- Install Apache Maven: https://maven.apache.org/download.cgi
- Install an IDE like IntelliJ IDEA or Eclipse

2. Create a new Maven project in your favorite IDE.

3. Add the following dependencies to your `pom.xml` file:

```xml
<dependencies>
    <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>mssql-jdbc</artifactId>
        <version>9.4.0.jre11</version>
    </dependency>
    <dependency>
        <groupId>org.apache.pdfbox</groupId>
        <artifactId>pdfbox</artifactId>
        <version>2.0.24</version>
    </dependency>
    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-storage-blob</artifactId>
        <version>12.13.0</version>
    </dependency>
</dependencies>
```

4. Replace the contents of the `src/main/java/com/example/App.java` file with the following code:

```java
package com.example;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.font.PDType1Font;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class App {
    public static void main(String[] args) throws Exception {
        // Replace with your Azure SQL Database connection string
        String connectionString = "jdbc:sqlserver://your_server.database.windows.net:1433;database=your_database;user=your_user@your_server;password=your_password;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;";
        
        try (Connection connection = DriverManager.getConnection(connectionString)) {
            Statement statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery("SELECT * FROM your_table");

            PDDocument document = new PDDocument();
            PDPage page = new PDPage(PDRectangle.A4);
            document.addPage(page);

            try (PDPageContentStream contentStream = new PDPageContentStream(document, page)) {
                contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12);
                int yPos = 700;
                while (resultSet.next()) {
                    String data = resultSet.getString("column_name");
                    contentStream.beginText();
                    contentStream.newLineAtOffset(50, yPos);
                    contentStream.showText(data);
                    contentStream.endText();
                    yPos -= 20;
                }
            }

            ByteArrayOutputStream pdfOutputStream = new ByteArrayOutputStream();
            document.save(pdfOutputStream);
            document.close();

            ByteArrayInputStream pdfInputStream = new ByteArrayInputStream(pdfOutputStream.toByteArray());
            saveToAzureBlobStorage(pdfInputStream, "your_container", "report.pdf");
        }
    }

    private static void saveToAzureBlobStorage(ByteArrayInputStream inputStream, String containerName, String blobName) {
        // Replace with your Azure Blob Storage connection string
        String connectionString = "DefaultEndpointsProtocol=https;AccountName=your_account_name;AccountKey=your_account_key;EndpointSuffix=core.windows.net";

        BlobServiceClient blobServiceClient = new BlobServiceClientBuilder().connectionString(connectionString).buildClient();
        BlobContainerClient containerClient = blobServiceClient.getBlobContainerClient(containerName);
        if (!containerClient.exists()) {
            containerClient.create();
        }

        BlobClient blobClient = containerClient.getBlobClient(blobName);
        blobClient.upload(inputStream, inputStream.available(), true);
    }
}
```

5. Replace the placeholders in the code with your actual Azure SQL Database and Azure Blob Storage connection strings, table name, and column name.

6. Run the program by executing `mvn compile exec:java` in the terminal or running the `App.java` file in your IDE.

This Java program will generate a PDF report from data stored in an Azure SQL Database using Apache PDFBox library, format it according to a predefined template, and save the generated report to an Azure Blob Storage container.
Azure SQL 데이터베이스에 저장된 데이터에서 PDF 보고서를 생성하고 이를 Azure Blob Storage 컨테이너에 저장하는 Java 프로그램을 만들려면 다음 단계를 따르세요.

1. 필요한 라이브러리 및 도구를 설치하여 개발 환경을 설정합니다.

- JDK 8 이상 설치: https://www.oracle.com/java/technologies/javase-downloads.html
- Apache Maven 설치: https://maven.apache.org/download.cgi
- IntelliJ IDEA 또는 Eclipse와 같은 IDE 설치

2. 선호하는 IDE에서 새 Maven 프로젝트를 생성합니다.

3. 다음 종속성을 `pom.xml` 파일에 추가합니다:

```xml
<dependencies>
    <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>mssql-jdbc</artifactId>
        <version>9.4.0.jre11</version>
    </dependency>
    <dependency>
        <groupId>org.apache.pdfbox</groupId>
        <artifactId>pdfbox</artifactId>
        <version>2.0.24</version>
    </dependency>
    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-storage-blob</artifactId>
        <version>12.13.0</version>
    </dependency>
</dependencies>
```

4. `src/main/java/com/example/App.java` 파일의 내용을 다음 코드로 바꿉니다:

```java
package com.example;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.font.PDType1Font;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class App {
    public static void main(String[] args) throws Exception {
        // Replace with your Azure SQL Database connection string
        String connectionString = "jdbc:sqlserver://your_server.database.windows.net:1433;database=your_database;user=your_user@your_server;password=your_password;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;";
        
        try (Connection connection = DriverManager.getConnection(connectionString)) {
            Statement statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery("SELECT * FROM your_table");

            PDDocument document = new PDDocument();
            PDPage page = new PDPage(PDRectangle.A4);
            document.addPage(page);

            try (PDPageContentStream contentStream = new PDPageContentStream(document, page)) {
                contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12);
                int yPos = 700;
                while (resultSet.next()) {
                    String data = resultSet.getString("column_name");
                    contentStream.beginText();
                    contentStream.newLineAtOffset(50, yPos);
                    contentStream.showText(data);
                    contentStream.endText();
                    yPos -= 20;
                }
            }

            ByteArrayOutputStream pdfOutputStream = new ByteArrayOutputStream();
            document.save(pdfOutputStream);
            document.close();

            ByteArrayInputStream pdfInputStream = new ByteArrayInputStream(pdfOutputStream.toByteArray());
            saveToAzureBlobStorage(pdfInputStream, "your_container", "report.pdf");
        }
    }

    private static void saveToAzureBlobStorage(ByteArrayInputStream inputStream, String containerName, String blobName) {
        // Replace with your Azure Blob Storage connection string
        String connectionString = "DefaultEndpointsProtocol=https;AccountName=your_account_name;AccountKey=your_account_key;EndpointSuffix=core.windows.net";

        BlobServiceClient blobServiceClient = new BlobServiceClientBuilder().connectionString(connectionString).buildClient();
        BlobContainerClient containerClient = blobServiceClient.getBlobContainerClient(containerName);
        if (!containerClient.exists()) {
            containerClient.create();
        }

        BlobClient blobClient = containerClient.getBlobClient(blobName);
        blobClient.upload(inputStream, inputStream.available(), true);
    }
}
```

5. 코드의 자리 표시자를 실제 Azure SQL 데이터베이스 및 Azure Blob 저장소 연결 문자열, 테이블 이름 및 열 이름으로 바꿉니다.

6. 터미널에서 `mvn compile exec:java`를 실행하거나 IDE에서 `App.java` 파일을 실행하여 프로그램을 실행합니다.

이 Java 프로그램은 Apache PDFBox 라이브러리를 사용하여 Azure SQL 데이터베이스에 저장된 데이터에서 PDF 보고서를 생성하고 미리 정의된 템플릿에 따라 서식을 지정한 후 생성된 보고서를 Azure Blob Storage 컨테이너에 저장합니다.