mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2025-06-13 02:55:03 +00:00
44 lines
1.6 KiB
Java
44 lines
1.6 KiB
Java
![]() |
package stirling.software.SPDF.service;
|
||
|
|
||
|
import java.io.IOException;
|
||
|
|
||
|
import org.apache.pdfbox.cos.COSName;
|
||
|
import org.apache.pdfbox.pdmodel.PDDocument;
|
||
|
import org.apache.pdfbox.pdmodel.PDPage;
|
||
|
import org.apache.pdfbox.pdmodel.PDResources;
|
||
|
import org.apache.pdfbox.pdmodel.graphics.PDXObject;
|
||
|
import org.springframework.stereotype.Service;
|
||
|
|
||
|
/**
|
||
|
* Service class responsible for removing image objects from a PDF document.
|
||
|
*/
|
||
|
@Service
|
||
|
public class PdfImageRemovalService {
|
||
|
|
||
|
/**
|
||
|
* Removes all image objects from the provided PDF document.
|
||
|
*
|
||
|
* This method iterates over each page in the document and removes any
|
||
|
* image XObjects found in the page's resources.
|
||
|
*
|
||
|
* @param document The PDF document from which images will be removed.
|
||
|
* @return The modified PDF document with images removed.
|
||
|
* @throws IOException If an error occurs while processing the PDF document.
|
||
|
*/
|
||
|
public PDDocument removeImagesFromPdf(PDDocument document) throws IOException {
|
||
|
// Iterate over each page in the PDF document
|
||
|
for (PDPage page : document.getPages()) {
|
||
|
PDResources resources = page.getResources();
|
||
|
// Iterate over all XObject names in the page's resources
|
||
|
for (COSName name : resources.getXObjectNames()) {
|
||
|
// Check if the XObject is an image
|
||
|
if (resources.isImageXObject(name)) {
|
||
|
// Remove the image XObject by setting it to null
|
||
|
resources.put(name, (PDXObject) null);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return document;
|
||
|
}
|
||
|
}
|