HTML, web geliştirme için önde gelen bir dosya biçimidir ve modern web tarayıcılarının çoğu HTML özelliklerini destekler. Platformdan bağımsız olmasına ve herhangi bir işletim sisteminde görüntülenebilmesine rağmen, kötü amaçlı komut dosyalarına da açıktır ve internet üzerinden kolayca paylaşılamaz. Bu nedenle, bu tür durumlardan kaçınmak ve uzun süreli arşivleme için bir web sayfasını PDF(Taşınabilir Belge Biçimi) olarak kaydederiz. Bu nedenle, bu makalede, Java REST API’yi kullanarak HTML’yi PDF’ye dönüştürme adımlarını ele alacağız.
HTML’den PDF’e Dönüştürme API’si
Aspose.HTML Cloud SDK for Java, Java uygulamaları içinde HTML işleme işlemleri gerçekleştirmenizi sağlar. Ayrıca HTML’yi sabit düzen belge biçimlerine (PDF veya XPS) dönüştürebiliriz. Bu nedenle dönüştürmeyi gerçekleştirmek için kaynak HTML’yi (XHTML, MHTML, EPUB, Markdown) bulut depolama alanından yükleyebilir veya bir web sayfasının URL’sini sağlayabiliriz. Şimdi SDK’yı kullanmak için lütfen maven yapı projenizin pom.xml dosyasına aşağıdaki bağımlılığı ekleyin, böylece aspose-html.jar projeye eklenebilir:
<repositories>
<repository>
<id>aspose-cloud</id>
<name>artifact.aspose-cloud-releases</name>
<url>https://artifact.aspose.cloud/repo</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-html-cloud</artifactId>
<version>20.7.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
Java’da HTML’yi PDF’ye dönüştürün
Java uygulamasında web sayfasını PDF’ye dönüştürmek için lütfen aşağıda verilen adımları izleyin.
- Öncelikle Configuration.setAPPSID’ye karşı detayları belirtmemiz gerekiyor.
- İkinci olarak Configuration.setAPIKEY bilgisini belirtiyoruz.
- Üçüncüsü, setBasePath(..) ayrıntılarını ayarlıyoruz.
- Daha sonra setAuthPath(..) detaylarını belirtmemiz gerekiyor.
- setUserAgent(…)‘ı WebKit olarak ayarlayın.
- Kendimize yardımcı olması açısından setDebug(..)‘ı true olarak ayarlayacağız.
- API ayrıca, sonuç dosyası için kenar boşluğu ayrıntılarını belirtmemize de olanak tanır.
- Bir sonraki adım, giriş HTML dosyasını okumak ve onu Dosya örneğine yüklemektir.
- Şimdi RequestBody sınıfının bir örneğini oluşturmamız ve medyayı “multipart/form-data” olarak ayrıştırmamız gerekiyor.
- ConversionApi sınıfının bir nesnesini oluşturun.
- Dosyayı bulut depolamaya yükleyeceğimiz için StorageApi örneğini de oluşturmamız gerekiyor.
- Şimdi dönüştürme işlemini başlatmak için PostConvertDocumentInRequestToPdf(..)‘i çağırmamız gerekiyor. Bu yöntem girdi dosya adını, sonuç dosya adını ve sonuç dosya kenar boşluğu ve boyut ayrıntılarını argüman olarak kabul eder.
- Dönüştürme işleminden sonra sonuç, yanıt gövdesinin ham baytlarını içeren Stream nesnesine döndürülür.
- Şimdi başarılı yanıtın seri hale getirilmiş yanıt gövdesini ResponseBody nesnesine almamız gerekiyor.
- Sonuç dosyasını bulut depolama alanından ResponseBody nesnesine indirin.
- Son olarak, ortaya çıkan PDF belgesini yerel sistem sürücüsüne kaydetmek için özel yöntemimizi çağıracağız.
import com.aspose.html.api.ConversionApi;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import okhttp3.Response;
import okhttp3.ResponseBody;
import retrofit2.Call;
import java.io.*;
public class conversionCode {
public static void main(String[] args) {
com.aspose.html.Configuration.setAPP_SID("c235e685-1aab-4cda-a95b-54afd63eb87f");
com.aspose.html.Configuration.setAPI_KEY("b8da4ee37494f2ef8da3c727f3a0acb9");
com.aspose.html.Configuration.setBasePath("https://api.aspose.cloud/v3.0");
com.aspose.html.Configuration.setAuthPath("https://api.aspose.cloud/connect/token");
com.aspose.html.Configuration.setUserAgent("WebKit");
com.aspose.html.Configuration.setDebug(true);
String name = "Simple.html";// inpit Document name.
Integer width = 800; // Resulting image width.
Integer height = 1000; // Resulting image height.
Integer leftMargin = 10; // Left resulting image margin.
Integer rightMargin = 10; // Right resulting image margin.
Integer topMargin = 10; // Top resulting image margin.
Integer bottomMargin = 10; // Bottom resulting image margin.
String storage = null; // Name of the storage.
File f = new File("/Users/nayyershahbaz/Documents/"+name);
if(!f.exists()){
System.out.println("file not found");
}
RequestBody requestBody = RequestBody.create( MediaType.parse("multipart/form-data"), f);
MultipartBody.Part file = MultipartBody.Part.createFormData("file", f.getName(), requestBody);
try {
ConversionApi api = new com.aspose.html.ApiClient().createService(ConversionApi.class);
com.aspose.html.api.StorageApi storageApi = new com.aspose.html.ApiClient().createService(com.aspose.html.api.StorageApi.class);
Call<ResponseBody> call2 = api.PostConvertDocumentInRequestToPdf("resultantFile.pdf", file, width, height, leftMargin, rightMargin, topMargin, bottomMargin);
retrofit2.Response<ResponseBody> res = call2.execute();
ResponseBody resultant = res.body();
call2 = storageApi.downloadFile("resultantFile.pdf", null, storage);
checkAndSave(call2, "resultantFile.pdf");
} catch (Exception e) {
System.err.println("Exception during file processing...");
e.printStackTrace();
}
} // main ends here
public static void checkAndSave(Call<ResponseBody> call, String fileName) throws IOException
{
retrofit2.Response<ResponseBody> res = call.execute();
ResponseBody answer = res.body();
//Test dizinine kaydet
boolean result = saveToDisc(answer, fileName);
}
public static boolean saveToDisc(ResponseBody body, String fileName)
{
File savedFile = new File("/Users/nayyershahbaz/Documents/"+fileName);
try (InputStream inputStream = body.byteStream();
OutputStream outputStream = new FileOutputStream(savedFile))
{
byte[] fileReader = new byte[4096];
long fileSizeDownloaded = 0;
while (true) {
int read = inputStream.read(fileReader);
if (read == -1) break;
outputStream.write(fileReader, 0, read);
fileSizeDownloaded += read;
}
outputStream.flush();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
} // saveToDisc ends here
}
Çözüm
Bu makalede, Java SDK kullanarak bir web sayfasını PDF’ye nasıl dönüştüreceğinize dair adımları öğrendik. Daha az kod satırıyla, tüm HTML’nin tam doğrulukla PDF formatına dönüştürüldüğünü gözlemledik. API, PDF formatı dışında HTML’den JPG, HTML’den PNG, HTML’den TIFF, HTML’den BMP ve HTML’den GIF dönüştürme işlemlerini gerçekleştirmenizi de sağlar. Benzer şekilde, aynı API’yi kullanarak bir Markdown dosyasını HTML’ye dönüştürebilir veya MHTML’yi HTML formatına dönüştürebiliriz.
API’yi kullanırken herhangi bir sorunla karşılaşırsanız lütfen ücretsiz ürün destek forumu aracılığıyla bizimle iletişime geçmekten çekinmeyin.
İlgili Bağlantılar
Daha fazla bilgi edinmek için aşağıdaki bağlantıları ziyaret etmenizi öneririz