تحويل مستند إلى PDF
تعد القدرة على تحويل المستندات بسهولة وموثوقية من تنسيق إلى آخر ميزة رئيسية في Aspose.Words. أحد أكثر التنسيقات شيوعا للتحويل هو PDF - تنسيق تخطيط ثابت، والذي يحافظ على المظهر الأصلي للمستند أثناء عرضه على منصات مختلفة. يستخدم مصطلح" التقديم " في Aspose.Words لوصف عملية تحويل مستند إلى تنسيق ملف مرقم صفحات أو يحتوي على مفهوم الصفحات.
تحويل مستند كلمة إلى PDF
التحويل من كلمة إلى PDF عملية معقدة إلى حد ما تتطلب عدة مراحل من الحساب. Aspose.Words يحاكي محرك التخطيط الطريقة التي يعمل بها محرك تخطيط الصفحة Microsoft Word، مما يجعل مستندات الإخراج PDF تبدو قريبة قدر الإمكان مما يمكنك رؤيته في Microsoft Word.
باستخدام Aspose.Words، يمكنك تحويل مستند برمجيا من DOC أو DOCX إلى PDF دون استخدام Microsoft أوفيس. تشرح هذه المقالة كيفية إجراء هذا التحويل.
تحويل DOCX أو DOC إلى PDF
يعد التحويل من تنسيق المستند DOC أو DOCX إلى تنسيق PDF في Aspose.Words أمرا سهلا للغاية ويمكن تحقيقه باستخدام سطرين فقط من التعليمات البرمجية التي:
- قم بتحميل المستند الخاص بك في كائن Document باستخدام أحد منشئيه عن طريق تحديد اسم المستند بامتداد التنسيق الخاص به.
- استدعاء إحدى طرق Document.Save على الكائن Document وحدد تنسيق الإخراج المطلوب كـ PDF عن طريق إدخال اسم ملف مع “.PDF " تمديد.
يوضح مثال الكود التالي كيفية تحويل مستند من DOCX إلى PDF باستخدام طريقة Save
:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git. | |
Document doc = new Document(getMyDir() + "Document.docx"); | |
doc.save(getArtifactsDir() + "BaseConversions.DocxToPdf.pdf"); |
يمكنك تنزيل ملف القالب لهذا المثال من Aspose.Words GitHub.
في بعض الأحيان يكون من الضروري تحديد خيارات إضافية، والتي يمكن أن تؤثر على نتيجة حفظ مستند ك PDF. يمكن تحديد هذه الخيارات باستخدام فئة PdfSaveOptions، التي تحتوي على خصائص تحدد كيفية عرض إخراج PDF.
لاحظ أنه باستخدام نفس التقنية، يمكنك تحويل أي مستند تنسيق تخطيط تدفق إلى تنسيق PDF.
تحويل إلى معايير PDF مختلفة
Aspose.Words يوفر PdfCompliaceالتعداد لدعم تحويل DOC أو DOCX إلى معايير تنسيق PDF مختلفة (مثل PDF 1.7, PDF 1.5, الخ.).
يوضح مثال الكود التالي كيفية تحويل مستند إلى PDF 1.7 باستخدام PdfSaveOptions مع الامتثال ل PDF17:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git. | |
Document doc = new Document(getMyDir() + "Rendering.docx"); | |
PdfSaveOptions saveOptions = new PdfSaveOptions(); { saveOptions.setCompliance(PdfCompliance.PDF_17); } | |
doc.save(getArtifactsDir() + "WorkingWithPdfSaveOptions.ConversionToPdf17.pdf", saveOptions); |
تحويل الصور إلى PDF
التحويل إلى PDF غير مقيد بتنسيقات المستندات Microsoft Word. يمكن أيضا تحويل أي تنسيق يدعمه Aspose.Words، بما في ذلك الذي تم إنشاؤه برمجيا، إلى PDF. على سبيل المثال، يمكننا تحويل الصور ذات الصفحة الواحدة، مثل JPEG, PNG, BMP, EMF, أو WMF، بالإضافة إلى صور متعددة الصفحات، مثل TIFF و GIF، إلى PDF.
يوضح مثال الكود التالي كيفية تحويل JPEG و TIFF الصور إلى PDF:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git. | |
convertImageToPDF(getImagesDir() + "Logo.jpg", getArtifactsDir() + "BaseConversions.JpgToPdf.pdf"); | |
convertImageToPDF(getImagesDir() + "Transparent background logo.png", getArtifactsDir() + "BaseConversions.PngToPdf.pdf"); | |
convertImageToPDF(getImagesDir() + "Windows MetaFile.wmf", getArtifactsDir() + "BaseConversions.WmfToPdf.pdf"); | |
convertImageToPDF(getImagesDir() + "Tagged Image File Format.tiff", getArtifactsDir() + "BaseConversions.TiffToPdf.pdf"); | |
convertImageToPDF(getImagesDir() + "Graphics Interchange Format.gif", getArtifactsDir() + "BaseConversions.GifToPdf.pdf"); |
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git. | |
/** | |
* Converts an image to PDF using Aspose.Words for Java. | |
* | |
* @param inputFileName File name of input image file. | |
* @param outputFileName Output PDF file name. | |
* @throws Exception | |
*/ | |
private void convertImageToPDF(String inputFileName, String outputFileName) throws Exception { | |
// Create Aspose.Words.Document and DocumentBuilder. | |
// The builder makes it simple to add content to the document. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
// Load images from the disk using the appropriate reader. | |
// The file formats that can be loaded depends on the image readers available on the machine. | |
ImageInputStream iis = ImageIO.createImageInputStream(new File(inputFileName)); | |
ImageReader reader = ImageIO.getImageReaders(iis).next(); | |
reader.setInput(iis, false); | |
// Get the number of frames in the image. | |
int framesCount = reader.getNumImages(true); | |
// Loop through all frames. | |
for (int frameIdx = 0; frameIdx < framesCount; frameIdx++) { | |
// Insert a section break before each new page, in case of a multi-frame image. | |
if (frameIdx != 0) | |
builder.insertBreak(BreakType.SECTION_BREAK_NEW_PAGE); | |
// Select active frame. | |
BufferedImage image = reader.read(frameIdx); | |
// We want the size of the page to be the same as the size of the image. | |
// Convert pixels to points to size the page to the actual image size. | |
PageSetup ps = builder.getPageSetup(); | |
ps.setPageWidth(ConvertUtil.pixelToPoint(image.getWidth())); | |
ps.setPageHeight(ConvertUtil.pixelToPoint(image.getHeight())); | |
// Insert the image into the document and position it at the top left corner of the page. | |
builder.insertImage( | |
image, | |
RelativeHorizontalPosition.PAGE, | |
0, | |
RelativeVerticalPosition.PAGE, | |
0, | |
ps.getPageWidth(), | |
ps.getPageHeight(), | |
WrapType.NONE); | |
} | |
if (iis != null) { | |
iis.close(); | |
reader.dispose(); | |
} | |
doc.save(outputFileName); | |
} |
لجعل هذا الرمز يعمل، تحتاج إلى إضافة مراجع إلى Aspose.Words، Java.أوت.صورة, وجافاكس.حزم فئة إيماجيو لمشروعك.
تقليل حجم الإخراج PDF
عند الحفظ إلى PDF، يمكنك تحديد ما إذا كنت تريد تحسين الإخراج. للقيام بذلك، تحتاج إلى تعيين علامة OptimizeOutput على صحيح، ثم ستتم إزالة اللوحات المتداخلة الزائدة عن الحاجة واللوحات الفارغة، وسيتم تسلسل الحروف الرسومية المجاورة بنفس التنسيق.
يوضح مثال التعليمات البرمجية التالية كيفية تحسين الإخراج:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git. | |
Document doc = new Document(getMyDir() + "Rendering.docx"); | |
PdfSaveOptions saveOptions = new PdfSaveOptions(); { saveOptions.setOptimizeOutput(true); } | |
doc.save(getArtifactsDir() + "WorkingWithPdfSaveOptions.OptimizeOutput.pdf", saveOptions); |
أنظر أيضا
- المادة تقديم لمزيد من المعلومات حول تنسيقات الصفحة الثابتة وتخطيط التدفق
- المادة التحويل إلى تنسيق الصفحة الثابتة لمزيد من المعلومات حول تخطيط الصفحة
- المادة حدد خيارات العرض عند التحويل إلى PDF لمزيد من المعلومات حول استخدام فئة
PdfSaveOptions