1. from urllib.parse import urlencode
    2. def office_share(url: str, embed=True, wd_print=0, wd_embed_code=0, start_on=1, wd_eaa=1, **kwargs) -> str:
    3. """
    4. office类型文档在线预览
    5. :param url: office文档在互联网的公开访问地址 http|https 开头
    6. :param embed: 是否以嵌入形式预览
    7. :param wd_print: 是否允许打印(word有效)
    8. :param wd_embed_code: 是否允许查看嵌入代码(word有效)
    9. :param start_on: 起始页面(word有效)
    10. :param wd_eaa: 是否启用自动前移设置(ppt有效)
    11. :return: 预览地址
    12. """
    13. base_url = 'https://view.officeapps.live.com/op/'
    14. if not embed:
    15. return f'{base_url}view.aspx?{urlencode({"src": url})}'
    16. url_params = {
    17. **{
    18. 'wdStartOn': start_on,
    19. 'wdPrint': 1 if wd_print else 0,
    20. 'wdEmbedCode': 1 if wd_embed_code else 0,
    21. 'wdEaa': 1 if wd_eaa else 0,
    22. 'src': url,
    23. },
    24. **kwargs
    25. }
    26. return f'{base_url}embed.aspx?{urlencode(url_params)}'