예제 #1
0
    def writepages(self, outname, pagelist, side2flag):

        side = 'front'
        imposedpage = 'left'

        outPDF = Document(Rectangle(self.papersize[0], self.papersize[1]))
        outstream = open(outname, 'w')
        output = PdfWriter.getInstance(outPDF, outstream)
        outPDF.open()

        pagedata = output.getDirectContent()

        #print "in book:writepages"
        for i in range(len(pagelist)):

            if i % 2 == 0:

                outPDF.newPage()
                outPDF.add(Chunk.NEWLINE)

            pagenumber = pagelist[i]

            ##	scaling code here
            if pagenumber == 'b':
                #print 'blank'
                pass

            else:

                if i % 2 == 0:

                    imposedpage = 'left'

                    if side2flag or ((i + 2) % 4 == 0 and self.duplex):

                        side = 'back'

                    else:

                        side = 'front'
                else:

                    imposedpage = 'right'
                #print 'adding page'
                baseline, leftstart, scale1, scale2 = self.calculateposition(
                    pagenumber, imposedpage, side)

                page = output.getImportedPage(self.currentdoc, pagenumber)

                pagedata.addTemplate(page, -0, scale1, scale2, 0, baseline,
                                     leftstart)

            #print i,pagenumber,side,imposedpage
        outPDF.close()
        outstream.close()
예제 #2
0
for file in sys.argv[1:len(sys.argv) - 1]:
    reader = PdfReader(file)
    reader.consolidateNamedDestinations()
    bookmarks = SimpleBookmark.getBookmark(reader)
    if bookmarks != None:
        if page_offset != 0:
            SimpleBookmark.shiftPageNumbers(bookmarks, \
             page_offset, None)
        all_bookmarks.add(bookmarks)

    page_count = reader.getNumberOfPages()
    page_offset += page_offset

    if copy == None:
        document = Document(reader.getPageSizeWithRotation(1))
        output = FileOutputStream(sys.argv[len(sys.argv) - 1])
        copy = PdfCopy(document, output)
        document.open()

    print "Adding", page_count, "pages from", file

    for k in range(0, page_count):
        copy.addPage(copy.getImportedPage(reader, k + 1))

    if reader.getAcroForm() != None:
        copy.copyAcroForm(reader)

if not all_bookmarks.isEmpty():
    copy.setOutlines(all_bookmarks)