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页面大小)