def logo_para(self):
exp = Paragraph(
'<b>Express</b>', self.styles['CenterHeading'])
csheet = Paragraph(
'<b>PDF SHEET</b>', self.styles['CenterHeading'])
img_location = "https://www.google.co.in/logos/doodles/2016/icc-australia-v-bangladesh-5759441086447616-res.png"
img_data = '''
<para><img src="%s" width="300" height="90"/><br/>
</para>''' % img_location
img = Paragraph(img_data, self.styles['CenterHeading'])
data = [[exp], [csheet], [''], [img] ]
main_header_table = Table([['', img, '']], colWidths=(100, 300, 100))
main_header_table.setStyle(TableStyle([
('ALIGN', (0, 0), (-1, -1), 'CENTER'),
('BOX', (0, 0), (-1, -1), 0.25, colors.black)
]))
self.elements.append(main_header_table)
Если когда-нибудь я звонюНевозможно записать изображение в файл PDF
docket.logo_para()
Я получаю ошибку cannot concatenate 'str' and 'int' objects
в self.doc.build(self.elements)
Когда линия комментируется docket.logo_para()
, код работает великолепно.
Я пытаюсь добавить изображение на файл PDF с помощью SimpleDocTemplate
EDIT 1
создание нового PDF
class PDFDocketGenerator(object):
def __init__(self, file_name):
self.filename = file_name
self.filepath = STATIC_URL + 'uploads/billing/' + file_name
self.path_to_save = FILE_UPLOAD_TEMP_DIR + '/billing/' + file_name
# define the pdf object
self.doc = SimpleDocTemplate(
self.path_to_save, pagesize=landscape(A4), topMargin=50, bottomMargin=30,
leftMargin=60, rightMargin=60)
self.elements = []
запись в формате PDF
def write_pdf(self):
self.doc.build(self.elements)
Можете ли вы более подробно узнать, что делает метод doc.build? Похоже, что ошибка происходит за пределами кода, который вы вставили. – Crolle
@Crolle Проверьте изменения. Я просто пишу данные по pdf – onkar
Выполнили эту задачу. Решил эту проблему, используя [этот подход] (http://stackoverflow.com/questions/36147118/unable-to-open-image/36171071#36171071). – onkar