Как конвертировать .txt файл в .pdf

#python #pdf #type-conversion

#python #PDF #тип-преобразование

Вопрос:

я пытался конвертировать .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

Комментарии:

1. Делает data.txt есть пробелы или табуляции для заполнения? В любом случае, Arial не является моноширинным шрифтом: может быть, попробовать Courier New?

2. на самом деле я сохранил data.txt в одном из моих проектов я использовал для генерации этих столбцов этот фрагмент кода для строки в zip (имена, номер): печать(‘{:38}{}’. формат(*строка))

3. Я ничего не вижу в этом фрагменте кода, коде Python FPDF, который генерирует столбцы? В частности, я не вижу никакого кода, который разделяет входные данные data.txt в столбцы, чтобы дать FPDF несколько столбцов для форматирования? Мне кажется, что вы используете количество пробелов в середине строки в data.txt для выравнивания столбцов.

4. the data.txt сам файл создается с помощью функции zip.

5. Я все еще не понимаю, какой код в первом блоке указывает FPDF разделить ваш текст на столбцы с помощью вкладок во входных данных.

Ответ №1:

Aspose.Word Cloud SDK для 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))