C를 사용하여 PDF에서 이미지 추가, 삭제, 추출 및 바꾸기 #

PDF는 이미 가장 유행하고 널리 사용되는 파일 형식 중의 하나가 되었다.이미지는 PDF 파일의 중요한 구성 요소입니다.만약 Adobe Acrobat Pro DC 없다면, PDF 파일에 그림을 추가, 삭제, 추출, 교체하는 것은 일반적으로 매우 어렵다.이 문서에서는 Syncfusion PDF 라이브러리의 도움말 아래 C#을 사용하여 PDF 문서에서 이를 구현하는 방법을 학습합니다.
SyncfusionPDF Library은 하나입니다.Adobe 종속 항목을 참조하지 않고 PDF 파일에 이미지를 추가하고 조작할 수 있는 NET PDF 라이브러리입니다.
다음은 이 문서에서 살펴볼 단계입니다.
  • Getting started with app creation
  • Add an image in a PDF using C#
  • Extract images from a PDF using C#
  • Remove images from a PDF using C#
  • Replace image in a PDF using C#
  • 어플리케이션 생성 시작

  • 하나Console application using Visual Studio를 만듭니다.
  • 도구 > NuGet Package Manager Manager 콘솔에서 Package Manager 콘솔을 엽니다.
  • 다음 명령을 실행하여 설치Syncfusion PDF .NET Core NuGet package합니다.
  • | 패키지 Syncfusion을 설치합니다.Pdf.그물코어 |

    C를 사용하여 PDF 파일에 이미지 추가


    다음 절차에 따라 Syncfusion PDF 라이브러리를 사용하여 PDF 파일에 이미지를 추가합니다.
  • 기존 PDF 문서를 PdfLoadedDocument 클래스로 로드합니다.
  • 그런 다음 PdfLoadedPage u 객체에서 페이지의 참조를 가져옵니다(이미지를 포함하려는 경우).
  • 이제 페이지에서 PdfGraphics 객체를 가져옵니다.
  • 이미지를 파일에서 *PdfBitmap* 객체로 로드합니다.
  • DrawImage 방법을 사용하여 페이지에 이미지를 그립니다.
  • 마지막으로 save u 방법을 사용하여 PDF 파일을 저장합니다.
  • 다음 코드에서는 C#을 사용하여 PDF 파일에 이미지를 추가하는 방법을 보여 줍니다.
    using System.IO;
    using Syncfusion.Drawing;
    using Syncfusion.Pdf;
    using Syncfusion.Pdf.Graphics;
    using Syncfusion.Pdf.Parsing;
    
    namespace Add_image
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Load a PDF document.
                PdfLoadedDocument doc = new PdfLoadedDocument(new FileStream("../../../../../Data/input.pdf",FileMode.Open));
                //Get first page from document.
                PdfLoadedPage page = doc.Pages[0] as PdfLoadedPage;
                //Create PDF graphics for the page.
                PdfGraphics graphics = page.Graphics;
                //Load the image from the disk.
                PdfBitmap image = new PdfBitmap(new FileStream("../../../../../Data/Sample.jpg",FileMode.Open));
                //Draw the image.
                graphics.DrawImage(image, new RectangleF(50, 150, 400, 250));
                //Create stream object to save file.
                FileStream stream = new FileStream("Output.pdf", FileMode.Create);
                //Save the document.
                doc.Save(stream);
                //Close the document.
                doc.Close(true);
                //Close stream.
                stream.Close();
            }
        }
    }
    
    이 코드 예시를 실행하면 다음 화면 캡처와 비슷한 PDF 문서를 얻을 수 있습니다.
    C를 사용하여 PDF 문서에 추가한 이미지 #

    C 언어를 사용하여 PDF에서 이미지 추출


    다음 절차에 따라 PDF 파일에서 모든 이미지를 추출하는 방법을 살펴보겠습니다.
  • 기존 PDF 문서를 PdfLoadedDocument 클래스로 로드합니다.
  • PdfLoadedPage 객체의 페이지(이미지 포함)에 대한 참조를 가져옵니다.
  • 그런 다음 ExtractImages 방법을 사용하여 특정 페이지에서 모든 이미지를 추출합니다.
  • 마지막으로 추출한 이미지를 디스크에 저장합니다.
  • 참고: 이미지를 추출하기 위해 Syncfusion.Pdf.Imaging.Net.Core NuGet 패키지를 설치합니다.NET 핵심 어플리케이션
    다음 코드에서는 C#을 사용하여 기존 PDF 문서에서 이미지를 추출하는 방법을 보여 줍니다.
    using System.Drawing;
    using System.IO;
    using Syncfusion.Pdf;
    using Syncfusion.Pdf.Exporting;
    using Syncfusion.Pdf.Parsing;
    
    namespace Extract_images
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Load the template document.
                PdfLoadedDocument doc = new PdfLoadedDocument(new FileStream("../../../../../Data/ImageInput.pdf",FileMode.Open));
                //Load the first page.
                PdfPageBase pageBase = doc.Pages[0];
                //Extract images from first page.
                Image[] extractedImages = pageBase.ExtractImages();
                //Save images to file.
                for (int i = 0; i < extractedImages.Length; i++)
                {
                    extractedImages[i].Save("Image" + i + ".jpg");
                }
    
                //Close the document.
                doc.Close(true);
    
            }
        }
    }
    

    C를 사용하여 PDF에서 이미지 제거


    Syncfusion PDF 라이브러리를 사용하면 PDF 문서에서 필요하지 않은 이미지를 쉽게 제거할 수 있습니다.따라서 파일 크기가 크게 줄어듭니다.
    PDF 문서에서 이미지를 제거하려면 다음 절차를 따르십시오.
  • 기존 PDF 문서를 PdfLoadedDocument 클래스로 로드합니다.
  • PdfLoadedPage uu object u. 에서 페이지의 참조를 가져옵니다(이미지를 삭제하려면).
  • 그리고 PdfImageInfo 대상을 사용하여RemoveImage 방법을 호출하여 이미지를 제거합니다.
  • 마지막으로 수정된 PDF 문서를 저장합니다.
  • 참고 애플리케이션의 이미지를 제거하려면 Syncfusion.Pdf.Imaging.Net.Core NuGet 패키지를 설치합니다.NET 핵심 어플리케이션
    다음 코드에서는 C#을 사용하여 기존 PDF 문서에서 이미지를 제거하는 방법을 보여 줍니다.
    using Syncfusion.Pdf;
    using Syncfusion.Pdf.Exporting;
    using Syncfusion.Pdf.Parsing;
    using System.IO;
    
    namespace Remove_images
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Load the template document.
                PdfLoadedDocument doc = new PdfLoadedDocument(new FileStream("../../../../../Data/ImageInput.pdf",FileMode.Open));
                //Get first page of the document.
                PdfLoadedPage page = doc.Pages[0] as PdfLoadedPage;
                //Remove first image in the page.
                page.RemoveImage(page.GetImagesInfo()[0]);
                FileStream stream = new FileStream("output.pdf", FileMode.Create);
                //Save the modified document to file.
                doc.Save(stream);
                //Close the PDF document.
                doc.Close(true);
                stream.Close();
    
            }
        }
    }
    
    이 코드 예시를 실행하면 다음 화면 캡처와 비슷한 출력을 얻을 수 있습니다.
    C를 사용하여 PDF에서 이미지 삭제 #

    C를 사용하여 PDF의 이미지 바꾸기


    기존 이미지를 새 이미지로 바꾸거나 PDF 문서에서 기존 이미지를 수정할 수 있습니다.
    이를 위해서는 다음이 필요합니다.
  • 먼저 대체할 이미지를 삭제합니다.
  • 그런 다음 이미지를 제거한 위치에 새 이미지를 그립니다.
  • 참고 이미지에서 이미지를 바꾸려면 Syncfusion.Pdf.Imaging.Net.Core NuGet 패키지를 설치합니다.NET 핵심 어플리케이션
    다음 예제에서는 PDF 문서의 기존 이미지를 픽셀 이미지로 바꿉니다.
    using Syncfusion.Pdf;
    using Syncfusion.Pdf.Exporting;
    using Syncfusion.Pdf.Graphics;
    using Syncfusion.Pdf.Parsing;
    using System;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System.IO;
    
    namespace Replace_image
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Load the template document.
                PdfLoadedDocument doc = new PdfLoadedDocument(new FileStream("../../../../../../Data/ImageInput.pdf",FileMode.Open));
                //Get first page of the document.
                PdfLoadedPage page = doc.Pages[0] as PdfLoadedPage;
                //Get image info of the first image.
                PdfImageInfo pdfImageInfo = page.GetImagesInfo()[0];
                RectangleF bounds = pdfImageInfo.Bounds;
                //Remove first image in the page.
                page.RemoveImage(pdfImageInfo);
                //Pixlate the existing image.
                Stream pixlated = Pixelate((Bitmap)pdfImageInfo.Image, new Rectangle(0, 0, pdfImageInfo.Image.Width, pdfImageInfo.Image.Height), 15);
                //Draw the pixlated image in the existing image bounds.
                page.Graphics.DrawImage(new PdfBitmap(pixlated), bounds.X,bounds.Y,bounds.Width,bounds.Height);
    
                FileStream stream = new FileStream("output.pdf", FileMode.Create);
                //Save the modified document to file.
                doc.Save(stream);
                //Close the PDF document.
                doc.Close(true);
    
            }
    
            private static Stream Pixelate(Bitmap image, Rectangle rectangle, Int32 pixelateSize)
            {
                Bitmap pixelated = new System.Drawing.Bitmap(image.Width, image.Height);
    
                // Make an exact copy of the bitmap provided.
                using (Graphics graphics = System.Drawing.Graphics.FromImage(pixelated))
                    graphics.DrawImage(image, new System.Drawing.Rectangle(0, 0, image.Width, image.Height),
                        new Rectangle(0, 0, image.Width, image.Height), GraphicsUnit.Pixel);
    
                // look at every pixel in the rectangle while making sure we're within the image bounds.
                for (Int32 xx = rectangle.X; xx < rectangle.X + rectangle.Width && xx < image.Width; xx += pixelateSize)
                {
                    for (Int32 yy = rectangle.Y; yy < rectangle.Y + rectangle.Height && yy < image.Height; yy += pixelateSize)
                    {
                        Int32 offsetX = pixelateSize / 2;
                        Int32 offsetY = pixelateSize / 2;
    
                        // Make sure that the offset is within the boundry of the image.
                        while (xx + offsetX >= image.Width) offsetX--;
                        while (yy + offsetY >= image.Height) offsetY--;
    
                        // Get the pixel color in the center.
                        Color pixel = pixelated.GetPixel(xx + offsetX, yy + offsetY);
    
                        // For each pixel in the pixelate size, set it to the center color.
                        for (Int32 x = xx; x < xx + pixelateSize && x < image.Width; x++)
                            for (Int32 y = yy; y < yy + pixelateSize && y < image.Height; y++)
                                pixelated.SetPixel(x, y, pixel);
                    }
                }
    
                MemoryStream stream = new MemoryStream();
                pixelated.Save(stream, ImageFormat.Jpeg);
                stream.Position = 0;
                pixelated.Dispose();
                return stream;
            }
        }
    }
    
    이 코드 예시를 실행하면 다음 화면 캡처와 비슷한 그림을 얻을 수 있습니다.
    PDF의 이미지를 C로 교체 #

    리소스


    또한 GitHub에서 전체 예제Add, Extract, Remove, and Replace Images from PDF documents using C#를 사용할 수 있습니다.

    결론


    읽어주셔서 감사합니다!이 블로그에서는 C#을 사용하여 PDF 문서에서 이미지를 추가, 추출, 삭제 및 교체하는 방법을 배웠습니다.저희 SyncfusionPDF Library은 PDF 파일을 보고, 보고, 인쇄할 수 있는 PDF 뷰어 컨트롤을 제공합니다.강력한 변환 API로 HTML, Word, Excel, PowerPoint 및 이미지를 PDF 형식으로 쉽게 변환할 수 있습니다.우리 documentation를 자세히 읽으면 다른 옵션과 기능, 그리고 첨부된 코드 예시를 발견할 수 있습니다.
    사진 한 장에 천 개의 단어를 말할 수 있다.따라서 Syncfusion PDF 라이브러리를 사용하여 C#를 사용하여 PDF 문서의 이미지를 손쉽게 처리할 수 있습니다!
    만약 이 기능들에 대해 궁금한 것이 있다면, 본문의 평론 부분에서 우리에게 알려 주십시오.저희support forum, Direct-Trac 또는 feedback portal를 통해서도 저희에게 연락하실 수 있습니다.우리는 기꺼이 당신을 돕겠습니다!

    관련 블로그




  • 7 Ways to Compress PDF Files in C#, VB.NET
  • 좋은 웹페이지 즐겨찾기