2014-11-18 2 views
0

Можете ли вы мне помочь, как добавить pylab plt, на вторую страницу моего pdf. У меня есть следующий код для текста, поэтому первая страница моего отчета будет текстовой, на второй странице я не буду вставлять сюжет. Как я могу добавить вторую страницу и сохранить plt.savefig("my.pdf") на вторую страницу моего pdf-файла?добавьте вторую страницу с рисунком в существующий pdf

c = canvas.Canvas('my.pdf', pagesize=landscape(letter)) 
c.setFont('Helvetica', 35, leading=None) 
c.drawCentredString(415,500, "Name") 
c.setFont('Helvetica', 34, leading=None) 
c.drawCentredString(415,440, "Surname") 
c.setFont('Helvetica',24, leading=None) 
c.drawCentredString(415,395, "Igorj Borin") 
c.setFont('Helvetica-Bold', 16, leading=None) 
c.drawCentredString(415,350, "Vasja pupkin") 
c.setFont('Helvetica-Bold', 20, leading=None) 
c.drawCentredString(415,310, strftime("%d/%m/%Y %H:%M:%S", gmtime())) 
c.showPage() 
c.save() 

plt.savefig("my.pdf") 
+0

1) Вы используете Reportlab, я полагаю? 2) Важно ли, чтобы ваша фотография 'my.pdf' была прикреплена как pdf? Или это может быть, например, образ PNG, который вы импортируете в своем pdf-формате? –

+0

Да, я использую Reportlab, Pyplot, Matplotlib.Это простая диаграмма, я думаю, что это может быть png –

ответ

0

Если у вас есть растровое изображение, как PNG, JPG, GIF, BMP (ой дорогой ..), вы можете добавить следующие строки в передней части вашего вызова c.save():

from reportlab.lib.units import inch, cm # 72 dpi -> inch = 72 
c.drawImage('my.png',2.5*cm, 5*cm, 4*inch, 3*inch) # parameters: filename, spacing from left and bottom, with width and height 

Reportlab, похоже, не справляется с векторными изображениями, даже если PIL установлен, это приведет к IOError: cannot identify image file, если вы используете его на изображении, экспортированном в формате pdf. Однако вы можете, например, используйте ghostscript для объединения PDF-файлов, независимо от их содержимого. Но тогда у вас не будет типичного стиля Reportlab.

+0

Это нормально, но когда я сохраняю свой график до .png, качество изображения не очень хорошее, когда я сохраняю этот график как PDF (Возможно, вы можете сказать мне, как улучшить качество изображения? Мне нужно разместить полный размер графика в центр моей страницы PDF. –

+0

@ Елена Краснакова Когда вы сохраняете свое изображение в виде png с помощью matplotlib, есть возможность измените dpi (точки на дюйм). По умолчанию он довольно низкий (60-100). Для публикаций вам может потребоваться увеличить это до 600 точек на дюйм. 'plt.savefig (« my.pdf », dpi = 600) 'Это улучшит качество. –

+0

Спасибо! Это помогает –

Смежные вопросы