У меня есть внутреннее приложение, которое генерирует файлы PDF для разных отчетов. Теперь, в зависимости от типа отчета, файлы PDF генерируются двумя разными приложениями - первое из нихneevia Создатель документаи другое существоОтчеты Oracle.
Если я открою любой из файлов PDF с помощью Adobe Acrobat Reader, а затем дам команду печати, то оба файла будут распечатаны правильно, с сохранением всего форматирования.
Однако если я копирую файлы непосредственно на принтер (принтер находится в общем доступе в сети, и под копированием файлов я подразумеваю выпуск copy <file> \\share_name
), то файлы PDF, созданные Neevia Doc Creator, печатаются нормально, с сохранением форматирования.
Если я сделаю то же самое для PDF-файлов, созданных с помощью Oracle Reports, то печать пропадет, форматирование не сохранится.
Сначала я думал, что это проблема замены шрифтов, и обнаружил, что шрифты не были встроены в PDF, сгенерированный отчетами Oracle. Поэтому я сделал некоторые изменения, и шрифты теперь встроены, но отпечатки все еще не совпадают.
Почему так? Что я упускаю? Есть ли способ определить, что такого особенного в другом PDF, что заставляет его терять форматирование?
Вот как выглядит отпечаток, напечатанный в Adobe:
Вот как выглядит отпечаток, напечатанный напрямую (т.е. скопированный)
Принтер — HP Color LaserJet 4700 PS, подключенный к выделенному серверу печати, работающему под управлением Windows Server 2003.
решение1
Шрифты встроены в PDF? Если нет, то принтер может использовать локальные шрифты. Я написал пост в блоге, объясняющий это наhttp://www.jpedal.org/PDFblog/?p=635
решение2
Похоже, для вашего принтера вышла новая версия прошивки от июля 2010 года. Это первое, что я бы попробовал.
Также установите последние версии драйверов на Win2K3, если применимо.
решение3
Есть нескольковерсии формата PDF. Возможно, neevia Doc Creator создает файлы, подходящие для более старой версии, которую поддерживает драйвер на сервере печати, в то время как Oracle Reports использует некоторые функции более новых версий, которые драйвер не понимает. Когда вы печатаете с помощью Acrobat Reader, он создает файл PostScript для отправки на принтер (и, что неудивительно, без проблем обрабатывает все версии PDF).