coldfusion - проблемы cfprint с большими файлами спула
Я использую cfprint из ColdFusion для печати нескольких PDF-файлов из каталога. Проблема, с которой я сталкиваюсь, заключается в том, что, когда файлы помещаются в буфер, размер файла резко увеличивается и все замедляется. Файл в папке имеет размер 125 КБ, а когда он находится в буфере принтера, он увеличивается до 15,7 МБ. Вот код ColdFusion:
<cfprint
source="[FILELOCATION]/[FILE].pdf"
color="yes"
printer="[printer name]">
Файлы в конечном итоге будут напечатаны, но это может занять более 15-20 минут. У кого-нибудь есть решения по этому вопросу? Я пробовал как с PDF-файлов, сгенерированных CF, так и с тех, которые я создал с нуля. Спасибо
1 ответ
Очередь от двух до пяти одновременно. Пауза, чтобы разрешить обработку. Отметьте их как напечатанные, переместите или удалите их, перейдите к следующему пакету... Тайм-аут самостоятельно, чтобы узнать, сколько времени вам нужно отвести. Таким образом, вы не сложите кучу работы для сервера и не создадите узкое место на вашем CF-сервере.
Если вы просто делаете это с одним сервером, рассмотрите возможность использования вторичного сервера с низким приоритетом и запустите версию для разработчиков, полностью оплаченную для EULA-совместимой зарегистрированной версии Coldfusion (или Railo), и выделите этот сервер для простой печати, чтобы ваш другой сервер мог делать полезные вещи.
редактировать
Таким образом, у OP есть узкое место печати Coldfusion. На вашем сервере, который выполняет печать (так же, как и ваш CF-сервер, я полагаю?), И ЕСЛИ это сервер Windows (не знаю, какая у вас версия сервера), есть папка очереди печати. Если у вас есть доступ к этой папке, вы можете сделать несколько вещей. Вы можете создать метод для FTP-файлов ваших файлов в эту папку (или скопировать, если это тот же сервер). Принтер поставит в очередь задание и выключится. Вы можете выполнять некоторые функции, такие как проверка очереди печати на количество файлов. Если число файлов больше нуля, вернитесь через 15 минут. Если счетчик равен нулю, скопируйте еще несколько файлов.
Вы создаете запланированное задание в вашем CFAdmin и автоматизируете. Существует метод getprinterInfo(), позволяющий проверить, не подключен ли принтер, и выполнить другие действия, например, проверить другой принтер в другом месте, если вам нужно перенаправить задания на печать. Вы также можете настроить несколько серверов печати и подключить к ним принтеры, подключить несколько серверов печати и проверить папки очереди печати.
Магия бесконечна, цель состоит в том, чтобы перевести работу на что-то, кроме вашего сервера Coldfusion.
Итак, резюмируем:
- Отдельные проблемы, не делая cfprint
- Создайте пути эвакуации к другим принтерам, если можете.
- Если вам необходимо использовать coldfusion, поставьте в очередь выделенный сервер Coldfusion для управления печатью.
- Используйте getPrinterInfo() и выводите вещи, чтобы увидеть, что вы можете использовать, перехватывать и т. Д.
- У Ben Forta есть инструмент, который может проверять наличие нескольких принтеров, подумайте о неисправности.
- Затем используйте cfftp (или cffile, если вы находитесь на том же сервере), если у вас есть доступ и копируйте файлы для печати папок очереди, вообще не делая cfprint.
Когда все закончится, вы станете мастером печати Coldfusion с маршрутами эвакуации, проверками и всем прочим.