#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))