diff --git a/Image Extraction/Image-to-Text-Replacement-in-PDF/.NET/Image-to-Text-Replacement-in-PDF.slnx b/Image Extraction/Image-to-Text-Replacement-in-PDF/.NET/Image-to-Text-Replacement-in-PDF.slnx new file mode 100644 index 00000000..717ead90 --- /dev/null +++ b/Image Extraction/Image-to-Text-Replacement-in-PDF/.NET/Image-to-Text-Replacement-in-PDF.slnx @@ -0,0 +1,3 @@ + + + diff --git a/Image Extraction/Image-to-Text-Replacement-in-PDF/.NET/Image-to-Text-Replacement-in-PDF/Data/Input.pdf b/Image Extraction/Image-to-Text-Replacement-in-PDF/.NET/Image-to-Text-Replacement-in-PDF/Data/Input.pdf new file mode 100644 index 00000000..6086ffc8 Binary files /dev/null and b/Image Extraction/Image-to-Text-Replacement-in-PDF/.NET/Image-to-Text-Replacement-in-PDF/Data/Input.pdf differ diff --git a/Image Extraction/Image-to-Text-Replacement-in-PDF/.NET/Image-to-Text-Replacement-in-PDF/Image-to-Text-Replacement-in-PDF.csproj b/Image Extraction/Image-to-Text-Replacement-in-PDF/.NET/Image-to-Text-Replacement-in-PDF/Image-to-Text-Replacement-in-PDF.csproj new file mode 100644 index 00000000..44184d4e --- /dev/null +++ b/Image Extraction/Image-to-Text-Replacement-in-PDF/.NET/Image-to-Text-Replacement-in-PDF/Image-to-Text-Replacement-in-PDF.csproj @@ -0,0 +1,15 @@ + + + + Exe + net8.0 + Image_to_Text_Replacement_in_PDF + enable + enable + + + + + + + diff --git a/Image Extraction/Image-to-Text-Replacement-in-PDF/.NET/Image-to-Text-Replacement-in-PDF/Output/gitkeep.txt b/Image Extraction/Image-to-Text-Replacement-in-PDF/.NET/Image-to-Text-Replacement-in-PDF/Output/gitkeep.txt new file mode 100644 index 00000000..e69de29b diff --git a/Image Extraction/Image-to-Text-Replacement-in-PDF/.NET/Image-to-Text-Replacement-in-PDF/Program.cs b/Image Extraction/Image-to-Text-Replacement-in-PDF/.NET/Image-to-Text-Replacement-in-PDF/Program.cs new file mode 100644 index 00000000..dad7de8b --- /dev/null +++ b/Image Extraction/Image-to-Text-Replacement-in-PDF/.NET/Image-to-Text-Replacement-in-PDF/Program.cs @@ -0,0 +1,53 @@ +using Syncfusion.Pdf; +using Syncfusion.Pdf.Exporting; +using Syncfusion.Pdf.Graphics; +using Syncfusion.Pdf.Parsing; + +// Load the input PDF document +using (PdfLoadedDocument document = new PdfLoadedDocument(Path.GetFullPath(@"Data/Input.pdf"))) +{ + // Loop through every page in the PDF + foreach (PdfLoadedPage page in document.Pages) + { + PdfLoadedPage loadedPage = page as PdfLoadedPage; + // Get graphics object to draw on the page + PdfGraphics graphics = loadedPage.Graphics; + // Get all images present in the current page + PdfImageInfo[] imageInfos = loadedPage.GetImagesInfo(); + // If no images found, skip this page + if (imageInfos == null || imageInfos.Length == 0) continue; + // Font for overlay text + PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 12f); + // Center the overlay text inside the image area + PdfStringFormat centerFormat = new PdfStringFormat + { + Alignment = PdfTextAlignment.Center, + LineAlignment = PdfVerticalAlignment.Middle + }; + // Save the current graphics state + graphics.Save(); + // Draw overlay text ("Image removed") on top of each image area + foreach (PdfImageInfo info in imageInfos) + { + string overlayText = "Image removed"; + + graphics.DrawString( + overlayText, + font, + PdfBrushes.Red, + info.Bounds, // Draw the text inside the image area + centerFormat + ); + } + // Restore the graphics state after drawing + graphics.Restore(); + // Remove the images from the PDF page + foreach (PdfImageInfo info in imageInfos) + { + loadedPage.RemoveImage(info); + } + } + // Save the output PDF + document.Save(Path.GetFullPath(@"Output/Output.pdf")); +} +