pdfbox-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexander Teut <alexander.a.t...@gmail.com>
Subject Re: How to remove a specific image from PDF?
Date Tue, 12 Dec 2017 21:11:50 GMT
Thanks!

That's actually my question and my answer :)

On 12 December 2017 at 21:55, Tilman Hausherr <THausherr@t-online.de> wrote:

> Somewhat answered in comments in
> https://stackoverflow.com/questions/47757971/how-to-remove-
> a-specific-image-from-a-pdf-with-pdfbox
>
> Tilman
>
>
> Am 12.12.2017 um 13:29 schrieb Alexander Teut:
>
>> I need to remove a specific image from PDF file according its
>> metadata. Sadly. all examples I can find in Internet are using
>> discarded methods.
>>
>> I draw this image with contentStream.drawImage() method and mark it
>> with a metadata. I needto allow my soft to remove added images as
>> well/
>>
>>
>> I'm using the following code:
>>
>> List<COSName> itemsToRemove = new ArrayList<>();
>>
>> COSDictionary imagesContainer =
>> (COSDictionary)resources.getCOSObject().getDictionaryObject(
>> COSName.XOBJECT);
>>
>> try (PDDocument doc = PDDocument.load(new ByteArrayInputStream(pdf))) {
>> doc.getPages().forEach(page ->
>>      {
>>          PDResources resources = page.getResources();
>>          List<COSName> itemsToRemove = new ArrayList<>();
>>
>>          resources.getXObjectNames().forEach(propertyName -> {
>>              if(!resources.isImageXObject(propertyName)) {
>>                  return;
>>              }
>>              PDXObject pdxObject = resources.getXObject(propertyName);
>>              PDImageXObject pdImageXObject = (PDImageXObject)pdxObject;
>>              PDMetadata metadata = pdImageXObject.getMetadata();
>>              if(checkMetadata(metadata)){
>>
>>                 itemsToRemove.add(propertyName);
>>
>>                  // What should I use here?
>>              }
>>          });
>>
>>          itemsToRemove.forEach(imagesContainer::removeItem);
>>       });
>>      doc.save(baos);
>> } catch (Exception e) {
>>      //Code here
>>
>> }
>>
>> It produces a cleared PDF that shows an error when I open it. Looks like I
>> should remove it from contentStream too. How to do that?
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
> For additional commands, e-mail: users-help@pdfbox.apache.org
>
>


-- 
Regards,
Alexander Teut
http://g <http://rikkimongoose.ru>ithub.com/rikkimongoose

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message