Проблемы с преобразованием файлов очереди, созданных драйвером принтера Canon iR-ADV C5235 / 5240 PCL6

В нашем программном обеспечении нам необходимо иметь возможность конвертировать файлы SPL, которые драйверы принтера записывают в папку C: \ Windows \ System32 \ spool \ PRINTERS, в файлы PDF. Для файлов SPL в формате PCL мы выполняем это преобразование с помощью pcltool.exe из VeryPDF, который в основном работает нормально. Однако у нас возникают проблемы с файлами SPL, созданными драйвером принтера «Canon iR-ADV C5235 / 5240 PCL6». Например, следующий файл SPL получается в результате печати одной страницы в блокноте со словом «что-то» на ней:

http://files.etvdzs.info/00025.spl

Преобразование 00025.spl с помощью pcltool.exe приводит к созданию 70-страничного PDF-файла с рядом символов мусора вверху каждой страницы. Попытка открыть 00025.spl с помощью других программ просмотра PCL дает аналогичные результаты. Мы спросили VeryPDF, и они сказали нам, что это недопустимый файл PCL.

Кто-нибудь может сказать мне, что именно недействительно в этом файле? Есть ли возможность преобразовать его в действительный PCL или иным образом извлечь из него полезные данные?

Между прочим, у нас была аналогичная проблема с файлами Postscript, созданными драйвером принтера «Canon iR-ADV C5235 / 5240 PS3». Были двоичные последовательности, начинающиеся с $ CDCA10 и заканчивающиеся $ FFFF000000000000000001 в различных местах в файлах. После удаления этих последовательностей мы смогли преобразовать файлы как обычно. Я попробовал аналогичное решение для файлов, созданных «Canon iR-ADV C5235 / 5240 PCL6», но, к сожалению, безуспешно.

РЕДАКТИРОВАТЬ (13 сентября 2013 г.): кажется, что двоичные последовательности являются кодами CPCA. Мне удалось получить документацию о CPCA, подписавшись на программу поддержки разработчиков Canon по следующему URL-адресу:

https://www.developersupport.canon.com/user/register

Прочитав эту документацию, я написал программу для удаления кодов CPCA из файлов спула. Это результат выполнения программы с файлом 00025.spl сверху:

http://files.etvdzs.info/00025.cleaned.spl

К сожалению, это все еще не похоже на действительный файл PCL :-( Кто-нибудь может сказать мне, что именно не так с этим файлом? Есть ли возможность преобразовать его в действительный PCL или иным образом извлечь из него пригодные для использования данные?

P.S. Программа, которую я написал, успешно конвертирует файлы спула, созданные драйверами принтера «Canon iR-ADV C5235 / 5240 PCL5c» и «Canon iR-ADV C5235 / 5240 PS3», в действительные PCL и Postscript соответственно, поэтому я не думаю, просто программа не работает.


person Tim    schedule 21.08.2013    source источник
comment
Хм. Я бы подумал, что начал бы с вопроса Canon (компании, которая сделала драйвер файла спула), а не компании-разработчика программного обеспечения, которая (ваша цитата) в основном отлично работает со многими другими файлами.   -  person Kevin Brown    schedule 21.08.2013
comment
Спасибо за предложение :) Я отправил запрос в службу поддержки Canon. Мне все равно было бы интересно услышать мнение любого, кто может дать какое-либо представление о формате файла, используемом этим драйвером Canon. Между прочим, проблемы с ним возникают не только у просто VeryPDF; у всех других просмотрщиков / конвертеров PCL, которые я пробовал, есть аналогичные проблемы.   -  person Tim    schedule 21.08.2013


Ответы (1)


Скорее всего, у вас здесь есть что-то вроде EMF или подобного файла. Убедитесь, что для очереди сервера (если вы печатаете на сетевой принтер) установлено значение «Отрисовка на клиентском компьютере». Я также хотел бы установить процессор печати на Winprint RAW. Также может быть, что принтер Canon PCL не такой универсальный, как вам хотелось бы. Вы всегда можете попробовать другой драйвер PCL и посмотреть, поддерживает ли этот формат ваш конвертер и устройство Canon. Чтобы убедиться, что проблема не в диспетчере очереди печати Windows, вы можете установить для порта значение FILE и / или использовать утилиту захвата, чтобы записать, что на самом деле будет получать принтер, после всей обработки. Если это работает, но SPL не работает, значит, у вас проблема с диспетчером очереди Windows и / или процессором.

утилита vclpdcap Capture

person Douglas Anderson    schedule 18.12.2013
comment
Спасибо за ответ! Я узнал больше об этой проблеме, задав вопрос здесь: h30434.www3.hp.com/t5/Other-Printing-Questions/ Удаление кодов CPCA как I в результате удаляется заголовок файла, поэтому необходимо восстановить заголовок вручную. Кроме того, команды BeginPage содержат дополнительные байты, которые необходимо удалить. После применения этих исправлений в большинстве случаев получается пригодный для использования файл PCL, но он не на 100% надежен. - person Tim; 22.12.2013
comment
Это хороший момент, когда вы пробуете разные драйверы принтера. Все преобразователи XPS, которые я пробовал, могут обрабатывать выходные данные драйвера Canon iR-ADV C5235 UFR II XPS без какой-либо предварительной обработки, такой как удаление кодов CPCA. С драйвером Canon iR-ADV C5235 / 5240 PS3 необходимо удалить коды CPCA, но никакой другой предварительной обработки не требуется. - person Tim; 22.12.2013
comment
Замечательно. Я испытал то, что вы описали, с аппаратами Xerox. Вместо традиционного PJL они перешли на заголовок XML. Хорошая новость в том, что это был XML, поэтому его было легко разобрать; однако иногда настройки, которые традиционно могут быть в PS / PCL, находятся в этих данных и вызывают проблемы, если их просто выбросить. - person Douglas Anderson; 24.12.2013