How can I remove background from existed pdf

Product: go-SDK

Product Version: 2.4.12

Please give a brief summary of your issue:
I want to remove the background (make it transparent) from the PDF (from external sources) if it was set as background, but not mediabox-sized rectangle

Please describe your issue and provide steps to reproduce it:

I want to remove unnecessary elements from an existing PDF, convert it to a PNG with a transparent background, and insert it as an image into another doc. But it doesn’t work if the background is set up as background color(straight or gradient)/background image.

For these purposes, I am preparing a PDF before cropping with removing from the PDF all elements that are not necessary in the original doc:

  1. Create a new page in the original document,
  2. Copy only the elements I am interested in
  3. Make transparent all ElementE_path elements that are not in the list of kept elements, or if their element.GetBBox() returns nil

It works until the background is a real background (another editor recognizes it as background, but not an element)

So the question is how to recognize and control a pdf background or copy elements to a new page without it

Sorry for not providing any code example; my code has a lot of logic that can mess you up.

Anyway, I haven’t found any documentation on the operation with a PDF background, and I would really appreciate it if you could provide some. I’m doing a POC to understand if your SDK is appropriate for our needs

Hello, I’m AiRon, an automated tech support bot :robot:
While you wait for one of our customer support representatives, I can help you with your question.


It seems like you’re trying to remove the background from a PDF and convert the remaining content to a PNG with a transparent background. This can be complex due to the way PDFs handle backgrounds, which can be set using various methods such as color fills or images behind content. Using Apryse’s SDK, you can manipulate the PDF elements by understanding and working with its content streams.

Some things you can try:

  • Use the ElementReader to traverse through the PDF’s elements. Identify and isolate the elements that compose the background.

  • Once identified, you can remove these elements from the content stream if they are not required. Ensure you’re correctly identifying elements that are purely for the background.

  • Use the ElementWriter to create a new PDF page with only the elements you want to keep.

  • When converting the PDF to PNG, ensure the background is set to transparent by using the appropriate settings in the conversion function.




Here are some resources that might help you:



Hopefully, this helps you solve your problem while you wait for a human to get back to you.

Thanks for reaching out. Could you furnish us with one of the PDFs you’re working with so we can determine the nature of the background?

Hi! To make the element transparent, I used
element.SetPathFill(false)

Now I have added:

gState.SetFillColor(pdftron.NewColorPt(0.0, 0.0, 0.0, 0.0))
gState.SetFlatness(1.0)
gState.SetFillOpacity(0.0)
gState.SetStrokeOpacity(0.0)
gState.SetFillOverprint(false)

and it works for me

Thank you very much for your quick response :hugs: