使用python将RTF转换为PDF?

问题描述 投票:0回答:2

我需要使用 Python 将 RTF 转换为 PDF。如果 RTF 文件包含任何图像。我的虚拟机没有 Word 应用程序。

我试过了


from reportlab.pdfgen import canvas
import pyth.plugins.rtf15.reader as rtf_reader
import pyth.plugins.plaintext.writer as plaintext_writer

def convert_rtf_to_pdf(rtf_file, pdf_file):
  # Read the RTF file
  with open(rtf_file, 'rb') as file:
    doc = rtf_reader.Rtf15Reader.read(file)

  # Convert RTF to plain text
  plain_text = plaintext_writer.PlainTextWriter.write(doc).getvalue()

  # Create a PDF file
  c = canvas.Canvas(pdf_file)
  c.drawString(100, 750, plain_text)
  c.save()
# Usage
rtf_file = "/file.rtf"
pdf_file = "/file.pdf"
convert_rtf_to_pdf(rtf_file, pdf_file)

该代码,但如果 RTF 文件中包含任何图像,该代码将不起作用。 然后我尝试了

word = win32com.client.Dispatch('Word.Application')
doc = word.Documents.Open(RtfFilePath)
doc.SaveAs(saveDocxPath, FileFormat=16)
doc.Close()
word.Quit()

该代码,但我的虚拟机中没有文字应用程序。

python pdf canvas pywin32 rtf
2个回答
0
投票

您可以在python中使用pypandoc库,

import pypandoc

def convert_rtf_to_pdf(input_rtf, output_pdf):
    pypandoc.convert_file(input_rtf, 'pdf', outputfile=output_pdf)

if __name__ == "__main__":
    input_rtf_path = "Path to your RTF File"
    output_pdf_path = "path to your pdf file output with name /output.pdf"

    convert_rtf_to_pdf(input_rtf_path, output_pdf_path)

希望这有帮助。


0
投票

Spire.Doc for Python 库可以将带有图像的 RTF 文件转换为 PDF,无需在系统上安装 MS Word 应用程序。

pip install Spire.Doc

以下是将 RTF 文件转换为 PDF 的示例:

from spire.doc import Document, FileFormat

# Create a Document instance
doc = Document()
# Load a RTF document
doc.LoadFromFile("Test.rtf", FileFormat.Rtf)
# Save it to a PDF
doc.SaveToFile("RtfToPdf.pdf", FileFormat.PDF)
doc.Close()

免责声明:我为开发该库的公司工作。

© www.soinside.com 2019 - 2024. All rights reserved.