Hướng dẫn how do i convert a docx to pdf in python? - làm cách nào để chuyển từ docx sang pdf trong python?

Tôi được giao nhiệm vụ chuyển đổi hàng tấn tệp .doc thành .pdf. Và cách duy nhất mà người giám sát của tôi muốn tôi làm điều này là thông qua MSWORD 2010. Tôi biết tôi sẽ có thể tự động hóa điều này với tự động hóa Python Com. Chỉ có vấn đề là tôi không biết làm thế nào và bắt đầu từ đâu. Tôi đã thử tìm kiếm một số hướng dẫn nhưng không thể tìm thấy bất kỳ hướng dẫn nào (có thể là tôi có thể có, nhưng tôi không biết mình đang tìm gì).

Ngay bây giờ tôi đang đọc qua điều này. Không biết điều này sẽ hữu ích như thế nào.

Hướng dẫn how do i convert a docx to pdf in python? - làm cách nào để chuyển từ docx sang pdf trong python?

Williamkf

39,4K65 Huy hiệu vàng189 Huy hiệu bạc288 Huy hiệu Đồng65 gold badges189 silver badges288 bronze badges

Khi được hỏi ngày 15 tháng 5 năm 2011 lúc 20:42May 15, 2011 at 20:42

Một ví dụ đơn giản sử dụng comtypes, chuyển đổi một tệp, đầu vào và đầu ra được đưa ra làm đối số dòng lệnh:

import sys
import os
import comtypes.client

wdFormatPDF = 17

in_file = os.path.abspath(sys.argv[1])
out_file = os.path.abspath(sys.argv[2])

word = comtypes.client.CreateObject('Word.Application')
doc = word.Documents.Open(in_file)
doc.SaveAs(out_file, FileFormat=wdFormatPDF)
doc.Close()
word.Quit()

Bạn cũng có thể sử dụng pywin32, sẽ giống nhau ngoại trừ:

import win32com.client

và sau đó:

word = win32com.client.Dispatch('Word.Application')

Đã trả lời ngày 16 tháng 5 năm 2011 lúc 13:19May 16, 2011 at 13:19

StevenstevenSteven

27.2K5 Huy hiệu vàng60 Huy hiệu bạc 50 Huy hiệu Đồng5 gold badges60 silver badges50 bronze badges

10

Bạn có thể sử dụng gói python

import win32com.client
3 sang số lượng lớn chuyển đổi docx sang pdf. Nó có thể được sử dụng như cả thư viện CLI và Python. Nó yêu cầu Microsoft Office được cài đặt và sử dụng COM trên Windows và AppleScript (JXA) trên macOS.

from docx2pdf import convert

convert("input.docx")
convert("input.docx", "output.pdf")
convert("my_docx_folder/")
pip install docx2pdf
docx2pdf input.docx output.pdf

Tuyên bố miễn trừ trách nhiệm: Tôi đã viết gói DOCX2PDF. https://github.com/aljohri/docx2pdf

Đã trả lời ngày 24 tháng 12 năm 2019 lúc 8:04Dec 24, 2019 at 8:04

Al Johrial JohriAl Johri

1.49219 huy hiệu bạc21 Huy hiệu đồng19 silver badges21 bronze badges

6

Tôi đã thử nghiệm nhiều giải pháp nhưng không ai trong số chúng hoạt động hiệu quả về phân phối Linux.

Tôi đề nghị giải pháp này:

import sys
import subprocess
import re


def convert_to(folder, source, timeout=None):
    args = [libreoffice_exec(), '--headless', '--convert-to', 'pdf', '--outdir', folder, source]

    process = subprocess.run(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, timeout=timeout)
    filename = re.search('-> (.*?) using filter', process.stdout.decode())

    return filename.group(1)


def libreoffice_exec():
    # TODO: Provide support for more platforms
    if sys.platform == 'darwin':
        return '/Applications/LibreOffice.app/Contents/MacOS/soffice'
    return 'libreoffice'

Và bạn gọi chức năng của bạn:

result = convert_to('TEMP Directory',  'Your File', timeout=15)

Tất cả tài nguyên:

https://michalzalecki.com/converting-docx-to-pdf-using-python/

Đã trả lời ngày 28 tháng 2 năm 2020 lúc 20:05Feb 28, 2020 at 20:05

Hướng dẫn how do i convert a docx to pdf in python? - làm cách nào để chuyển từ docx sang pdf trong python?

Abdelhedi Hlelabdelhedi Hlelabdelhedi hlel

2.3031 Huy hiệu vàng15 Huy hiệu bạc18 Huy hiệu đồng1 gold badge15 silver badges18 bronze badges

1

Tôi đã làm việc về vấn đề này trong nửa ngày, vì vậy tôi nghĩ rằng tôi nên chia sẻ một số kinh nghiệm của mình về vấn đề này. Câu trả lời của Steven là đúng, nhưng nó sẽ thất bại trên máy tính của tôi. Có hai điểm chính để sửa nó ở đây:

(1). Lần đầu tiên khi tôi tạo đối tượng 'Word.Application', tôi nên hiển thị nó (ứng dụng từ) trước khi mở bất kỳ tài liệu nào. . Hệ điều hành.)

(2). Sau khi thực hiện (1), chương trình sẽ hoạt động tốt đôi khi nhưng có thể thất bại thường xuyên. Lỗi sự cố

import win32com.client
4 có nghĩa là máy chủ COM có thể không thể phản hồi quá nhanh. Vì vậy, tôi thêm một độ trễ trước khi tôi cố gắng mở một tài liệu.

Sau khi thực hiện hai bước này, chương trình sẽ hoạt động hoàn hảo mà không còn thất bại nữa. Mã demo như dưới đây. Nếu bạn đã gặp phải những vấn đề tương tự, hãy cố gắng làm theo hai bước này. Hy vọng nó giúp.

    import os
    import comtypes.client
    import time


    wdFormatPDF = 17


    # absolute path is needed
    # be careful about the slash '\', use '\\' or '/' or raw string r"..."
    in_file=r'absolute path of input docx file 1'
    out_file=r'absolute path of output pdf file 1'

    in_file2=r'absolute path of input docx file 2'
    out_file2=r'absolute path of outputpdf file 2'

    # print out filenames
    print in_file
    print out_file
    print in_file2
    print out_file2


    # create COM object
    word = comtypes.client.CreateObject('Word.Application')
    # key point 1: make word visible before open a new document
    word.Visible = True
    # key point 2: wait for the COM Server to prepare well.
    time.sleep(3)

    # convert docx file 1 to pdf file 1
    doc=word.Documents.Open(in_file) # open docx file 1
    doc.SaveAs(out_file, FileFormat=wdFormatPDF) # conversion
    doc.Close() # close docx file 1
    word.Visible = False
    # convert docx file 2 to pdf file 2
    doc = word.Documents.Open(in_file2) # open docx file 2
    doc.SaveAs(out_file2, FileFormat=wdFormatPDF) # conversion
    doc.Close() # close docx file 2   
    word.Quit() # close Word Application 

Đã trả lời ngày 13 tháng 12 năm 2016 lúc 9:48Dec 13, 2016 at 9:48

Hướng dẫn how do i convert a docx to pdf in python? - làm cách nào để chuyển từ docx sang pdf trong python?

YangyangYang

Phim huy hiệu bạc 17111 silver badge7 bronze badges

UNOCONV (Writen in Python) và OpenOffice chạy như một daemon không đầu. http://dag.wiee.rs/home-made/unoconv/

Hoạt động rất độc đáo cho DOC, DOCX, PPT, PPTX, XLS, XLSX. Rất hữu ích nếu bạn cần chuyển đổi tài liệu hoặc lưu/chuyển đổi sang các định dạng nhất định trên máy chủ

Đã trả lời ngày 15 tháng 10 năm 2014 lúc 22:15Oct 15, 2014 at 22:15

LXXLXXlxx

1.30621 Huy hiệu bạc 30 Huy hiệu Đồng21 silver badges30 bronze badges

3

Thay thế cho chức năng Saveas, bạn cũng có thể sử dụng ExportAsFixedFormat, cho phép bạn truy cập vào hộp thoại Tùy chọn PDF mà bạn thường thấy trong Word. Với điều này, bạn có thể chỉ định dấu trang và các thuộc tính tài liệu khác.

doc.ExportAsFixedFormat(OutputFileName=pdf_file,
    ExportFormat=17, #17 = PDF output, 18=XPS output
    OpenAfterExport=False,
    OptimizeFor=0,  #0=Print (higher res), 1=Screen (lower res)
    CreateBookmarks=1, #0=No bookmarks, 1=Heading bookmarks only, 2=bookmarks match word bookmarks
    DocStructureTags=True
    );

Danh sách đầy đủ các đối số chức năng là: 'OutputFileName', 'ExportFormat', 'OpenAfterExport', 'Tối ưu hóa', 'phạm vi', 'từ', 'đến', 'mục', 'bao gồm các "

Đã trả lời ngày 24 tháng 5 năm 2018 lúc 19:06May 24, 2018 at 19:06

Patrickpatrickpatrick

711 Huy hiệu bạc1 Huy hiệu đồng1 silver badge1 bronze badge

Tôi đã sửa đổi nó cho hỗ trợ PPT là tốt. Giải pháp của tôi hỗ trợ tất cả các tiện ích mở rộng được chỉ định dưới đây.

word_extensions = [".doc", ".odt", ".rtf", ".docx", ".dotm", ".docm"]
ppt_extensions = [".ppt", ".pptx"]

Giải pháp của tôi: Liên kết GitHub

Tôi đã sửa đổi mã từ docx2pdf

Đã trả lời ngày 19 tháng 2 năm 2021 lúc 18:35Feb 19, 2021 at 18:35

Hướng dẫn how do i convert a docx to pdf in python? - làm cách nào để chuyển từ docx sang pdf trong python?

Nếu bạn không ngại sử dụng PowerShell, hãy xem anh chàng kịch bản này! bài báo. Mã được trình bày có thể được thông qua để sử dụng giá trị liệt kê

import win32com.client
5 là
import win32com.client
6 (xem tại đây). Bài viết blog này trình bày một triển khai khác nhau của cùng một ý tưởng.

Đã trả lời ngày 15 tháng 5 năm 2011 lúc 20:53May 15, 2011 at 20:53

Bas Bossinkbas BossinkBas Bossink

9.1104 Huy hiệu vàng39 Huy hiệu bạc52 Huy hiệu Đồng4 gold badges39 silver badges52 bronze badges

1

Tôi đã thử câu trả lời được chấp nhận nhưng không đặc biệt quan tâm đến từ PDFS cồng kềnh đang tạo ra, thường là một thứ tự lớn hơn mức lớn hơn dự kiến. Sau khi tìm cách vô hiệu hóa các hộp thoại khi sử dụng máy in PDF ảo, tôi đã bắt gặp máy in Bullzip PDF và tôi đã khá ấn tượng với các tính năng của nó. Bây giờ nó đã thay thế các máy in ảo khác mà tôi đã sử dụng trước đây. Bạn sẽ tìm thấy một "phiên bản cộng đồng miễn phí" trên trang tải xuống của họ.

API COM có thể được tìm thấy ở đây và một danh sách các cài đặt có thể sử dụng có thể được tìm thấy ở đây. Các cài đặt được ghi vào tệp "Runonce" chỉ được sử dụng cho một công việc in và sau đó được xóa tự động. Khi in nhiều tệp PDF, chúng tôi cần đảm bảo một công việc in hoàn thành trước khi bắt đầu một công việc khác để đảm bảo cài đặt được sử dụng chính xác cho mỗi tệp.

import win32com.client
0

Đã trả lời ngày 1 tháng 7 năm 2017 lúc 12:37Jul 1, 2017 at 12:37

Tôi đã làm việc với giải pháp này nhưng tôi cần tìm kiếm tất cả .docx, .dotm, .docm, .odt, .doc hoặc .rtf và sau đó chuyển tất cả thành .pdf (Python 3.7.5). Hy vọng nó hoạt động...

import win32com.client
1

Việc thử và ngoại trừ là cho những tài liệu tôi không thể đọc và sẽ không thoát mã cho đến khi tài liệu cuối cùng.

Đã trả lời ngày 17 tháng 2 năm 2020 lúc 18:28Feb 17, 2020 at 18:28

1

Bạn nên bắt đầu từ việc điều tra các trình điều khiển in PDF ảo. Ngay khi bạn sẽ tìm thấy một bản, bạn sẽ có thể viết tệp hàng loạt in các tệp tài liệu của bạn vào các tệp PDF. Bạn cũng có thể thực hiện điều này trong Python (đầu ra trình điều khiển máy in thiết lập và lệnh phát hành/lệnh in trong msword, sau đó có thể được thực hiện bằng cách sử dụng dòng lệnh AFAIR).

Đã trả lời ngày 15 tháng 5 năm 2011 lúc 20:54May 15, 2011 at 20:54

Hướng dẫn how do i convert a docx to pdf in python? - làm cách nào để chuyển từ docx sang pdf trong python?

c-smilec-smilec-smile

26.1k7 Huy hiệu vàng57 Huy hiệu bạc83 Huy hiệu đồng7 gold badges57 silver badges83 bronze badges

import win32com.client
2

Mã nguồn, xem tại đây:

https://neculaifantanaru.com/en/python-full-code-how-to-convert-doc-and-docx-files-to-pdf-from-the-folder.html

Đã trả lời ngày 21 tháng 3 lúc 9:24Mar 21 at 9:24

Hướng dẫn how do i convert a docx to pdf in python? - làm cách nào để chuyển từ docx sang pdf trong python?

Chỉ cần mejust tôiJust Me

6732 Huy hiệu vàng14 Huy hiệu bạc27 Huy hiệu đồng2 gold badges14 silver badges27 bronze badges

1

Tôi sẽ đề nghị bỏ qua người giám sát của bạn và sử dụng OpenOffice có API Python. OpenOffice đã được xây dựng để hỗ trợ cho Python và ai đó đã tạo một thư viện cụ thể cho mục đích này (PyodConverter).

Nếu anh ấy không hài lòng với đầu ra, hãy nói với anh ấy rằng bạn có thể mất nhiều tuần để làm điều đó với Word.

Đã trả lời ngày 15 tháng 5 năm 2011 lúc 20:53May 15, 2011 at 20:53

Mikerobimikerobimikerobi

20.1k5 Huy hiệu vàng45 Huy hiệu bạc42 Huy hiệu đồng5 gold badges45 silver badges42 bronze badges

Làm cách nào để lưu Docx dưới dạng PDF trong Python?

Chuyển đổi Word Docx thành PDF trong Python Tải tài liệu Word bằng lớp tài liệu. Chuyển đổi tài liệu Word thành pdf bằng phương thức tài liệu.save ().Convert Word document to PDF using Document. save() method.

Làm thế nào để bạn chuyển đổi một tệp docx thành pdf?

Công cụ Acrobat to PDF cho phép bạn chuyển đổi các tệp Docx, Doc, RTF và TXT thành PDF bằng trình duyệt web trên bất kỳ hệ điều hành nào. Chỉ cần kéo và thả một tệp để chuyển đổi nó và lưu dưới dạng PDF.drag and drop a file to convert it and save as PDF.

Làm cách nào để chuyển đổi sang PDF trong Python?

Trong bài viết này, bạn sẽ biết cách chuyển đổi tệp văn bản và văn bản thành PDF trong Python.FPDF là một lớp Python cho phép tạo các tệp PDF bằng mã python ...
Nhập lớp fpdf từ mô -đun fpdf ..
Thêm một trang ..
Đặt phông chữ ..
Chèn một ô và cung cấp văn bản ..
Lưu PDF với trên mạng.Tiện ích mở rộng PDF ..

Làm cách nào để chuyển đổi tệp docx thành python?

Nhưng, chúng ta có thể thao tác với các tài liệu từ này trong Python bằng mô-đun Python-DOCX ...
Bước đầu tiên là cài đặt mô-đun bên thứ ba này Python-Docx.Bạn có thể sử dụng PIP PIP PIP Cài đặt Python-Docx, hoặc tải xuống tarball từ đây.....
Sau khi cài đặt nhập, DOCX, không phải là Python-docx, ..
Sử dụng DOCX ..