zoukankan      html  css  js  c++  java
  • word转pdf

    https://zhuanlan.zhihu.com/p/140363567
    https://downloadarchive.documentfoundation.org/libreoffice/old/6.2.5.2/rpm/x86_64/
    https://www.cnblogs.com/ruozhu/p/11190195.html
    https://blog.csdn.net/OnlyLove_longshao/article/details/108103178
    win
    https://www.bbsmax.com/A/LPdooZv8d3/
    https://blog.csdn.net/weixin_30920513/article/details/98838846
    soffice --headless --convert-to pdf C:/Users/liqiang/Desktop/ww/tt.docx --outdir C:/Users/liqiang/Desktop/ww

    import subprocess
    import os
    import pythoncom
    try:
        from comtypes import client
        # pip install comtypes
    except ImportError:
        client = None
    
    try:
        from win32com.client import constants, gencache,Dispatch
        # pip install pypiwin32
    except ImportError:
        constants = None
        gencache = None
    
    #1.win系统下生成pdf
    def doc2pdf(docPath, pdfPath):
        """
            convert a doc/docx document to pdf format
            :param doc: path to document
            """
        docPathTrue = os.path.abspath(docPath)
        if client is None:#判断环境,linux环境这里肯定为None
            return doc2pdf_linux(docPathTrue, pdfPath)
        pythoncom.CoInitialize()
        word = gencache.EnsureDispatch('Word.Application')
        doc = word.Documents.Open(docPathTrue, ReadOnly=1)
        doc.ExportAsFixedFormat(pdfPath,
                                constants.wdExportFormatPDF,
                                Item=constants.wdExportDocumentWithMarkup,
                                CreateBookmarks=constants.wdExportCreateHeadingBookmarks)
    
        word.Quit(constants.wdDoNotSaveChanges)
    
    
    
    #方式二
    # import subprocess
    # import pythoncom
    #
    # try:
    #     from comtypes import client
    #     # pip install comtypes
    # except ImportError:
    #     client = None
    #
    # try:
    #     from win32com.client import Dispatch
    # except:
    #     Dispatch = None
    # #3.win
    # def doc2pdf(doc_path,pdf_path):
    #     if client is None:  # 判断环境,linux环境这里肯定为None
    #         return doc2pdf_linux(doc_path, pdf_path)
    #     pythoncom.CoInitialize()
    #     word = Dispatch('Word.Application')
    #     doc = word.Documents.Open(doc_path)
    #     # doc.SaveAs(input_file.replace(".docx", ".pdf"), FileFormat=17)
    #     doc.SaveAs(pdf_path, FileFormat=17)
    #     doc.Close()
    #     word.Quit()
    
    # print(doc2pdf(r"E:Project806flyapidoc	emp	emp.docx",r"E:Project806flyapidocpdf33.pdf"))
    
    #2.linux下生成pdf
    def doc2pdf_linux(docPath, pdfPath):
        cmd = 'libreoffice6.2 --headless --convert-to pdf'.split() + [docPath] + ['--outdir'] + [pdfPath]
        p = subprocess.Popen(cmd, stderr=subprocess.PIPE, stdout=subprocess.PIPE)
        p.wait(timeout=30)
        stdout, stderr = p.communicate()
        if stderr:
            raise subprocess.SubprocessError(stderr)
  • 相关阅读:
    Oracle数据类型再探:plsql能建表时能用的数据类型
    数据库中的不同类型
    数据库类型研究
    代码块,静态变量,静态代码块,运算符优先级
    JAVA运算符
    Java多线程详解
    JAVA对象序列化(Serializable、ObjectOutputStream、ObjectInputStream、 transient)
    java的IO详解
    Java死锁
    Java重载、覆写、this、super、抽象类、接口
  • 原文地址:https://www.cnblogs.com/tfzz/p/14790873.html
Copyright © 2011-2022 走看看