Импользую модифицированую библиотеку pyPdf (
http://blog.rsmoorthy.net/2012/01/add-javascript-to-existing-pdf-files.html) для добавления javascript (в моем случае
this.print();) в пдф-файл:
import shutil
from .pyPdf import PdfFileWriter, PdfFileReader
def add_js_print(file_name, js_str="this.print();"):
"""
Додаємо js в пдф для автоматичного друку при відкриті
"""
inputStream = file(file_name, 'rb')
pdf_file_input = PdfFileReader(inputStream)
pdf_file_output = PdfFileWriter()
for page_numb in xrange(pdf_file_input.getNumPages()):
page_obj = pdf_file_input.getPage(page_numb)
pdf_file_output.addPage(page_obj)
pdf_file_output.addJS(js_str)
tmp_output_filename = file_name + '.tmp'
outputStream = file(tmp_output_filename, "wb")
pdf_file_output.write(outputStream)
outputStream.close()
inputStream.close()
shutil.move(tmp_output_filename, file_name)
так как скрипт перебирает весь пдф постранично то при обработке больших файлов возникает немаленькая задержка (немаленькая для web-приложения). Пробовал откусывать одну страницу от большого файла, добавлять скрипт, а потом назад вставлять в большой файл с помощью pdftk, но при манипуляциях с файлом добавленный скрипт теряется. Может кто знает как ускорить такой процесс.