我有一个python脚本试图将汇合页面导出为pdf并尝试了几种方法失败:
1.WGET:
wget --ask-password --user xxxxxxxx -O out.pdf -q http://confluence.xxxx.com/spaces/flyingpdf/pdfpageexport.action?pageId=xxxxxxxx
这不会起作用,因为它只返回一个登录对话框而不是实际的pdf。
2.REMOTE API:
有一个exportSpace方法可以工作,但我只想要一个页面,getPage方法并没有导出到pdf据我所知。此外,这在技术上已被弃用,因此Atlassian推荐:
3.REST API
使用:https://docs.atlassian.com/atlassian-confluence/REST/latest-server/
这似乎没有选项将页面导出为PDF
我希望得到一个可以使这些方法起作用的答案,或者如果你有一个完全不同的方法,只要我能从python脚本中获取页面的PDF,我就不在乎。
答案 0 :(得分:0)
您可以将脚本与Confluence Bob Swift CLI插件集成。此插件支持各种类型的导出。
步骤1:在前端和后端的两个位置安装插件。
步骤2:通过此命令验证安装 -
/location-of-plugin-installation-directory/.confluence.sh --action getServerInfo
步骤3:使用以下命令导出空间
/location-of-plugin-installation-directory/.confluence.sh --action exportSpace --space "zconfluencecli" --file "target/output/export/exportSpacepdf.txt" --exportType "PDF"
答案 1 :(得分:0)
#This worked for me
#pip install atlassian-python-api
from atlassian import Confluence
#This creates connection object where you provide your confluence URL and credentials.
confluence = Confluence(
url='https://confluence.xxxxx.com/',
username='xxxxxxx',
password='yyyyyyy')
# If you know page_id of the page, you can get page id by going to "Page Information" menu tab and the page id will be visible in browser as viewinfo.action?pageId=244444444444. This will return a response having key:value pairs having page details.
page = confluence.get_page_by_id(page_id=<some_id>)
your_fname = "abc.pdf"
#A function to create pdf from byte-stream responce
def save_file(content):
file_pdf = open(your_fname, 'wb')
file_pdf.write(content)
file_pdf.close()
print("Completed")
#Get your confluence page as byte-stream
response = confluence.get_page_as_pdf(page['id'])
#Call function that will create pdf and save file using byte-stream response you received above.
save_file(content=response)
答案 2 :(得分:0)
基于Michael Pillai的答案,我想修改一下,对于Confluence Cloud,您必须添加api_version='cloud'
关键字:
confluence = Confluence(
url='https://confluence.xxxxx.com/',
username='xxxxxxx',
password='yyyyyyy',
api_version='cloud' # <<< important for the pdf export <<<<
)
content = confluence.get_page_as_pdf(page_id)
从官方pdf export example复制。
答案 3 :(得分:0)
最新的文档使用
confluence.export_page(page_id)
对于仍在寻找此信息的任何人。