แปลง PNG เป็น PDF โดยใช้ Java

แปลง PNG เป็น PDF โดยใช้ Java

PNG และ PDF เป็นที่นิยมและเป็นรูปแบบไฟล์ที่ใช้กันอย่างแพร่หลายที่สุด ณ เวลาปัจจุบัน PNG เป็นรูปแบบไฟล์ภาพ ในขณะที่ PDF (Portable Document Format) ให้การแสดงข้อมูลที่เชื่อถือได้และมีประสิทธิภาพ คุณต้องแปลงรูปแบบไฟล์รูปภาพเป็น PDF ในบางสถานการณ์ ดังนั้นในบล็อกโพสต์นี้ เราจะได้เรียนรู้วิธีแปลง PNG เป็น PDF โดยใช้ Java PDF API เราจะเขียนข้อมูลโค้ดและขั้นตอนในการแปลงนี้ในแอปพลิเคชัน Java

เราจะกล่าวถึงหัวข้อต่อไปนี้ในบทความนี้:

ไลบรารี PDF ของ Java

ไลบรารี Java PDF นี้ติดตั้งง่ายและมีเอกสารเกี่ยวกับ การติดตั้ง เป็น API ระดับองค์กรที่นำเสนอคุณสมบัติการแปลงและการจัดการที่มีประสิทธิภาพ อย่างไรก็ตาม คุณสามารถ ดาวน์โหลด 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 เป็น PDF โดยใช้ Java

เราจะใช้คลาสและวิธีการที่เปิดเผยโดยไลบรารี Java PDF นี้ ช่วยให้คุณสามารถแปลง PNG เป็น PDF ได้โดยการเขียนซอร์สโค้ดสองสามบรรทัดใน Java

คุณสามารถทำตามขั้นตอนและข้อมูลโค้ดที่กล่าวถึงด้านล่าง:

  1. สร้างอินสแตนซ์ของคลาส Document
  2. สร้างออบเจ็กต์ของคลาส DocumentBuilder เพื่อให้ง่ายต่อการเพิ่มเนื้อหาลงในเอกสาร
  3. โหลดไฟล์รูปภาพอินพุตโดยการเรียกเมธอด createImageInputStream และกำหนดให้กับอ็อบเจ็กต์ของ ImageInputStream
  4. เรียกใช้เมธอด getImageReaders ที่ส่งคืน Iterator ที่มี ImageReaders ที่ลงทะเบียนไว้ทั้งหมดในปัจจุบัน และกำหนดให้กับอ็อบเจ็กต์ของคลาส ImageReader
  5. เรียกเมธอด setInput ที่ตั้งค่าแหล่งอินพุตเพื่อใช้กับ ImageInputStream ที่กำหนด
  6. รับจำนวนเฟรมในภาพโดยการเรียกเมธอด getNumImages
  7. วนซ้ำทุกเฟรม
  8. เลือกเฟรมที่ใช้งานอยู่และกำหนดให้กับออบเจ็กต์ของคลาส BufferedImage
  9. เรียกใช้เมธอด getPageSetup เพื่อเข้าถึงการตั้งค่าเพจปัจจุบันและกำหนดให้กับออบเจ็กต์ของคลาส PageSetup
  10. ตั้งค่าความสูงของหน้าโดยการเรียกเมธอด setPageWidth
  11. เรียกใช้เมธอด setPageHeight เพื่อกำหนดความกว้างของหน้า
  12. แทรกรูปภาพลงในเอกสารและวางไว้ที่มุมซ้ายบนของหน้าโดยเรียกเมธอด insertImage
  13. บันทึกไฟล์เป็นรูปแบบไฟล์ PDF โดยการเรียกเมธอด save
public static void ConvertImageToPDF(String inputFileName, String outputFileName) throws Exception {

    // สร้างอินสแตนซ์ของคลาสเอกสาร  
    Document doc = new Document();
    // สร้างอ็อบเจ็กต์ของคลาส DocumentBuilder เพื่อให้ง่ายต่อการเพิ่มเนื้อหาลงในเอกสาร  
    DocumentBuilder builder = new DocumentBuilder(doc);

    // โหลดรูปภาพจากดิสก์โดยใช้เครื่องอ่านที่เหมาะสม
    // รูปแบบไฟล์ที่สามารถโหลดได้ขึ้นอยู่กับโปรแกรมอ่านรูปภาพที่มีอยู่ในเครื่อง
    // โหลดไฟล์รูปภาพอินพุตโดยการเรียกเมธอด createImageInputStream และกำหนดให้กับอ็อบเจ็กต์ของ ImageInputStream
    ImageInputStream iis = ImageIO.createImageInputStream(new File(inputFileName));
    // เรียกใช้เมธอด getImageReaders ที่ส่งคืน Iterator ที่มี ImageReaders ที่ลงทะเบียนไว้ทั้งหมดในปัจจุบัน และกำหนดให้กับอ็อบเจ็กต์ของคลาส 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();
        // ตั้งค่าความสูงของหน้าโดยการเรียกเมธอด setPageWidth 
        ps.setPageWidth(ConvertUtil.pixelToPoint(image.getWidth()));
        // เรียกใช้เมธอด setPageHeight เพื่อกำหนดความกว้างของเพจ 
        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 โดยการเรียกวิธีการบันทึก
    doc.save(outputFileName);
}

คุณสามารถดูผลลัพธ์ได้ในภาพด้านล่าง:

การแปลง PNG เป็น PDF

การแปลง PNG เป็น PDF

รับใบอนุญาตฟรี

คุณสามารถรับ ใบอนุญาตชั่วคราวฟรี เพื่อทดลองใช้ API นอกเหนือข้อจำกัดในการประเมิน

สรุป

เราสามารถจบการโพสต์บล็อกนี้ได้ที่นี่ เราได้สาธิตการใช้งานไลบรารี Java PDF เพื่อแปลง PNG เป็น PDF โดยใช้ Java โดยทางโปรแกรม ไลบรารีนี้ให้คุณสร้างตัวแปลง PNG เป็น PDF โดยใช้โค้ดเพียงไม่กี่บรรทัด นอกจากนี้ คุณยังไปที่ เอกสารประกอบ ของ API การแปลง PNG เป็น PDF นี้ conholdate.com เขียนหัวข้อใหม่ๆ ที่น่าสนใจอย่างต่อเนื่อง ดังนั้นโปรดติดตามข่าวสารล่าสุดอยู่เสมอ

ถามคำถาม

คุณสามารถแจ้งให้เราทราบเกี่ยวกับคำถามหรือข้อสงสัยของคุณได้ใน ฟอรั่ม ของเรา

คำถามที่พบบ่อย

คุณจะแปลง PNG เป็น PDF ได้อย่างไร

คุณสามารถใช้ library นี้เพื่อแปลง PNG เป็น PDF ใน Java โดยทางโปรแกรม มีเอกสารที่ครอบคลุมเกี่ยวกับการใช้งาน

ฉันจะบันทึก PNG เป็น PDF โดยไม่สูญเสียคุณภาพได้อย่างไร

อ่าน [ส่วน] นี้ 5 เพื่อเรียนรู้วิธีบันทึก PNG เป็นไฟล์ PDF โดยใช้ไลบรารี Java คุณสามารถเรียกใช้เมธอด save เพื่อบันทึกไฟล์ PNG เป็นไฟล์ PDF

ดูสิ่งนี้ด้วย