<prompt> Unda programu ya Java ambayo hutoa ripoti za PDF kutoka kwa data iliyohifadhiwa kwenye Hifadhidata ya Azure SQL. Tumia maktaba ya Apache PDFBox kuunda hati za PDF na kuzibadilisha kulingana na kiolezo kilichoainishwa awali. Ripoti zinazozalishwa zinapaswa kuhifadhiwa kwenye chombo cha Azure Blob Storage.  <response>: Ili kuunda programu ya Java ambayo hutoa ripoti za PDF kutoka kwa data iliyohifadhiwa kwenye Hifadhidata ya Azure SQL na kuzihifadhi kwenye chombo cha Hifadhi ya Azure Blob, fuata hatua hizi:1. Weka mazingira yako ya ukuzaji kwa kusakinisha maktaba na zana zinazohitajika.- Sakinisha JDK 8 au matoleo mapya zaidi: Weka Apache Maven: Sakinisha IDE kama IntelliJ IDEA au Eclipse2. Unda mradi mpya wa Maven katika IDE yako uipendayo.3. Ongeza vitegemezi vifuatavyo kwenye faili yako pom.xml:xml com.microsoft.sqlserver mssql-jdbc 9.4.0.jre11 org.apache.pdfbox pdfbox 2.0.24 com.azure azure-storage-blob 12.13.0 4. Badilisha maudhui ya faili ya srcmainjavacomexampleApp.java kwa msimbo ufuatao: javakifurushi com.mfano;agiza org.apache.pdfbox.pdmodel.PDDocument;agiza org.apache.pdfbox.pdmodel.PDPage;agiza org.apache.pdfbox.pdmodel.PDPageContentStream;agiza org.apache.pdfbox.pdmodel.common.PDRectangle;agiza org.apache.pdfbox.pdmodel.font.PDType1Font;agiza java.io.ByteArrayInputStream;agiza java.io.ByteArrayOutputStream;agiza java.io.IOException;kuagiza java.sql.Connection;agiza java.sql.DriverManager;agiza java.sql.ResultSet;agiza java.sql.Statement;Programu ya darasa la umma public static void mainString args inarusha Isipokuwa Badilisha na kamba yako ya unganisho ya Hifadhidata ya Azure SQL String connectionString net;loginTimeout30;; jaribu Connection connection DriverManager.getConnectionconnectionString Taarifa ya taarifa connection.createStatement; ResultSet resultSet statement.executeQueryCHAGUA KUTOKA_meza_yako; Hati ya PDDocument PDDocument mpya; Ukurasa wa PDage PDage mpyaPDRectangle.A4; document.addPageukurasa; jaribu PDPageContentStream contentStream PDpageContentStream mpyahati, ukurasa contentStream.setFontPDType1Font.HELVETICA_BOLD, 12; int yPos 700; wakati resultSet.next Data ya kamba resultSet.getStringcolumn_name; contentStream.beginText; contentStream.newLineAtOffset50, yPos; contentStream.showTextdata; contentStream.endText; yPos - 20; ByteArrayOutputStream pdfOutputStream ByteArrayOutputStream mpya; document.savepdfOutputStream; hati.funga; ByteArrayInputStream pdfInputStream ByteArrayInputStream mpyapdfOutputStream.toByteArray; saveToAzureBlobStoragepdfInputStream, your_container, report.pdf; utupu tuli wa kibinafsi saveToAzureBlobStorageByteArrayInputStream inputStream, String containerName, String blobName Badilisha na kamba yako ya unganisho ya Hifadhi ya Azure Blob String connectionString DefaultEndpointsProtocolhttps;AccountNameyour_account_name;AccountKeyyour_account_key;EndpointSuffixcore.windows.net; BlobServiceClient blobServiceClient new BlobServiceClientBuilder.connectionStringconnectionString.buildClient; BlobContainerClient containerClient blobServiceClient.getBlobContainerClientcontainerName; ikiwa !containerClient.exists kontenaMteja.unda; BlobClient blobClient containerClient.getBlobClientblobName; blobClient.pakiainputStream, input.available, true; 5. Badilisha vishika nafasi katika msimbo na Hifadhidata yako halisi ya Azure SQL na mifuatano ya muunganisho ya Hifadhi ya Azure Blob, jina la jedwali na jina la safu wima.6. Endesha programu kwa kutekeleza mvn compile exec:java kwenye terminal au kuendesha faili ya App.java katika IDE yako.Programu hii ya Java itazalisha ripoti ya PDF kutoka kwa data iliyohifadhiwa katika Hifadhidata ya Azure SQL kwa kutumia maktaba ya Apache PDFBox, iumbike kulingana na kiolezo kilichoainishwa awali, na kuhifadhi ripoti iliyotolewa kwenye chombo cha Hifadhi ya Azure Blob. 