C를 사용하여 PDF에서 이미지 추가, 삭제, 추출 및 바꾸기 #
31521 단어 csharppdfdotnetproductivity
SyncfusionPDF Library은 하나입니다.Adobe 종속 항목을 참조하지 않고 PDF 파일에 이미지를 추가하고 조작할 수 있는 NET PDF 라이브러리입니다.
다음은 이 문서에서 살펴볼 단계입니다.
어플리케이션 생성 시작
C를 사용하여 PDF 파일에 이미지 추가
다음 절차에 따라 Syncfusion PDF 라이브러리를 사용하여 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 파일에서 모든 이미지를 추출하는 방법을 살펴보겠습니다.
다음 코드에서는 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 문서에서 이미지를 제거하려면 다음 절차를 따르십시오.
다음 코드에서는 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 문서에서 기존 이미지를 수정할 수 있습니다.
이를 위해서는 다음이 필요합니다.
다음 예제에서는 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를 통해서도 저희에게 연락하실 수 있습니다.우리는 기꺼이 당신을 돕겠습니다!
관련 블로그
Reference
이 문제에 관하여(C를 사용하여 PDF에서 이미지 추가, 삭제, 추출 및 바꾸기 #), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/syncfusion/add-remove-extract-and-replace-images-in-pdf-using-c-480i텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)