إنشاء PDF من HTML باستخدام Java [خطوة بخطوة]
ستوضح لك هذه المقالة كيفية إنشاء ملفات PDF من HTML باستخدام Java. يمكنك بسهولة معالجة وعرض مستندات HTML بما في ذلك أنماط CSS.
Aspose.HTML for Java
يتيح لتطبيقاتك تنفيذ مجموعة واسعة من مهام معالجة HTML ويدعم HTML5 وCSS3 وSVG وميزات HTML Canvas. باستخدام واجهة برمجة التطبيقات الخاصة بنا يمكنك تحميل صفحات الويب، تحليل المحتوى، تحريره، ثم حفظه وتحويله.
الصيغ الشائعة التي يمكنك معالجتها: XHTML، MHTML، SVG، MD، PDF، XPS، EPUB، PNG، TIFF، JPEG، BMP، وغيرها.
مجموعة غنية من الميزات
Aspose.HTML for Java يقدم لك الكثير من الميزات في مجالات مختلفة:
• نموذج كائن المستند (Document object model) – يتيح لك تحرير وإنشاء وإزالة العقد، وهو مبني وفقًا للوثائق الرسمية لـ HTML.
• محولات عالية الأداء. لمزيد من المعلومات حول صيغ الملفات المدعومة زر قائمة الميزات
أو مقالات التحويل
.
• معالجة CSS وJavaScript وغيرها من الصيغ المدمجة.
إنشاء PDF من HTML بسطر واحد من كود Java
يمكنك بسهولة إنشاء PDF من HTML في تطبيق Java الخاص بك باستخدام سطر واحد من الكود عبر الطرق الساكنة لفئة Converter .
// 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"
);
إنشاء PDF من HTML سطرًا بسطر باستخدام Java
فيما يلي الخطوات لإنشاء PDF من HTML سطرًا بسطر:
- باستخدام فئة [HtmlDocument] قم أولاً بتحميل ملف HTML.
- بعد ذلك أنشئ مثيلًا من [PdfSaveOptions].
- باستخدام طريقة [ConvertHTML()] من فئة [Converter] احفظ HTML كملف PDF. سيتعين عليك تمرير [HTMLDocument] و[PdfSaveOptions] ومسار ملف الإخراج إلى طريقة ConvertHTML() لإنشاء PDF من HTML.
// 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();
}
}
تخصيص عملية العرض باستخدام خيار الحفظ
يمكنك تخصيص عملية العرض باستخدام [PdfSaveOptions]، وتحديد [حجم الصفحة]، [أذونات الملف]، [الهوامش]، [نوع وسائط CSS]، والعديد غيرها. في المثال أدناه يمكنك رؤية كيفية استخدام PdfSaveOptions وإنشاء ملف PDF بحجم صفحة مخصص ولون خلفية مختلف:
// 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"
);
في مقالة ضبط المحولات بدقة يمكنك العثور على مزيد من المعلومات حول [PdfSaveOptions].
موفر تدفق الإخراج
يمكنك تنفيذ واجهة [MemoryStreamProvider] إذا رغبت في حفظ الملفات في تخزين بعيد، مثل السحابة أو قاعدة البيانات.
تم تصميم واجهة MemoryStreamProvider ككائن رد نداء لإنشاء تدفق وإطلاقه بعد إكمال عرض الصفحة أو المستند.
سنظهر لك مثالًا على استخدام MemoryStreamProvider أدناه:
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 توفر دعمًا فنيًا لجميع منتجاتها، من [مقالات قاعدة المعرفة]، [الوثائق]، [المدونة]، [نماذج الشيفرة]، و[العروض التجريبية]، إلى [الدعم المجاني] وكذلك [الدعم المدفوع] المتوفر على مدار الساعة.
إذا كنت بحاجة إلى خبراء يعملون معك ويساعدونك في تنفيذ Aspose.HTML for Java وفقًا لاحتياجاتك، فإن أفضل حل هو الاستشارات المدفوعة
.