Обрезаем PDF при помощи Python и pyPdf
2011-08-03 15:50
Задача: есть PDF, в котором очень широкие поля, плюс куча мусора на них типа «Украдено в Хилтоне», поэтому нужно поля по максимум отрезать. Можно, конечно, рыть интернеты в поисках подходящей программы, но за короткий срок этого сделать не удалось.
Всё решилось совершенно неожиданным путём: ставим пакет python-pypdf
, пишем простейший питоновский скрипт и получаем ровно что нужно.
Вот полный текст скрипта. Однако учтите — таким образом меняется лишь ограничивающий прямоугольник каждой страницы, сам текст на полях не исчезает насовсем, а только скрывается.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #!/usr/bin/env python2.6 from pyPdf import PdfFileWriter, PdfFileReader # crop in_file in_file = 'GettingReal.pdf' out_file = 'GettingReal-crop.pdf' out_pdf = PdfFileWriter() in_pdf = PdfFileReader(file(in_file, 'rb')) np = in_pdf.getNumPages() for p in range(np): page = in_pdf.getPage(p) # [0, 0, 612, 792] mb = page.mediaBox mb.setUpperLeft( (119, 100) ) mb.setLowerRight( (494, 692) ) out_pdf.addPage(page) outputStream = file(out_file, 'wb') out_pdf.write(outputStream) |