2012-02-18 8 views
1

Вопрос: Я создаю диаграммы с помощью ReportLab. Диаграммы создаются правильно, но в разных PDF. Я хочу объединить их в один существующий pdf.Как объединить две диаграммы в один PDF с помощью ReportLab?

основная структура кода

class BreakdownPieDrawing(): 

    def firstChart(): 
     #code for generating first Pie chart 

    def secondChart(): 
     #code for generating second Pie chart 

if __name__=="__main__": 
    drawing1 = BreakdownPieDrawing() 
    drawing1.firstChart() 
    drawing1.save(formats=['pdf'],outDir='.',fnRoot='first') 

    drawing2 = BreakdownPieDrawing() 
    drawing2.secondChart() 
    drawing2.save(formats=['pdf'],outDir='.',fnRoot='second') 

для полного фрагментам кода обратитесь http://www.reportlab.com/snippets/4/

Этот код создает два отдельных PDF-файлов. Как я могу объединить их в один PDF.

Я попытался это код:

def makePdf(self,drawing): 
    doc = SimpleDocTemplate('hello.pdf') 
    doc.build(drawing) 

, а затем после того, как я передаю «BreakdownPieDrawing» объект класса, в этот метод. Но этот подход не работает.
Я новичок в reportLab и python, поэтому простите меня за такой уродливый код.

Итак, вопрос заключается в том, как добавить эти диаграммы в существующий pdf. Любая помощь будет принята с благодарностью.

ответ

0

Если вы внимательно посмотрите на фрагмент коды вы предоставили (отказ от ответственности: я написал ;-)) конкретно в строке # 33 вы видите

# adding a pie chart to the drawing 
self._add(self,Pie(),name='pie',validate=None,desc=None) 

Это линия добавляет диаграмму Pie к рисунку, вы будете тогда вам нужно добавить вторую диаграмму к тому же чертежу, который вы используете методом _add, как и фрагмент в строке # 46 для добавления легенды. У вашего рисунка будут две диаграммы, и когда вы сохраните его в формате PDF, вы получите их обоих.

+0

Oh Got it. Thnx много Sir .. :-) –

+0

Пожалуйста, ответьте на эту тему. http://stackoverflow.com/questions/20343382/pyrhon-reportlabs-save-2-different-graphs-in-2-different-pages. благодаря – PythonEnthusiast

0

Эти две диаграммы на самом деле полные страницы? Если это так, вы можете просто вызвать разрыв страницы между рисованием двух. В противном случае вы можете просто отрегулировать координаты так, чтобы они поместились на странице.

В качестве альтернативы, если вы делаете что-то более сложное и в конечном итоге используете Platypus, может возникнуть смысл создать пользовательский Flowable для их рендеринга.

+0

thnk вы очень за свой ответ, мой вопрос заключается в том, как добавить эту диаграмму в существующий PDF. поскольку прикрепленные фрагменты кода используются для создания совершенно нового PDF-файла. Есть ли способ сделать этот pdf как объект или что-то вроде tht ?? поэтому я могу использовать его в моем существующем формате pdf и могу нарисовать его где угодно и как угодно. или ссылки на некоторые фрагменты кода, с помощью которых я лучше понимаю это? любая идея или предложения были бы весьма признательны. Thnkx –

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