python 生成pdf页面大小_(Python)更改使用xtopd生成的PDF文件的页面大小和格式
我想用Python轉換xlsx。我使用tablib和xtopdf模塊構建了一個結構良好的表。工作出色!不幸的是,內容不適合一個pdf頁面。所以我想把頁面大小和格式改成水平A3。但我不知道這怎么可能。我的代碼:import random
import tablib
from openpyxl import load_workbook
from xtopdf import PDFWriter
from pyPdf import PdfFileWriter, PdfFileReader
workbook = load_workbook('C:/Users/user1/Testexcel.xlsx', guess_types=True, data_only=True)
worksheet = workbook.get_sheet_by_name('Testsheet')
ws_range = worksheet.iter_rows('A4:H6')
# Helper function to output a string to both screen and PDF.
def print_and_write(pw, strng):
print strng
pw.writeLine(strng)
# Create an empty dataset and set its headers.
data = tablib.Dataset()
data.headers = ['col1', 'col2', 'col3', 'col4']
widths = [30, 20, 10, 20] # Display widths for columns.
for row in ws_range:
col1 = str(row[0].value)
col2 = str(row[1].value)
col3 = str(row[2].value)
col4 = str(row[3].value)
columns = [col1, col2, col3, col4]
row = [ str(col).center(widths[idx]) for idx, col in enumerate(columns) ]
data.append(row)
# Set up the PDFWriter.
pw = PDFWriter('C:/Users/user1/Test.pdf')
pw.setFont('Courier', 10)
pw.setHeader('Test')
pw.setFooter('Test')
# Generate header and data rows as strings; output them to screen and PDF.
separator = '-' * sum(widths)
print_and_write(pw, separator)
# Output headers
header_strs = [ header.center(widths[idx]) for idx, header in enumerate(data.headers) ]
print_and_write(pw, ''.join(header_strs))
print_and_write(pw, separator)
# Output data
for row in data:
print_and_write(pw, ''.join(row))
print_and_write(pw, separator)
pw.close()
從fwxtciar庫中找到了這個對象。在canvas類中,聲明了一個屬性pagesize,該屬性默認設置為“A4”。但是如果我將條目改為'A3',結果pdf仍然是'A4'。在
^{pr2}$
“我認為”模塊中的更改不被“編輯”模塊接受。嘗試刪除字典reportlab并嘗試在命令行中導入它。具有諷刺意味的是,雖然python不應該再找到那個模塊了,但它仍然可以工作。在
總結
以上是生活随笔為你收集整理的python 生成pdf页面大小_(Python)更改使用xtopd生成的PDF文件的页面大小和格式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ai人工智能python开发_Pytho
- 下一篇: mysql table keys_MyS