I'd like to save a page to pdf using a request call. I know the page url, including the page id, but I don't know the request or wiki call.
I haven't been able to find any confluence rest calls related to pdfs.
I'm using Python and the Rest API.
Hi!
You can do it, like this
https://github.com/atlassian-api/atlassian-python-api/blob/master/atlassian/confluence.py#L770
I'm working on the same type of issue but only for pdf's. If you're using Python, you can use the confluence package (https://atlassian-python-api.readthedocs.io/confluence.html) and the export_page function for pdf.
confluence.export_page(page_id)
As the doc indicates, if you're using Confluence Cloud, make sure when you instantiate confluence that you set the api_version to cloud.
confluence = Confluence( url='https://yourcompany.atlassian.net/', api_version='cloud', username=username, password=password)
This is how I solved it. I used curl and sent this command where pageId= 123456 was the ID number of the page. I call that line from a Windows DOS prompt via Matlab.curl -v -L -u "user_name:password" -H "X-Atlassian-Token: no-check" "https://confluence/spaces/flyingpdf/pdfpageexport.action?pageId=123456" --output "c:\output_dir\confluence_title.pdf"
Is it a typo that your pageId is "23456" in your description and "123456" in your curl command, or do you need to add a "1" at the beginning?
Yes, that was a typo. I fixed it and thanks for the catch.
Does it work? I think it just renders a page with link to download ..
It works for me, export the pdf.
That might have worked in the past, but it no longer works. It now gives the HTML for the page that waits for the .PDF file to be ready before displaying a link to download it.
I finally got it working:
confluence = Confluence( url="https://yourcompany.atlassian.net", username=user, password=pass,api_version="cloud")with open("output.pdf", "wb") as pdf_file: pdf_file.write(confluence.get_page_as_pdf("123456"))
Note that you have to add api_version="cloud" to the init, not cloud=True!
With api_version="cloud", the API wrapper will use get_pdf_download_url_for_confluence_cloud to wait for the long running task to be complete and return the correct URL.
See https://github.com/atlassian-api/atlassian-python-api/blob/717656071b8d352ef349ce4ed8dace1e8c7084ad/atlassian/confluence.py#L2463
PS: Atlassian people, this is confusing: why have both a cloud=True and api_version="cloud" option to the init? From the source code, I don't have the impression the cloud=True parameter is ever used?
I've been fighting with the "PDF conversion not successful" error for quite a while now, until I found the Discussion on Github:
https://github.com/atlassian-api/atlassian-python-api/issues/1057
So, when installing the module directly from github clone with:
pip install -e .
the PDF exporter finally works!
api_version='cloud', confluence.get_page_as_pdf(<id>)
It looks like you're new here. Sign in or register to get started.