When saving the ppt to pdf, the picture is not exported.
The picture is in EMF format.
It works in Windows 11.
Missing Picture.zip (170.6 KB)
When saving the ppt to pdf, the picture is not exported.
The picture is in EMF format.
It works in Windows 11.
Missing Picture.zip (170.6 KB)
Additional info: The following works on Windows. On Linux, it raises “RuntimeError: Proxy error(ArgumentException): Parameter is not valid.” at image.system_image.save
for slide in presentation.slides: for shape in slide.shapes: if isinstance(shape, slides.PictureFrame): image = shape.picture_format.picture.image image_type = image.content_type.split("/")[1] if image_type in ("wmf", "x-wmf"): # x-wmf is actually emf buffer = BytesIO() image.system_image.save( buffer, pydrawing.imaging.ImageFormat.png ) image.replace_image(buffer.getvalue())
It looks like a similar issue has been fixed in Aspose.Slides for C++ 24.5.
@wolfgang.colsman,
Thank you for contacting free support. It will take me some time to check the problem you described. I will get back to you soon.
@wolfgang.colsman,
Thank you for your patience. Unfortunately, I could not use your Dockerfile and reproduce the problem with the missing EMF image and the RuntimeError
you described. I get the following error:
Dockerfile:9
--------------------
7 | # Grab a fresh copy of the image
8 | #====================================================================================
9 | >>> FROM --platform=linux/amd64 $DOCKER_REGISTRY/python:${RUNTIME_VERSION}-slim-bookworm AS python-slim-bookworm
10 |
11 | #====================================================================================
--------------------
ERROR: failed to solve: failed to parse stage name "/python:3.11-slim-bookworm": invalid reference format
Could you please check the issues carefully and share the simplest standalone projects to reproduce the problems you encountered?
@wolfgang.colsman,
Thank you for the Dockerfile. I am working on the issue and will get back to you soon.
@wolfgang.colsman,
Unfortunately, I get the following error:
Traceback (most recent call last): File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/opt/awslambdaric/__main__.py", line 25, in <module> main(sys.argv) File "/opt/awslambdaric/__main__.py", line 19, in main lambda_runtime_api_addr = os.environ["AWS_LAMBDA_RUNTIME_API"] ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen os>", line 679, in __getitem__ KeyError: 'AWS_LAMBDA_RUNTIME_API'
Could you please share the simplest standalone project to reproduce the problems you described?
@wolfgang.colsman,
Thank you for the files. I am working on the issue and will get back to you soon.
@wolfgang.colsman,
Thank you for your patience. I’ve reproduced the problem with the missing WMF image and ArgumentException
.
We have opened the following new ticket(s) in our internal issue tracking system and will deliver their fixes according to the terms mentioned in Free Support Policies.
Issue ID(s):
SLIDESPYNET-235 - WMF image is missing when converting PPT to PDF
SLIDESPYNET-236 - Proxy error(ArgumentException) occurs when trying to build a Docker container
You can obtain Paid Support Services if you need support on a priority basis, along with the direct access to our Paid Support management team.
I will be more than happy to pay for support once I have paid for a license. As this issue is a show stopper for us it would be helpful if you can make a commitment that you actually can get this fixed.
I met very few vendors yet that can render the full spec of wmf and emf on Linux. The typical open source libraries provide only partial implementations.
Another option is that you provide an interface that allows us to retrieve the raw binary and do the implementation ourselves, as I have outlined in the testcase. It is not that hard, just a lot of work. All the format specs are public.
@wolfgang.colsman,
Thank you for your message. We understand the importance of this issue and will do our best to resolve it as soon as possible. We will make sure to get back to you with updates. Thank you for your patience and cooperation.