업무상 서명해서 스캔한 PDF와 Office에서 PDF로 변환한 두 PDF 문서를 머지할 일이 잦아 배운적은 없지만 python으로 야매코딩.
macOS의 미리보기에서 필요한 페이지만 드래그해서 머지하는게 가장 깔끔한 방법이지만, Windows만 있는 환경에서 할 필요도 있어서 만듬
import sys
from PyPDF2 import PdfFileWriter, PdfFileReader
def usage():
print("#" * 100)
print('''
[PDFCAT] by alexken@TTA
A.pdf [a~b] + B.pdf [c~d] -> C.pdf
Usage:
$ python {} A.pdf a b B.pdf c d
'''.format(sys.argv[0]))
print("#" * 100)
def merge_pdf(pdf_a, pdf_b):
try:
in_pdf_a = PdfFileReader(pdf_a["name"])
in_pdf_b = PdfFileReader(pdf_b["name"])
out_c = PdfFileWriter()
if pdf_a["from"] == 0:
pdf_a["from"] = 1
if pdf_a["to"] == 0:
pdf_a["to"] = in_pdf_a.getNumPages()
if pdf_b["from"] == 0:
pdf_b["from"] = 1
if pdf_b["to"] == 0:
pdf_b["to"] = in_pdf_b.getNumPages()
for i in range(pdf_a["from"]-1, pdf_a["to"]):
print( "{} page:{}".format(pdf_a["name"], i+1) )
out_c.addPage(in_pdf_a.getPage(i))
print( "+" )
for i in range(pdf_b["from"]-1, pdf_b["to"]):
print( "{} page:{}".format(pdf_b["name"], i+1) )
out_c.addPage(in_pdf_b.getPage(i))
with open("C.pdf", "wb") as outputStream:
out_c.write(outputStream)
except:
print(">>>> Fail to Merge")
if __name__ == "__main__":
if len(sys.argv) == 7:
merge_pdf({"name":sys.argv[1],"from":int(sys.argv[2]),"to":int(sys.argv[3])},
{"name":sys.argv[4],"from":int(sys.argv[5]),"to":int(sys.argv[6])})
else:
usage()




Windows에서 TV를 볼때는 마지 못해 보는거였지만, Mac에서는 TV로 보는거 보다 훨씬 더 편하고 좋다.
MacOS 탓이라기 보다는 EyeTV라는 프로그램이 훌륭해서다.
물론 신호 내의 한글로 된 EPG는 다 깨먹지만 말이다.