تبدیل PPT و PPTX به PDF در Python از طریق Java [ویژگیهای پیشرفته گنجانده شده]
بررسی کلی
تبدیل ارائههای PowerPoint (PPT، PPTX، ODP و غیره) به فرمت PDF در Python با استفاده از Java چندین مزیت دارد، از جمله سازگاری با دستگاههای مختلف و حفظ چینش و قالببندی ارائه شما. این راهنما نشان میدهد چگونه ارائهها را به اسناد PDF تبدیل کنید، از گزینههای مختلف برای کنترل کیفیت تصویر استفاده کنید، اسلایدهای پنهان را شامل کنید، فایلهای PDF را با رمز عبور محافظت کنید، جایگزینی فونتها را شناسایی کنید، اسلایدهای خاصی را برای تبدیل انتخاب کنید و استانداردهای سازگاری را بر اسناد خروجی اعمال کنید.
تبدیل PowerPoint به PDF
با استفاده از Aspose.Slides میتوانید ارائهها را در فرمتهای زیر به PDF تبدیل کنید:
- PPT
- PPTX
- ODP
برای تبدیل یک ارائه به PDF، نام فایل را به عنوان آرگومان به کلاس Presentation بدهید و سپس ارائه را با استفاده از متد save به PDF ذخیره کنید. کلاس Presentation متد save را در اختیار میگذارد که معمولاً برای تبدیل یک ارائه به PDF استفاده میشود.
Note
Aspose.Slides for Python via Java اطلاعات API و شماره نسخه خود را در اسناد خروجی درج میکند. به عنوان مثال، هنگام تبدیل یک ارائه به PDF، Aspose.Slides فیلد Application را با “Aspose.Slides” و فیلد PDF Producer را با مقداری به شکل “Aspose.Slides v XX.XX” پر میکند. توجه داشته باشید که نمیتوانید به Aspose.Slides دستور دهید این اطلاعات را از اسناد خروجی حذف یا تغییر دهد.Aspose.Slides به شما امکان میدهد:
- کل ارائهها را به PDF تبدیل کنید
- اسلایدهای خاصی از یک ارائه را به PDF تبدیل کنید
Aspose.Slides ارائهها را به PDF صادر میکند و اطمینان میدهد PDFهای تولید شده بهدقت با ارائههای اصلی مطابقت داشته باشند. عناصر و ویژگیها بهصورت دقیق در تبدیل رندر میشوند، از جمله:
- تصاویر
- جعبههای متن و شکلها
- قالببندی متن
- قالببندی پاراگراف
- پیوندها
- سرصفحهها و پاورقیها
- بولتها
- جدولها
تبدیل PowerPoint به PDF
تبدیل استاندارد از تنظیمات پیشفرض خروجی PDF استفاده میکند. هنگام نیاز به کنترل کیفیت تصویر، محتوای صفحه یا سازگاری PDF، از گزینههای سفارشی استفاده کنید.
قبل از اجرای مثالها، Aspose.Slides for Python via Java و یک محیط اجرایی Java سازگار را نصب کنید. هر مثال فایل presentation.pptx را از پوشه کاری فعلی میخواند؛ آن را با فایل PPT، PPTX یا ODP خود جایگزین کنید. JVM را یکبار برای هر فرآیند Python راهاندازی کنید.
این کد یک ارائه را به PDF تبدیل میکند:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
presentation = Presentation("presentation.pptx")
try:
presentation.save("presentation.pdf", SaveFormat.Pdf)
finally:
presentation.dispose()
Note
Aspose یک مبدل آنلاین رایگان PowerPoint به PDF در اینجا ارائه میدهد که فرایند تبدیل ارائه به PDF را نشان میدهد. میتوانید با این مبدل یک تست زنده از روش شرح دادهشده انجام دهید.تبدیل PowerPoint به PDF با گزینهها
Aspose.Slides گزینههای سفارشی—ویژگیهای موجود در کلاس PdfOptions—را فراهم میکند که به شما اجازه میدهد PDF نهایی را تنظیم کنید، با رمز عبور قفل کنید یا نحوه پیشرفت فرایند تبدیل را مشخص کنید.
تبدیل PowerPoint به PDF با گزینههای سفارشی
با استفاده از گزینههای تبدیل سفارشی میتوانید تنظیمات کیفیت دلخواه برای تصاویر رستر، نحوه پردازش متافایلها، سطح فشردهسازی متن، DPI برای تصاویر و موارد دیگر را تعریف کنید.
مثال کد زیر نشان میدهد چگونه یک ارائه PowerPoint را به PDF با چندین گزینه سفارشی تبدیل کنید.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import PdfCompliance, PdfOptions, PdfTextCompression, Presentation, SaveFormat
presentation = Presentation("presentation.pptx")
try:
pdf_options = PdfOptions()
pdf_options.setJpegQuality(jpype.JByte(90))
pdf_options.setSufficientResolution(300)
pdf_options.setSaveMetafilesAsPng(True)
pdf_options.setTextCompression(PdfTextCompression.Flate)
pdf_options.setCompliance(PdfCompliance.Pdf15)
presentation.save("presentation-custom.pdf", SaveFormat.Pdf, pdf_options)
finally:
presentation.dispose()
تبدیل PowerPoint به PDF با اسلایدهای پنهان
اگر ارائهای شامل اسلایدهای پنهان باشد، میتوانید با استفاده از متد setShowHiddenSlides از کلاس PdfOptions اسلایدهای پنهان را به عنوان صفحات در PDF نهایی گنجانده و تبدیل کنید.
این کد نشان میدهد چگونه یک ارائه PowerPoint را به PDF با اسلایدهای پنهان گنجانده تبدیل کنید:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import PdfOptions, Presentation, SaveFormat
presentation = Presentation("presentation.pptx")
try:
pdf_options = PdfOptions()
pdf_options.setShowHiddenSlides(True)
presentation.save("presentation-hidden-slides.pdf", SaveFormat.Pdf, pdf_options)
finally:
presentation.dispose()
تبدیل PowerPoint به PDF با حفاظت با رمز عبور
این کد نشان میدهد چگونه یک ارائه PowerPoint را به PDF محافظتشده با رمز عبور تبدیل کنید باستخدام پارامترهای حفاظتی از کلاس PdfOptions:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import PdfAccessPermissions, PdfOptions, Presentation, SaveFormat
presentation = Presentation("presentation.pptx")
try:
pdf_options = PdfOptions()
pdf_options.setPassword("password")
permissions = PdfAccessPermissions.PrintDocument | PdfAccessPermissions.HighQualityPrint
pdf_options.setAccessPermissions(permissions)
presentation.save("presentation-protected.pdf", SaveFormat.Pdf, pdf_options)
finally:
presentation.dispose()
تشخیص جایگزینی فونتها
Aspose.Slides متد setWarningCallback را در کلاس PdfOptions فراهم میکند تا بتوانید جایگزینی فونتها را در طول فرایند تبدیل ارائه به PDF شناسایی کنید.
از یک پراکسی JPype برای دریافت فراخوانیهای هشدار از API جاوا استفاده کنید. قبل از بررسی پیشوند رشته توضیح Java، آن را به رشته Python تبدیل کنید:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import PdfOptions, Presentation, ReturnAction, SaveFormat, WarningType
class FontSubstitutionHandler:
def warning(self, warning):
description = str(warning.getDescription())
if warning.getWarningType() == WarningType.DataLoss and description.startswith("Font will be substituted"):
print(f"Font substitution warning: {description}")
return ReturnAction.Continue
presentation = Presentation("presentation.pptx")
try:
handler = FontSubstitutionHandler()
callback = jpype.JProxy("com.aspose.slides.IWarningCallback", inst=handler)
pdf_options = PdfOptions()
pdf_options.setWarningCallback(callback)
presentation.save("presentation-font-warnings.pdf", SaveFormat.Pdf, pdf_options)
finally:
presentation.dispose()
Note
برای اطلاعات بیشتر درباره دریافت فراخوانیهای هشدار برای جایگزینی فونتها در طول رندر، به دریافت فراخوانیهای هشدار برای جایگزینی فونتها مراجعه کنید.
برای اطلاعات بیشتر درباره جایگزینی فونت، مقاله جایگزینی فونت را ببینید.
تبدیل اسلایدهای انتخابی PowerPoint به PDF
شماره اسلایدهای پاس دادهشده به Presentation.save از 1 شروع میشود. این مثال اسلایدهای 1 و 3 را (در صورتی که موجود باشند) صادر میکند:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
presentation = Presentation("presentation.pptx")
try:
if presentation.getSlides().size() >= 3:
slide_numbers = jpype.JArray(jpype.JInt)([1, 3])
presentation.save("presentation-selected-slides.pdf", slide_numbers, SaveFormat.Pdf)
else:
print("The presentation must contain at least three slides.")
finally:
presentation.dispose()
تبدیل PowerPoint به PDF با اندازه اسلاید سفارشی
این مثال اولین اسلاید را روی صفحهای به ابعاد 612 در 792 پوینت (US Letter) صادر میکند. اسلاید را به یک ارائه جدید با اندازه مشخص کپی میکند:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, SlideSizeScaleType
presentation = Presentation("presentation.pptx")
try:
resized_presentation = Presentation()
try:
resized_presentation.getSlideSize().setSize(612.0, 792.0, SlideSizeScaleType.EnsureFit)
if presentation.getSlides().size() > 0:
slide = presentation.getSlides().get_Item(0)
resized_presentation.getSlides().insertClone(0, slide)
resized_presentation.getSlides().removeAt(1)
resized_presentation.save("presentation-custom-size.pdf", SaveFormat.Pdf)
else:
print("The presentation contains no slides.")
finally:
resized_presentation.dispose()
finally:
presentation.dispose()
تبدیل PowerPoint به PDF در نمای اسلاید یادداشتها
این کد نشان میدهد چگونه یک ارائه PowerPoint را به PDF که شامل یادداشتها است تبدیل کنید:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import NotesCommentsLayoutingOptions, NotesPositions, PdfOptions, Presentation, SaveFormat
presentation = Presentation("presentation.pptx")
try:
notes_options = NotesCommentsLayoutingOptions()
notes_options.setNotesPosition(NotesPositions.BottomFull)
pdf_options = PdfOptions()
pdf_options.setSlidesLayoutOptions(notes_options)
presentation.save("presentation-with-notes.pdf", SaveFormat.Pdf, pdf_options)
finally:
presentation.dispose()
دسترسپذیری و استانداردهای سازگاری برای PDF
هنگام تهیه PDFهای دسترسپذیر، به راهنمای WCAG مراجعه کنید. از PdfOptions.setCompliance برای انتخاب یک استاندارد خروجی استفاده کنید: PDF/A1a، PDF/A1b و PDF/UA.
این کد یک فرایند تبدیل PowerPoint به PDF را نشان میدهد که بر پایه استانداردهای مختلف سازگاری چندین PDF تولید میکند:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import PdfCompliance, PdfOptions, Presentation, SaveFormat
presentation = Presentation("presentation.pptx")
try:
pdf_options = PdfOptions()
pdf_options.setCompliance(PdfCompliance.PdfA1a)
presentation.save("presentation-a1a.pdf", SaveFormat.Pdf, pdf_options)
pdf_options.setCompliance(PdfCompliance.PdfA1b)
presentation.save("presentation-a1b.pdf", SaveFormat.Pdf, pdf_options)
pdf_options.setCompliance(PdfCompliance.PdfUa)
presentation.save("presentation-ua.pdf", SaveFormat.Pdf, pdf_options)
finally:
presentation.dispose()
توجه: هنگام خروجی به PDF/UA، Aspose.Slides گرافیکهای پیچیده مانند SmartArt، نمودارها و فرمولها را بهعنوان یک شکل واحد در نظر میگیرد. عناصر مسیر جداگانه حفظ نمیشوند و ممکن است به عنوان artefact علامتگذاری شوند؛ متن جایگزین تنها برای کل شکل ارائه میشود.
سؤالات متداول
آیا میتوانم چندین فایل PowerPoint را به طور دستهای به PDF تبدیل کنم؟
بله، Aspose.Slides از تبدیل دستهای چندین فایل PPT یا PPTX به PDF پشتیبانی میکند. میتوانید بهصورت برنامهای بر روی فایلهای خود تکرار کنید و فرایند تبدیل را اعمال کنید.
آیا میتوان PDF تبدیلشده را با رمز عبور محافظت کرد؟
بله. از کلاس PdfOptions برای تنظیم رمز عبور و تعریف مجوزهای دسترسی در طول فرایند تبدیل استفاده کنید.
چگونه میتوانم اسلایدهای پنهان را در PDF گنجاندم؟
از متد setShowHiddenSlides در کلاس PdfOptions برای گنجاندن اسلایدهای پنهان در PDF نهایی استفاده کنید.
آیا Aspose.Slides میتواند کیفیت تصویر بالا را در PDF حفظ کند؟
بله، میتوانید با استفاده از متدهایی مانند setJpegQuality و setSufficientResolution در کلاس PdfOptions کیفیت تصویر بالا را در PDF خود تضمین کنید.
آیا Aspose.Slides از استانداردهای سازگاری PDF/A پشتیبانی میکند؟
بله، Aspose.Slides به شما امکان میدهد PDFهایی صادر کنید که با استانداردهای مختلف از جمله PDF/A1a، PDF/A1b و PDF/UA مطابقت داشته باشند، برای دسترسپذیری یا آرشیو. استاندارد مناسب را انتخاب کنید و خروجی را نسبت به نیازهای خود ارزیابی کنید.