
تصویر PNG را با استفاده از Java به PDF تبدیل کنید
PNG و PDF فرمتهای فایل محبوب و پرکاربرد در زمان حاضر هستند. PNG یک فرمت فایل تصویری است در حالی که PDF(Portable Document Format) نمایندگی دادههای مطمئن و موثری را ارائه میدهد. شما در برخی سناریوها نیاز دارید که فرمت فایل تصویری را به PDF تبدیل کنید. بنابراین، در این پست وبلاگ، خواهید آموخت که چگونه PNG را با استفاده از Java PDF API به PDF تبدیل کنید. ما کد نمونه و مراحل انجام این تبدیل را در یک برنامه Java خواهیم نوشت.
در این مقاله به موضوعات زیر خواهیم پرداخت:
کتابخانه PDF Java
این Java PDF library به راحتی نصب میشود و مستنداتی در مورد installation ارائه میدهد. این یک API در سطح شرکت است که ویژگیهای قوی برای تبدیل و دستکاری ارائه میدهد. با این حال، شما میتوانید download JAR را دانلود کنید یا آن را با استفاده از پیکربندیهای Maven زیر نصب کنید:
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>21.11</version>
<type>pom</type>
</dependency>
تصویر PNG را با استفاده از Java به PDF تبدیل کنید.
ما قصد داریم از کلاسها و متدهایی که توسط این کتابخانه PDF Java ارائه شده است استفاده کنیم. این کتابخانه به شما این امکان را میدهد که با نوشتن چند خط کد منبع در جاوا، تبدیل PNG به PDF را انجام دهید.
شما میتوانید مراحل و کد نمونه ذکر شده در زیر را دنبال کنید:
- یک نمونه از کلاس Document را ایجاد کنید.
- یک شی از DocumentBuilder کلاس ایجاد کنید تا افزودن محتوا به سند را ساده کند.
- فایل تصویر ورودی را با فراخوانی متد createImageInputStream بارگذاری کنید و به اشیاء ImageInputStream تخصیص دهید.
- متد getImageReaders را فراخوانی کنید که یک Iterator را باز میگرداند که شامل تمام ImageReader های ثبت شده در حال حاضر است و آن را به شیء کلاس ImageReader اختصاص دهید.
- متد setInput را فراخوانی کنید که منبع ورودی را برای استفاده به ImageInputStream داده شده تنظیم میکند.
- تعداد فریمها را از تصویر با فراخوانی روش getNumImages بدست آورید.
- تمام فریمها را پیمایش کنید.
- یک قاب فعال انتخاب کنید و آن را به شیء BufferedImage کلاس اختصاص دهید.
- متد getPageSetup را فراخوانی کنید تا به تنظیمات صفحه جاری دسترسی پیدا کنید و آن را به شیء کلاس PageSetup اختصاص دهید.
- ارتفاع صفحه را با فراخوانی متد setPageWidth تنظیم کنید.
- Invoke the setPageHeight method to set the width of the page.
- تصویر را به سند وارد کرده و آن را در گوشه بالای سمت چپ صفحه با فراخوانی متد insertImage قرار دهید.
- فایل را با فرمت PDF ذخیره کنید با استفاده از متد save.
public static void ConvertImageToPDF(String inputFileName, String outputFileName) throws Exception {
// یک نمونه از کلاس Document را ایجاد کنید
Document doc = new Document();
// یک شی از کلاس DocumentBuilder ایجاد کنید تا افزودن محتوا به سند آسانتر شود.
DocumentBuilder builder = new DocumentBuilder(doc);
// تصاویر را از دیسک با استفاده از خواننده مناسب بارگذاری کنید.
// فرمتهای فایلی که میتوانند بارگذاری شوند، بستگی به خوانندگان تصویر موجود بر روی ماشین دارد.
// فایل تصویر ورودی را با فراخوانی متد createImageInputStream بارگذاری کرده و به شیء ImageInputStream اختصاص دهید.
ImageInputStream iis = ImageIO.createImageInputStream(new File(inputFileName));
// متد getImageReaders را فراخوانی کنید که یک Iterator را برمیگرداند که شامل تمام ImageReaderهای ثبت شده در حال حاضر است و آن را به شیء کلاس ImageReader نسبت میدهد.
ImageReader reader = ImageIO.getImageReaders(iis).next();
// متد setInput را فراخوانی کنید که منبع ورودی را برای استفاده از ImageInputStream یا شی دیگر تنظیم میکند.
reader.setInput(iis, false);
// تعداد فریمها را در تصویر با فراخوانی متد getNumImages دریافت کنید.
int framesCount = reader.getNumImages(true);
// همه فریمها را مرور کنید.
for (int frameIdx = 0; frameIdx < framesCount; frameIdx++) {
// قبل از هر صفحه جدید، یک فاصله بخش درج کنید، در صورت وجود یک تصویر چند قاب.
if (frameIdx != 0)
builder.insertBreak(BreakType.SECTION_BREAK_NEW_PAGE);
// فریم فعال را انتخاب کنید و آن را به شیء کلاس BufferedImage اختصاص دهید
BufferedImage image = reader.read(frameIdx);
// ما میخواهیم اندازه صفحه با اندازه تصویر برابر باشد.
// اندازهگیری پیکسلها به نقطهها برای تنظیم صفحه به اندازه واقعی تصویر.
// متد getPageSetup را فراخوانی کنید تا به تنظیمات فعلی صفحه دسترسی پیدا کنید و آن را به شیء کلاس PageSetup اختصاص دهید.
PageSetup ps = builder.getPageSetup();
// Set the page height by calling the setPageWidth method
ps.setPageWidth(ConvertUtil.pixelToPoint(image.getWidth()));
// Invoke the setPageHeight method to set the width of the page
ps.setPageHeight(ConvertUtil.pixelToPoint(image.getHeight()));
// تصویر را در سند قرار دهید و با فراخوانی متد insertImage آن را در گوشه بالا سمت چپ صفحه قرار دهید.
builder.insertImage(
image,
RelativeHorizontalPosition.PAGE,
0,
RelativeVerticalPosition.PAGE,
0,
ps.getPageWidth(),
ps.getPageHeight(),
WrapType.NONE);
}
if (iis != null) {
iis.close();
reader.dispose();
}
// فایل را به فرمت PDF با فراخوانی متد save ذخیره کنید.
doc.save(outputFileName);
}
شما میتوانید خروجی را در تصویر زیر ببینید:

تبدیل PNG به PDF
مجوز رایگان بگیرید
شما میتوانید یک مجوز موقت رایگان برای امتحان API فراتر از محدودیتهای ارزیابی دریافت کنید.
جمع بندی
ما میتوانیم این پست وبلاگ را اینجا تمام کنیم. ما پیادهسازی کتابخانه PDF Java برای تبدیل PNG به PDF بهطور برنامهنویسی را نشان دادیم. این کتابخانه به شما اجازه میدهد تا یک مبدل PNG به PDF را با استفاده از چند خط کد بسازید. علاوه بر این، میتوانید به documentation این API تبدیل PNG به PDF مراجعه کنید. conholdate.com بهطور مداوم در مورد موضوعات جالب جدید مینویسد. بنابراین، لطفاً برای دریافت آخرین بهروزرسانیها در ارتباط بمانید.
Ask a question
شما میتوانید ما را از سوالات یا درخواستهای خود در forum مطلع کنید.
سوالات متداول
چگونه یک PNG را به PDF تبدیل کنیم؟
شما میتوانید از این library برای تبدیل PNG به PDF در برنامهنویسی Java استفاده کنید. این کتابخانه مستندات جامعی در مورد نحوه استفاده از آن ارائه میدهد.
چگونه یک PNG را به PDF ذخیره کنم بدون اینکه کیفیت آن کاهش یابد؟
به این بخش بروید تا بیاموزید چگونه یک فایل PNG را به عنوان یک فایل PDF با استفاده از یک کتابخانه Java ذخیره کنید. میتوانید از روش save برای ذخیره یک فایل PNG به عنوان یک فایل PDF استفاده کنید.