تحويل PDF إلى تنسيقات الصور
Aspose.PDF for Java يتيح لك تحويل مستندات PDF إلى تنسيقات الصور مثل BMP وJPEG وGIF وPNG وEMF وTIFF وSVG باستخدام طريقتين. يتم التحويل باستخدام Device واستخدام SaveOption.
هناك عدة فئات في المكتبة تتيح لك استخدام جهاز افتراضي لتحويل الصور. تم تصميم DocumentDevice لتحويل المستند بالكامل، بينما ImageDevice - لصفحة معينة.
تحويل PDF باستخدام فئة DocumentDevice
Aspose.PDF for Java يجعل من الممكن تحويل صفحات PDF إلى صور TIFF.
تسمح لك فئة TiffDevice بتحويل صفحات PDF إلى صور TIFF. هذه الفئة توفر طريقة باسم Process والتي تسمح لك بتحويل جميع الصفحات في ملف PDF إلى صورة TIFF واحدة.
تحويل صفحات PDF إلى صورة TIFF واحدة
Aspose.PDF for Java يشرح كيفية تحويل جميع الصفحات في ملف PDF إلى صورة TIFF واحدة:
- أنشئ كائن من فئة Document.
- استدعِ طريقة Process لتحويل المستند.
- لضبط خصائص ملف الإخراج، استخدم فئة TiffSettings.
يوضح مقتطف الكود التالي كيفية تحويل جميع صفحات PDF إلى صورة TIFF واحدة.
// فتح المستند
String documentFileName = Paths.get(DATA_DIR.toString(), "PageToTIFF.pdf").toString();
Document document = new Document(documentFileName);
// إنشاء كائن Resolution
Resolution resolution = new Resolution(300);
// إنشاء كائن TiffSettings
TiffSettings tiffSettings = new TiffSettings();
tiffSettings.setCompression(CompressionType.None);
tiffSettings.setDepth(ColorDepth.Default);
tiffSettings.setShape(ShapeType.Landscape);
tiffSettings.setSkipBlankPages(false);
// إنشاء جهاز TIFF
TiffDevice tiffDevice = new TiffDevice(resolution, tiffSettings);
// تحويل صفحة معينة وحفظ الصورة في تيار
tiffDevice.process(document, DATA_DIR + "AllPagesToTIFF_out.tif");
تحويل صفحة واحدة إلى صورة TIFF
يسمح Aspose.PDF لـ Java بتحويل صفحة معينة في ملف PDF إلى صورة TIFF، استخدم نسخة محملة من طريقة Process(..) التي تأخذ رقم الصفحة كوسيطة للتحويل. يوضح مقتطف الشيفرة التالي كيفية تحويل الصفحة الأولى من PDF إلى صيغة TIFF.
// افتح المستند
String documentFileName = Paths.get(DATA_DIR.toString(), "PageToTIFF.pdf").toString();
String tiffFileName = Paths.get(DATA_DIR.toString(), "PageToTIFF_out.tif").toString();
Document document = new Document(documentFileName);
// إنشاء كائن Resolution
Resolution resolution = new Resolution(300);
// إنشاء كائن TiffSettings
TiffSettings tiffSettings = new TiffSettings();
tiffSettings.setCompression(CompressionType.None);
tiffSettings.setDepth(ColorDepth.Default);
tiffSettings.setShape(ShapeType.Landscape);
// إنشاء جهاز TIFF
TiffDevice tiffDevice = new TiffDevice(resolution, tiffSettings);
// تحويل صفحة معينة وحفظ الصورة في التدفق
tiffDevice.process(document, 1, 1, tiffFileName);
استخدام خوارزمية برادلي أثناء التحويل
يدعم Aspose.PDF for Java ميزة تحويل PDF إلى TIFF باستخدام ضغط LZW ثم باستخدام AForge يمكن تطبيق التثنيم. ومع ذلك، طلب أحد العملاء أنه لبعض الصور، يحتاجون إلى الحصول على العتبة باستخدام Otsu، لذا يرغبون أيضًا في استخدام برادلي.
// فتح المستند
String documentFileName = Paths.get(DATA_DIR.toString(), "PageToTIFF.pdf").toString();
Document document = new Document(documentFileName);
String outputImageFileName = Paths.get(DATA_DIR.toString(), "resultant_out.tif").toString();
String outputBinImageFileName = Paths.get(DATA_DIR.toString(), "tiff-bin_out.tif").toString();
java.io.OutputStream outputImageFile = new java.io.FileOutputStream(outputImageFileName);
java.io.OutputStream outputBinImageFile = new java.io.FileOutputStream(outputBinImageFileName);
// إنشاء كائن Resolution
Resolution resolution = new Resolution(300);
// إنشاء كائن TiffSettings
TiffSettings tiffSettings = new TiffSettings();
tiffSettings.setCompression(CompressionType.LZW);
tiffSettings.setDepth(ColorDepth.Format1bpp);
// إنشاء جهاز TIFF
TiffDevice tiffDevice = new TiffDevice(resolution, tiffSettings);
// تحويل صفحة معينة وحفظ الصورة في التدفق
tiffDevice.process(document, outputImageFile);
outputImageFile.close();
// إنشاء كائن التدفق لحفظ الصورة الناتجة
java.io.InputStream inStream = new java.io.FileInputStream(outputImageFileName);
tiffDevice.binarizeBradley(inStream, outputBinImageFile, 0.1);
تحويل صفحات PDF إلى صور TIFF متقطعة
لتحويل جميع الصفحات في ملف PDF إلى صيغة TIFF متقطعة، استخدم خيار Pixelated من IndexedConversionType
// تحويل صفحات PDF إلى صور TIFF متقطعة
// لتحويل جميع الصفحات في ملف PDF إلى صيغة TIFF متقطعة، استخدم خيار Pixelated
// من IndexedConversionType.
// افتح المستند
String documentFileName = Paths.get(DATA_DIR.toString(), "PageToTIFF.pdf").toString();
Document document = new Document(documentFileName);
// أنشئ كائن تدفق لحفظ صورة المخرجات
java.io.OutputStream imageStream = new java.io.FileOutputStream("Image.tiff");
// أنشئ كائن الدقة
com.aspose.pdf.devices.Resolution resolution = new com.aspose.pdf.devices.Resolution(300);
// أنشئ كائن TiffSettings
com.aspose.pdf.devices.TiffSettings tiffSettings = new com.aspose.pdf.devices.TiffSettings();
// تعيين الضغط لصورة TIFF الناتجة
tiffSettings.setCompression(com.aspose.pdf.devices.CompressionType.CCITT4);
// تعيين عمق اللون للصورة الناتجة
tiffSettings.setDepth(com.aspose.pdf.devices.ColorDepth.Format4bpp);
// تخطي الصفحات الفارغة أثناء تحويل PDF إلى TIFF
tiffSettings.setSkipBlankPages(true);
// تعيين سطوع الصورة
tiffSettings.setBrightness(.5f);
// تعيين نوع التحويل المفهرس، القيمة الافتراضية هي بسيطة
tiffSettings.setIndexedConversionType(IndexedConversionType.Pixelated);
// أنشئ كائن TiffDevice مع دقة معينة
TiffDevice tiffDevice = new TiffDevice(2480, 3508, resolution, tiffSettings);
// تحويل صفحة معينة (الصفحة 1) وحفظ الصورة في التدفق
tiffDevice.process(document, 1, 1, imageStream);
// إغلاق التدفق
imageStream.close();
حاول تحويل PDF إلى TIFF عبر الإنترنت
يقدم لك Aspose.PDF for Java تطبيقًا مجانيًا عبر الإنترنت “PDF إلى TIFF”، حيث يمكنك محاولة استكشاف الوظائف والجودة التي يعمل بها.
تحويل PDF باستخدام فئة ImageDevice
ImageDevice
هو السلف لفئات BmpDevice
، JpegDevice
، GifDevice
، PngDevice
و EmfDevice
.
-
تسمح لك فئة BmpDevice بتحويل صفحات PDF إلى صور BMP.
-
تسمح لك فئة EmfDevice بتحويل صفحات PDF إلى صور EMF.
-
تسمح لك فئة JpegDevice بتحويل صفحات PDF إلى صور JPEG.
-
تتيح لك فئة PngDevice تحويل صفحات PDF إلى صور PNG.
-
تتيح لك فئة GifDevice تحويل صفحات PDF إلى صور GIF.
لنلقِ نظرة على كيفية تحويل صفحة PDF إلى صورة.
توفر فئة BmpDevice طريقة باسم Process والتي تتيح لك تحويل صفحة معينة من ملف PDF إلى تنسيق صورة BMP. تحتوي الفئات الأخرى على نفس الطريقة. لذا، إذا كنا بحاجة إلى تحويل صفحة PDF إلى صورة، فإننا نقوم فقط بإنشاء نسخة من الفئة المطلوبة.
يوضح مقتطف الشيفرة التالي هذا الاحتمال:
package com.aspose.pdf.examples.conversion;
import com.aspose.pdf.Document;
import com.aspose.pdf.devices.*;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
/**
* تحويل PDF إلى صورة.
*/
public final class ConvertPDFtoImage {
private static final Path DATA_DIR = Paths.get("/home/aspose/pdf-examples/Samples");
private ConvertPDFtoImage() {
}
public static void run() throws IOException {
runConvertPdfUsingImageDevice();
}
public static void runConvertPdfUsingImageDevice() throws IOException {
// إنشاء كائن Resolution
Resolution resolution = new Resolution(300);
BmpDevice bmpDevice = new BmpDevice(resolution);
JpegDevice jpegDevice = new JpegDevice(resolution);
GifDevice gifDevice = new GifDevice(resolution);
PngDevice pngDevice = new PngDevice(resolution);
EmfDevice emfDevice = new EmfDevice(resolution);
Document document = new Document(DATA_DIR + "ConvertAllPagesToBmp.pdf");
convertPDFtoImages(bmpDevice, "bmp", document);
convertPDFtoImages(jpegDevice, "jpeg", document);
convertPDFtoImages(gifDevice, "gif", document);
convertPDFtoImages(pngDevice, "png", document);
convertPDFtoImages(emfDevice, "emf", document);
}
public static void convertPDFtoImages(
ImageDevice imageDevice,
String ext,
Document document)
throws IOException {
for (int pageCount = 1; pageCount <= document.getPages().size(); pageCount++) {
java.io.OutputStream imageStream = new java.io.FileOutputStream(
DATA_DIR + "image" + pageCount + "_out." + ext);
// تحويل صفحة معينة وحفظ الصورة إلى المجرى
imageDevice.process(document.getPages().get_Item(pageCount), imageStream);
// إغلاق المجرى
imageStream.close();
}
}
}
حاول تحويل PDF إلى PNG عبر الإنترنت
كمثال على كيفية عمل تطبيقاتنا المجانية، يرجى التحقق من الميزة التالية.
يقدم لك Aspose.PDF for Java تطبيقًا مجانيًا عبر الإنترنت “PDF إلى PNG”، حيث يمكنك محاولة استكشاف الوظائف والجودة التي يعمل بها.
تحويل PDF باستخدام فئة SaveOptions
يوضح لك هذا الجزء من المقالة كيفية تحويل PDF إلى SVG باستخدام جافا وفئة SaveOptions.
حاول تحويل PDF إلى SVG عبر الإنترنت
يقدم لك Aspose.PDF for Java تطبيقًا مجانيًا عبر الإنترنت “PDF إلى SVG”، حيث يمكنك محاولة استكشاف الوظائف والجودة التي يعمل بها.
رسومات المتجهات القابلة للتوسع (SVG) هي مجموعة من المواصفات لصيغة ملف تعتمد على XML للرسومات المتجهة ثنائية الأبعاد، سواء كانت ثابتة أو ديناميكية (تفاعلية أو متحركة). تعتبر مواصفات SVG معيارًا مفتوحًا قيد التطوير من قبل اتحاد شبكة الويب العالمية (W3C) منذ عام 1999.
يتم تعريف صور SVG وسلوكياتها في ملفات نصية بصيغة XML. هذا يعني أنه يمكن البحث فيها، وفهرستها، وبرمجتها، وضغطها إذا لزم الأمر. وكملفات XML، يمكن إنشاء وتحرير صور SVG باستخدام أي محرر نصوص، ولكن من الأكثر ملاءمة غالبًا إنشاؤها باستخدام برامج رسم مثل Inkscape.
تحويل صفحات PDF إلى صور SVG
يدعم Aspose.PDF for Java ميزة تحويل ملفات PDF إلى صيغة SVG. لتلبية هذا المتطلب، تم تقديم فئة SvgSaveOptions في الحزمة com.aspose.pdf. قم بإنشاء كائن من SvgSaveOptions ومرره كوسيط ثانٍ إلى طريقة Document.save(..).
يظهر مقطع الشيفرة التالي الخطوات اللازمة لتحويل ملف PDF إلى تنسيق SVG.
package com.aspose.pdf.examples.conversion;
import com.aspose.pdf.Document;
import com.aspose.pdf.SvgSaveOptions;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
/**
* تحويل PDF إلى SVG.
*/
public class ConvertPDFtoSVG {
// المسار إلى دليل المستندات.
private static final Path DATA_DIR = Paths.get("/home/aspose/pdf-examples/Samples");
private ConvertPDFtoSVG() {
}
public static void run() throws IOException {
String pdfFileName = Paths.get(DATA_DIR.toString(), "input.pdf").toString();
String svgFileName = Paths.get(DATA_DIR.toString(), "PDFToSVG_out.svg").toString();
// تحميل مستند PDF
Document document = new Document(pdfFileName);
// إنشاء كائن من SvgSaveOptions
SvgSaveOptions saveOptions = new SvgSaveOptions();
// عدم ضغط صورة SVG إلى أرشيف Zip
saveOptions.setCompressOutputToZipArchive(false);
// حفظ المخرجات في ملفات SVG
document.save(svgFileName, saveOptions);
document.close();
}
}