добавить страницу в существующий файл pdf с помощью python (и matplotlib?)

Я хотел бы добавить страницы в существующий файл PDF.

В настоящее время я использую matplotlib pdfpages. однако, как только файл закрыт, сохранение в нем другой цифры перезаписывает существующий файл, а не добавляет его.

  • Matplotlib создает анимированный график в реальном времени
  • Как изменить цвет фона?
  • как динамически обновлять график в цикле в ноутбуке ipython (в одной ячейке)
  • График рассеяния Matplotlib с неизвестной ошибкой
  • Добавить легенду в 3D-диаграмме рассеяния с разбросом () в Matplotlib
  • Один цветной план для морских тепловых карт в подзаголовке
  • from matplotlib.backends.backend_pdf import PdfPages import matplotlib.pyplot as plt class plotClass(object): def __init__(self): self.PdfFile='c:/test.pdf' self.foo1() self.foo2() def foo1(self): plt.bar(1,1) pdf = PdfPages(self.PdfFile) pdf.savefig() pdf.close() def foo2(self): plt.bar(1,2) pdf = PdfPages(self.PdfFile) pdf.savefig() pdf.close() test=plotClass() 

    Я знаю, что добавление возможно через несколько вызовов pdf.savefig () перед вызовом pdf.close (), но я хотел бы добавить в pdf, который уже был закрыт.

    Также будут оценены альтернативы matplotlib.

  • Сброс цветового цикла в Matplotlib
  • matplotlib: объединить разные цифры и поместить их в единый подзаголовок, в котором используется общая легенда
  • Matplotlib: `pcolormesh.get_array ()` возвращает сплющенный массив - как вернуть данные 2D?
  • Matplotlib: прокрутка
  • Как восстановить значения matplotlib по умолчанию после установки таблицы стилей
  • Построение кадра данных как «hist», так и «kde» на одном и том же участке
  • 2 Solutions collect form web for “добавить страницу в существующий файл pdf с помощью python (и matplotlib?)”

    Вы можете использовать pyPdf для этого.

     # Merge two PDFs from pyPdf import PdfFileReader, PdfFileWriter output = PdfFileWriter() pdfOne = PdfFileReader(file( "some\path\to\a\PDf", "rb")) pdfTwo = PdfFileReader(file("some\other\path\to\a\PDf", "rb")) output.addPage(pdfOne.getPage(0)) output.addPage(pdfTwo.getPage(0)) outputStream = file(r"output.pdf", "wb") output.write(outputStream) outputStream.close() 

    пример, взятый отсюда

    Таким образом, вы отсоединяете график от слияния PDF-файлов.

    Некоторое время я искал, но не смог найти способ добавить к тому же файлу PDF после повторного открытия его в другом месте программы. Я закончил тем, что использовал словари, таким образом, я могу хранить цифры в словаре для каждого pdf. Мне интересно создавать и записывать их в pdf-файлы в конце. Вот пример:

     dd = defaultdict(list) #create a default dictionary plot1 = df1.plot(kind='barh',stacked='True') #create a plot dd[var].append(plot1.figure) #add figure to dictionary #elsewhere in the program plot2 = df2.plot(kind='barh',stacked='True') #another plot dd[var].append(plot2.figure) #add figure to dictionary #at the end print the figures to various reports for var in dd.keys(): pdf = PdfPages(var+.'pdf') #for each dictionary create a new pdf doc for figure in dd[k]: pdf.savefig(figure) #write the figures for that dictionary pdf.close() 
    Python - лучший язык программирования в мире.