* [http://pybrary.net/pyPdf/ ȨÆäÀÌÁö] * PDFÆÄÀÏÀ» ¹ÝÀ¸·Î ÀÚ¸£´Â ¹æ¹ý(without Acrobat) * ¸ñÀû : [Workshop/2008Spring]¿¡¼­ ÀÌÁÖÈ£´ÔÀÌ Acrobat Professional·Î º¸¿©ÁØ ¹æ¹ýÀ» ÃÖ´ëÇÑ ½±°Ô(?) ÇÁ·Î±×·¥À¸·Î ÇØ°áÇغ»´Ù. * [[Date(2008-05-26T00:03:13)]] ¹Ì¿Ï¼º ¼Ò½ºÁß Hint page5, page6 {{{#!vim python #!/usr/bin/env python # -*- coding: utf-8 -*- from pyPdf import PdfFileWriter, PdfFileReader output = PdfFileWriter() input1 = PdfFileReader(file("document1.pdf", "rb")) # print the title of document1.pdf #title = input1.getDocumentInfo().title #print "title = %s" % title.encode('cp949') # add page 1 from input1 to output document, unchanged output.addPage(input1.getPage(0)) # add page 2 from input1, but rotated clockwise 90 degrees output.addPage(input1.getPage(1).rotateClockwise(90)) # add page 3 from input1, rotated the other way: output.addPage(input1.getPage(2).rotateCounterClockwise(90)) # alt: output.addPage(input1.getPage(2).rotateClockwise(270)) # add page 4 from input1, but first add a watermark from another pdf: # watermark.pdfÅ©±â°¡ °°¾Æ¾ß ÇÑ´Ù. #page4 = input1.getPage(3) #watermark = PdfFileReader(file("watermark.pdf", "rb")) #page4.mergePage(watermark.getPage(0)) # add page 5 from input1, but crop it to half size: # 5ÆäÀÌÁöÀÇ ¿ÞÂʹÝÀ» °¡Á®¿Â´Ù. page5 = input1.getPage(4) page5.mediaBox.upperRight = ( page5.mediaBox.getUpperRight_x() / 2, page5.mediaBox.getUpperRight_y() ) output.addPage(page5) # 6ÆäÀÌÁöÀÇ ¿À¸¥ÂʹÝÀ» °¡Á®¿Â´Ù. page6 = input1.getPage(5) page6.mediaBox.lowerLeft = ( page6.mediaBox.getUpperRight_x() / 2, page6.mediaBox.getLowerLeft_y() ) output.addPage(page6) # print how many pages input1 has: print "document1.pdf has %s pages." % input1.getNumPages() # finally, write "output" to document-output.pdf outputStream = file("document-output.pdf", "wb") output.write(outputStream) outputStream.close() }}} * ÃÖÁ¾¼Ò½º document1.pdf¹®¼­¸¦ document-output.pdf·Î ¸¸µé¾îÁÝ´Ï´Ù. * ¸ðµç ÆäÀÌÁö¸¦ ¹ÝÀ¸·Î ÀÚ¸¨´Ï´Ù. * ùÆäÀÌÁöÀÇ ¿À¸¥ÂÊ ¹Ý Áï 2page°¡ ½ÇÁ¦·Î´Â ¸¶Áö¸· ÆäÀÌÁö°¡ µÇ¾î¾ß ÇÕ´Ï´Ù. * ¼Ò½º {{{#!vim python #!/usr/bin/env python from pyPdf import PdfFileWriter, PdfFileReader output = PdfFileWriter() inputleft = PdfFileReader(file("document1.pdf", "rb")) inputright = PdfFileReader(file("document1.pdf", "rb")) def LeftHalfPage(p): p.mediaBox.upperRight = ( p.mediaBox.getUpperRight_x() / 2, p.mediaBox.getUpperRight_y() ) return p def RightHalfPage(p): p.mediaBox.lowerLeft = ( p.mediaBox.getUpperRight_x() / 2, p.mediaBox.getLowerLeft_y() ) return p ########################################################### output.addPage(LeftHalfPage(inputleft.getPage(0))) endPage = RightHalfPage(inputright.getPage(0)) for i in range(1, inputleft.getNumPages()-1): output.addPage(LeftHalfPage(inputleft.getPage(i))) output.addPage(RightHalfPage(inputright.getPage(i))) output.addPage(endPage) # print how many pages input1 has: print "document1.pdf has %s pages." % inputleft.getNumPages() # finally, write "output" to document-output.pdf outputStream = file("document-output.pdf", "wb") output.write(outputStream) outputStream.close() }}}