Конвертируйте несколько тысяч документов Word в один файл PCL - PullRequest
0 голосов
/ 23 июня 2010

Наш клиент имеет десятки тысяч писем для переписки в формате Word 2007. Им необходимо объединить все буквы в один один большой файл PCL , который затем отправляется поставщику печати для массовой печати. ​​

Из того, что я понимаю, содержимое PCL генерируется конкретным драйвером принтера. Таким образом, в интерактивном или программном режиме с использованием VBA из функции Document.PrintOut () при вызове для печати в файл он передает содержимое в выбранный драйвер принтера по умолчанию для вывода формата PCL.

Теперь у них есть пакетное задание .NET 1.1, которое генерирует PDF из этих документов Word. Они хотят использовать одно и то же пакетное задание, чтобы объединить их в этот большой файл PCL. Если в этом процессе задействован драйвер принтера, как программно «напечатать» несколько файлов Word в один и тот же файл?

Ответы [ 3 ]

0 голосов
/ 23 июля 2010

Я согласен с pipitas, что работоспособное решение существующего процесса может работать хорошо. В зависимости от того, как они сохраняются в формате Word, вы можете улучшить это, используя функцию программирования «сохранить как» для сохранения в формате PDF.

Я бы поместил свой код в строку, но это немного беспорядок, просто поищите в Google Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF , и вы должны увидеть множество примеров этого.

Еще одна мысль, более соответствующая вашему запросу, заключается в настройке универсального драйвера принтера PCL (HP LaserJet 4000 или аналогичного) и возможности программирования, открытии каждого документа и печати на принтере по умолчанию. Хитрость заключается в том, чтобы записать их в файл. Это можно сделать несколькими способами.

Используйте Redmon или что-то подобное, чтобы разрешить вывод в файл без какого-либо вмешательства пользователя. У нас есть инструмент, работающий на XP, 2003, который позволяет добавлять файлы, которые мы использовали, в очень похожем случае, когда нам нужно объединить 9000 заданий на печать вместе в день (я могу отправить ссылку, если она вас интересует).

Другой способ - использовать или написать инструмент быстрого захвата, который собирает данные через порт 9100 (или 515 для LPR) и записывает эти данные в файл. Приложение становится принтером, и вы уходите.

Добавьте комментарий, если вы хотите какой-либо код для упомянутых предметов, и я могу вставить их.

0 голосов
/ 31 декабря 2010

Большинство людей слишком спешат конвертировать PCL в PDF, потому что они не знают, что существуют инструменты, которые могут индексировать, сортировать, объединять и редактировать потоки печати PCL. Они знают, что есть для файлов PDF, но не для PCL.

Если вы печатаете в PDF, вы теряете функции обработки бумаги, которые были бы в PCL. Если вы просто объединяете файлы PCL, вы можете не получить их в правильном порядке сортировки, и вы можете захотеть вставить метки / штрих-коды OMR для установки или складывания оборудования и т. Д.

PCLTool SDK - вариант V, который является лицензией для PCLXForm.exe. PCLXForm - это консольная программа Windows, которая имеет мощный язык программирования сценариев с переопределениями командной строки и возможностями времени выполнения. Утилиты захвата печати Port Monitor и HotDir, поставляемые с SDK, могут захватывать, перенаправлять и накапливать несколько потоков печати. Тем не менее, он также может заглянуть внутрь них и определить правильный порядок, в котором они должны быть, преобразовать их в PCL. (или PDF с закладками, внутренними / внешними индексами, объединенными с другими документами и т. д.). Он также может сортировать документы по 1-7 страницам, 8-15 страницам и т. Д. И соответствующие OMR / штрих-коды для почтового оборудования или вставки логотипов, чтобы сделать документ более похожим на TransPromo. Демо-версия находится на www.pagetech.com

0 голосов
/ 07 июля 2010

Можно ли сохранить вывод PDF на основе существующего (рабочего!) Пакетного задания, которое генерирует PDF?

Вы можете использовать эти PDF-файлы, передать их команде Ghostscript и позволить Ghostscript выводитьPCL.

Являются ли ваши PDF-файлы отдельными файлами, по одному на каждый документ Word 2007?В этом случае вы можете запустить Ghostscript, например, так, чтобы вывести (например) цвет PCLXL:

gswin32c.exe ^
   -dBATCH ^
   -dNOPAUSE ^
   -dSAFER ^
   -sDEVICE=pxlcolor^
   -sOutputFile=c:/path/to/big.pcl ^
   1st.pdf ^
   second.pdf ^
   no3.pdf ^
   fourth.pdf ^
   [....]

Если черно-белый PCL достаточно хорош, используйте "-sDEVICE=pxlmono".

Предостережения: Я не уверен, какое максимальное количество PDF-файлов можно выстроить в одной командной строке.Если это станет проблемой, я бы порекомендовал объединить все файлы PDF first в один файл big.pdf, используя pdftk.exe (http://www.accesspdf.com/pdftk/):

pdftk.exe ^
   1st.pdf ^
   second.pdf ^
   no3.pdf ^
   fourth.pdf ^
   [....] ^
   cat output ^
   big.pdf         # Here: direct control over order of the files in the result

или, просто используя подстановочные знаки:

pdftk.exe ^
   *.pdf ^
   cat output ^
   big.pdf         # Here: order of files is alphabetically

Конечно, здесь также может возникнуть проблема с ограничением количества файлов, обрабатываемых одной командой. Однако со вторым способом это прощесоздавать большие PDF-файлы сначала через несколько раундов объединения. В любом случае, в конце: просто направьте ваш big.pdf в Ghostscript для преобразования в PCL / XL.

...