Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2012, 14:23   #1
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию Печать внешнего файла

Как в VBA распечатать внешний файл (pdf, jpg, tif, bmp)?
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 26.02.2012, 16:40   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

А вы объясните нам, как сделать это вручную в Windows,
- а мы подскажем, как сделать описанные вами действия программно.
EducatedFool вне форума Ответить с цитированием
Старый 26.02.2012, 16:53   #3
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Гугл знает,его только спросить надо Печать внешнего файла
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 26.02.2012, 19:24   #4
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от doober Посмотреть сообщение
Гугл знает,его только спросить надо Печать внешнего файла
Я не силен в английском, по этому искал в русском инете. Но было интересно просмотреть английские сайты. В результате я пришел к следующему.
1. Для печати картинок лучше использовать строку
Shell "rundll32.exe " & Environ("windir") & "\system32\shimgvw.dll,ImageView_Pr intTo /pt " & Chr(34) & ПутьКфайлу & Chr(34) & " " & Chr(34) & Принтер & Chr(34).
Это единственная команда, которая я нашел, позволяющая напрямую указывать на какой принтер нужно выводить печать.
2. С PDF все сложнее. ВСЕ команды которые я на шел прямо или косвенно ссылаются на Acrobat Reader. То есть, я не смог на прямую из VBA распечатать PDF файл. В следствие чего нет возможности указать принтер для вывода. Для меня такая возможность критична. Альтернативой может быть такой код
Код:
strPDF = "C:\Test\Map.pdf"
strReader = "C:\Program Files\Adobe\Acrobat 7.0\Reader\acrord32.exe"
RetVal = Shell(strReader & " /t """ & strPDF & """ """ & Принтер & """", vbMinimizedFocus)
Но он требует прямого указания пути к Acrobat Reader, что крайне, крайне не приятно. А так же я при каждой печати открывает Acrobat Reader - от чего мне хотелось бы избавиться. То есть вопрос печати PDF файлов на принтер остается открытым.

Очень надеюсь, что я что нибудь упустил или не так понял и старшие товарищи меня поправят...
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 26.02.2012, 20:11   #5
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Тут всплыл еще один вопрос по теме. При печати PDF через Acrobat Reader не сетевой принтер, часть символов идет крякозябами. Пример прикладываю. Если печатать этот же файл с компа на котором установлен принтер - все нормально.

Кто нибудь знает как с этим бороться?
Изображения
Тип файла: jpg пример.jpg (56.6 Кб, 148 просмотров)
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 27.02.2012, 13:24   #6
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Разобрался с PDF. Для его без проблемной печати нужно выкачать и установить еще одну программу Ghostscript Я её установил так же в "c:\gs\". Вывести PDF на любой принтер можно так: "Shell strGSview & "gsview32.exe ""-s" & ПринтерИмя & """ -p " & ИмяPDF". Где: strGSview - это путь к программе. В моем случае strGSview = "C:\gs\Ghostgum\gsview\". При этом не отрывается надоедливое окно программы.
Всю папку можно устанавливать путем простого копирования (если не нужны какие либо изыски).

ИМХО получилось простое решение по созданию, редактированию, печати PDF, PS и ещё ряд вкусной (читайте хелп на русском). Которое бесплатно, просто в повторение, доступно на всех ОС и на любом языке программирования.

ЗЫ как ни странно пропал спецэффект с крякозябами. То есть в данном случае это решение даже лучше решения на базе Acrobat Reader.
С уважением, Алексей.

Последний раз редактировалось tae1980; 27.02.2012 в 13:30.
tae1980 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение данных из внешнего файла *.db AndyOsip Microsoft Office Excel 2 11.07.2010 12:46
Код из внешнего файла grom_zz Общие вопросы Delphi 6 04.07.2010 09:50
Заполнение отфильтрованных ячеек из внешнего файла chlk Microsoft Office Excel 1 02.03.2010 05:46
Подгрузить код HTML из внешнего файла Gladunin-Urii HTML и CSS 17 22.08.2009 16:36
составить матрицу из данных внешнего файла Petruha-nsk Общие вопросы C/C++ 2 11.04.2009 16:58