Java - PDF에서 이미지를 삽입, 교체, 제거 또는 추출하는 방법

19219 단어 insertimagejavapdf
텍스트와 비교할 때 이미지는 일반적으로 의미를 전달하기 쉽고 PDF 문서를 더 매력적으로 만듭니다. 이미지는 PDF에서 중요한 역할을 하기 때문에 PDF에서 이미지를 삽입, 교체, 제거 또는 추출하는 방법을 아는 것은 모든 개발자에게 실질적인 이점이 될 수 있습니다. 이 문서에서는 Free Spire.PDF for .NET 을 사용하여 C#에서 이러한 작업을 수행하는 방법을 보여줍니다.
  • Insert an Image to PDF at a Specified Location
  • Replace an Image in PDF with Another Image
  • Remove a Specified Image in PDF
  • Extract images from PDF

  • Spire.Pdf.jar를 종속성으로 추가



    Maven 프로젝트에서 작업하는 경우 다음을 사용하여 pom.xml 파일에 종속성을 포함할 수 있습니다.

    <repositories>
        <repository>
            <id>com.e-iceblue</id>
            <name>e-iceblue</name>
            <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
        </repository>
    </repositories>
    <dependencies>
        <dependency>
            <groupId>e-iceblue</groupId>
            <artifactId>spire.pdf.free</artifactId>
            <version>5.1.0</version>
        </dependency>
    </dependencies>
    


    maven을 사용하지 않는 경우 this location 에서 제공되는 zip 파일에서 필요한 jar 파일을 찾을 수 있습니다. 이 자습서에 제공된 샘플 코드를 실행하려면 모든 jar 파일을 애플리케이션 lib 폴더에 포함합니다.

    지정된 위치에서 이미지를 PDF에 삽입



    drawImage() 메서드는 PDF 페이지의 지정된 위치에 지정된 너비와 높이로 이미지를 그리는 데 사용됩니다. 따라서 그리기 전에 미리 이미지 크기를 조정할 필요가 없습니다. 다음은 Java에서 새 PDF 문서에 이미지를 삽입하는 주요 단계입니다.
  • PdfDocument 개체를 만듭니다.
  • PdfDocument.getPages().add() 메서드를 사용하여 PDF에 페이지를 추가합니다.
  • PdfImage.fromFile() 메서드를 사용하여 이미지를 로드합니다.
  • 페이지에서 이미지 크기와 위치를 지정합니다.
  • PdfPageBase.getCanvas.drawImage() 메서드를 사용하여 페이지에 이미지를 그립니다.
  • 문서를 PDF 파일로 저장합니다.

  • import com.spire.pdf.FileFormat;
    import com.spire.pdf.PdfDocument;
    import com.spire.pdf.PdfPageBase;
    import com.spire.pdf.graphics.PdfImage;
    
    public class InsertImage {
    
        public static void main(String[] args) {
    
            //Create a PdfDocument object
            PdfDocument doc = new PdfDocument();
    
            //Set page margins
            doc.getPageSettings().setMargins(30);
    
            //Add a page
            PdfPageBase page = doc.getPages().add();
    
            //Load an image from path
            PdfImage image = PdfImage.fromFile("C:\\Users\\Administrator\\Desktop\\java-logo.jpg");
    
            //Specify the image width and height in PDF
            float width = image.getWidth() * 0.5f;
            float height = image.getHeight() * 0.5f;
    
            //Specify a position to draw image
            double x = 0f;
            float y = 0f;
    
            //Draw image on page canvas
            page.getCanvas().drawImage(image, x, y, width, height);
    
            //Save the document
            doc.saveToFile("output/InsertImage.pdf", FileFormat.PDF);
        }
    }
    




    PDF의 이미지를 다른 이미지로 바꾸기



    PDF에서 이미지를 바꾸려면 replaceImage() 메서드를 사용합니다. 이 방법은 교체된 새 이미지의 크기를 자동으로 조정하여 둘러싸인 다른 요소의 가독성에 영향을 미칩니다. 다음은 단계입니다.
  • PdfDocument 개체를 만듭니다.
  • PdfDocument.loadFromFile() 메서드를 사용하여 기존 PDF 문서를 로드합니다.
  • PdfDocument.getPages().get() 메서드를 사용하여 특정 페이지를 가져옵니다.
  • PdfImage.fromFile() 메서드를 사용하여 이미지를 로드합니다.
  • PdfDocument.replaceImage() 메서드를 사용하여 문서의 특정 이미지를 새 이미지로 바꿉니다.
  • 문서를 PDF 파일로 저장합니다.

  • import com.spire.pdf.FileFormat;
    import com.spire.pdf.PdfDocument;
    import com.spire.pdf.PdfPageBase;
    import com.spire.pdf.graphics.PdfImage;
    
    public class ReplaceImage {
        public static void main(String[] args) {
    
            //Load the PDF file
            PdfDocument doc = new PdfDocument();
            doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\Java-Programming.pdf");
    
            //Get the first page
            PdfPageBase page = doc.getPages().get(0);
    
            //Load an image
            PdfImage image = PdfImage.fromFile("C:\\Users\\Administrator\\Desktop\\java-logo.png");
    
            //Replace the first image in the first page with the loaded image
            page.replaceImage(0, image);
    
            //Save the file
            doc.saveToFile("output/ReplaceImage.pdf", FileFormat.PDF);
        }
    }
    




    PDF에서 지정된 이미지 제거



    PDF 문서의 이미지는 deleteImage() 메서드를 사용하여 쉽게 제거할 수 있습니다. 여기 단계가 있습니다.
  • **PdfDocument **객체를 만듭니다.
  • PdfDocument.loadFromFile() 메서드를 사용하여 기존 PDF 문서를 로드합니다.
  • PdfDocument.getPages().get() 메서드를 사용하여 특정 페이지를 가져옵니다.
  • PdfPageBase.deleteImage(int imageIndex) 메서드를 사용하여 인덱스별로 특정 이미지를 삭제합니다.
  • 문서를 PDF 파일로 저장합니다.

  • import com.spire.pdf.FileFormat;
    import com.spire.pdf.PdfDocument;
    import com.spire.pdf.PdfPageBase;
    
    public class RemoveImage {
        public static void main(String[] args) {
    
            //Create a PdfDocument object
            PdfDocument doc = new PdfDocument();
    
            //Load the sample PDF file
            doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\Java-Programming.pdf");
    
            //Get the specified page
            PdfPageBase page = doc.getPages().get(0);
    
            //Delete a particular image by its index
            page.deleteImage(0);
    
            //Save the file
            doc.saveToFile("output/DeleteImage.pdf", FileFormat.PDF);
        }
    }
    




    PDF에서 이미지 추출



    PDF 페이지의 이미지는 extractImages() 메서드를 사용하여 추출할 수 있습니다. 다음은 Free Spire.PDF를 사용하여 PDF 문서에서 모든 이미지를 추출하는 단계입니다.
  • PdfDocument 개체를 만듭니다.
  • PdfDocument.loadFromFile() 메서드를 사용하여 기존 PDF 문서를 로드합니다.
  • PdfDocument.getPages().get() 메서드를 사용하여 특정 페이지를 가져옵니다.
  • 문서의 모든 페이지를 반복하고 PdfPageBase.extractImages() 메서드를 사용하여 특정 페이지에서 이미지를 추출합니다.
  • 이미지를 로컬 폴더에 .png 파일로 저장합니다.

  • import com.spire.pdf.PdfDocument;
    import com.spire.pdf.PdfPageBase;
    
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import javax.imageio.ImageIO;
    
    public class ExtractImages {
    
        public static void main(String[] args) throws IOException {
    
            //Create a PdfDocument instance
            PdfDocument doc = new PdfDocument();
    
            //Load a PDF sample file
            doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\Java-Programming.pdf");
    
            //Declare an int variable
            int index = 0;
    
            //Loop through all pages
            for (Object page : doc.getPages()) {
    
                 PdfPageBase pageBase = (PdfPageBase) page;
    
                //Extract images from the given page
                for (BufferedImage image : pageBase.extractImages()) {
    
                    //Specify the file path and name
                    File output = new File("C:\\Users\\Administrator\\Desktop\\ExtractedImages\\" + String.format("Image_%d.png", index++));
    
                    //Save images as .png files
                    ImageIO.write(image, "PNG", output);
                }
            }
        }
    }
    


    좋은 웹페이지 즐겨찾기