【问题标题】:How to Convert .txt file to .pdf如何将 .txt 文件转换为 .pdf
【发布时间】:2020-08-29 15:40:52
【问题描述】:

我一直在尝试使用下面的代码将 .txt 转换为 .pdf

from fpdf import FPDF
pdf = FPDF()
pdf.add_page()
pdf.set_font("Arial", size=15)
f = open("data.txt", "r")
for x in f:
    pdf.cell(200, 10, txt=x, ln=1, align='L')
pdf.output("Data.pdf")

data.txt 如下: 啊啊啊:4 BB: 5 cccccc: 9[data.txt_file][1]

但是当转换这个data.txt 和结果Data.pdf 将看起来像:

aaaaa:4 BB: 5 cccccc: 9[Data.pdf_file][2]

所需的转换文件应与data.txt相同。

我也曾经使用这段代码获取data.txt

letter = ['aaaaa', 'bb', 'cccccc']
number = [4, 5, 9]
for line in zip(letter, number):
     print('{:6}:    {}'.format(*line))

我在打印语句中使用了制表符。 运行代码后,data.txt 将被创建。 [1]:https://i.stack.imgur.com/5Roql.jpg [2]:https://i.stack.imgur.com/SfJCU.jpg

【问题讨论】:

  • data.txt 是否有用于填充的空格或制表符?不管怎样,尽管 Arial 不是等宽字体:也许试试 Courier New?
  • 实际上我已经从我的一个项目中保存了 data.txt,我曾经使用这段代码生成这些列,用于 zip(names, number) 中的行: print('{:38 }{}'.format(*line))
  • 我在这段代码中没有看到任何生成列的 Python FPDF 代码?特别是我看不到任何将输入 data.txt 拆分为列以给 FPDF 多列进行格式化的代码?在我看来,您正在使用 data.txt 中行中间的空格数来排列列。
  • data.txt 文件本身是使用 zip 函数创建的。
  • 我仍然不清楚第一个块中的哪个代码告诉 FPDF 通过输入中的制表符将您的文本分成列。

标签: python pdf type-conversion


【解决方案1】:

Aspose.Word Cloud SDK for Python 可以轻松地将文本文件转换为 PDF,并支持文本样式。您可以尝试以下示例代码。将您的文本文件放在同一级别进行处理。

我是 Aspose 的开发布道者。

# For complete examples and data files, please go to https://github.com/aspose-words-cloud/aspose-words-cloud-python
# Import module
import asposewordscloud
import asposewordscloud.models.requests
from shutil import copyfile

# Please get your Client ID and Secret from https://dashboard.aspose.cloud.
client_id='xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx'
client_secret='xxxxxxxxxxxxxxxxxxxxxxxxxxx'

words_api = asposewordscloud.WordsApi(client_id,client_secret)
words_api.api_client.configuration.host='https://api.aspose.cloud'

filename = 'test.txt'
dest_name = 'test.PDF'
#Convert Text to PDF
request = asposewordscloud.models.requests.ConvertDocumentRequest(document=open(filename, 'rb'), format='pdf')
result = words_api.convert_document(request)
copyfile(result, dest_name)
print("Result {}".format(result))

【讨论】:

    猜你喜欢
    • 2020-01-08
    • 1970-01-01
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    • 2015-11-01
    • 1970-01-01
    • 2016-10-18
    • 1970-01-01
    相关资源
    最近更新 更多