Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 5, 2013 23:55:21

agryn
От: Украина
Зарегистрирован: 2011-12-14
Сообщения: 189
Репутация: +  0  -
Профиль   Отправить e-mail  

Быстрое добавление javascript в большой pdf-файл

Импользую модифицированую библиотеку 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, но при манипуляциях с файлом добавленный скрипт теряется. Может кто знает как ускорить такой процесс.

Отредактировано agryn (Окт. 5, 2013 23:59:28)

Офлайн

#2 Окт. 6, 2013 04:54:56

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Быстрое добавление javascript в большой pdf-файл

agryn
попробуй использовать celery что бы выполнять задания в отдельном потоке и сделать страницу на которой можно проверять готово ли оно.

Отредактировано Singularity (Окт. 6, 2013 04:57:35)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version