Форум пользователей Visio

Форум по вопросам применения и программирования в Visio
Текущее время: 27 май 2017, 12:10

Часовой пояс: UTC + 3 часа [ Летнее время ]


Правила форума


Размещение файлов в формате vsd (а не vsdx/vsdm), увеличивает вероятность ответа стремительным домкратом !!!



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Печать в PDF документов с нестандартными размерами листов
СообщениеДобавлено: 13 фев 2014, 16:09 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3250
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
Бывает довольно проблематично распечатать из Визио документы с нестандартными размерами листов и размером более А3, я бы сказал практически невозможно сделать это быстро.

Конечно есть надстройка Acrobat PDFMaker, но у меня во при печати документов с несколькими нестандартными листами визио зависает :(
Короче сварганил следующий код, для облегчения в подобных случаях.
Код:
Private Declare Function ShellExecute Lib "shell32.dll" Alias _  "ShellExecuteA" (ByVal hwnd As Long, _  ByVal lpOperation As String, _  ByVal lpFile As String, _  ByVal lpParameters As String, _  ByVal lpDirectory As String, _  ByVal nShowCmd As Long) As Long
Const SW_SHOWMAXIMIZED = 3
Sub ExportToPDF()
Dim VD As Document ' переменная - текущий документ
Set VD = ActiveDocument
Dim fn As String ' переменная - имя текущего файла
fn = VD.Path & VD.Name ' получаем полное имя текущего документа
Dim ext As String  ' переменная - расширение текущего документа
ext = ".vsd" ' по умолчанию ставим такое расширение
If VD.Application.Version > "14.0" Then ext = ".vsdx" ' если документ имеет версию старше 2010, то изменяем текущее расширение
Dim suff As String  ' переменная - окончание названия создаваемого файла PDF
suff = "_" & Format(Now, "ddMMyy") & "-" & Format(Now, "hhmmss") & ".pdf" ' добавляем к перед расширением текущую дату и время
dim pdf_n As String ' переменная - имя создаваемого файла PDF
pdf_n = Replace(fn, ext, suff) ' получаем имя создаваемого файла ЗВА, производим замену расширения vsd(vsdx) на pdf, с добавлением даты и времени
VD.ExportAsFixedFormat visFixedFormatPDF, pdf_n, visDocExIntentPrint, visPrintAll, , , , False, False, False ' экспорт документа в файл PDF
Call ShellExecute(0, "open", pdf_n, "", "", SW_SHOWMAXIMIZED) ' открываем полученный PDF файл
End Sub


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Печать в PDF документов с нестандартными размерами листов
СообщениеДобавлено: 13 фев 2014, 21:50 
Не в сети
Ветеран

Зарегистрирован: 05 июл 2012, 21:34
Сообщений: 204
Очков репутации: 27

Добавить очки репутацииУменьшить очки репутации
Я тоже пользуюсь встроенным экспортом в pdf. тут нет обработки ошибки в случае если файл занят.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Печать в PDF документов с нестандартными размерами листов
СообщениеДобавлено: 13 фев 2014, 21:54 
Не в сети
Ветеран

Зарегистрирован: 21 окт 2011, 12:01
Сообщений: 871
Откуда: г. Екатеринбург
Использую Visio c: 2011
Очков репутации: 118

Добавить очки репутацииУменьшить очки репутации
ExportAsFixedFormat для Visio >=2007


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Печать в PDF документов с нестандартными размерами листов
СообщениеДобавлено: 13 фев 2014, 22:32 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3250
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
Robink писал(а):
Я тоже пользуюсь встроенным экспортом в pdf. тут нет обработки ошибки в случае если файл занят.
Из основных достоинств: конвертирование происходит за считанные секунды и то что ставит именно нужный формат листа. В визио 2010 зачем-то убрали настройку листа "Так же как размер листа принтера", поэтому приходится ручками выставлять :(
9rey писал(а):
ExportAsFixedFormat для Visio >=2007
Спасибо, напомнил :)
Хотел про это написать, но устал писать камменты к коду и забыл…


Вложения:
Комментарий к файлу: Открыть стенсил и вытащить из него единственный мастер
ExportToPDF.zip [13.02 Кб]
Скачиваний: 139
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Печать в PDF документов с нестандартными размерами листов
СообщениеДобавлено: 14 фев 2014, 11:42 
Не в сети
Ветеран

Зарегистрирован: 05 июл 2012, 21:34
Сообщений: 204
Очков репутации: 27

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
Robink писал(а):
Я тоже пользуюсь встроенным экспортом в pdf. тут нет обработки ошибки в случае если файл занят.
Из основных достоинств: конвертирование происходит за считанные секунды и то что ставит именно нужный формат листа. В визио 2010 зачем-то убрали настройку листа
Где убрали?
Я использую в 10
Код:
Doc.ExportAsFixedFormat visFixedFormatPDF, doc_name, visDocExIntentPrint, visPrintAll, 1, 1, False, True, True, True, False


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Печать в PDF документов с нестандартными размерами листов
СообщениеДобавлено: 14 фев 2014, 12:04 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3250
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
Surrogate писал(а):
В визио 2010 зачем-то убрали настройку листа
я имел в виду в интерфейсе в настройках печати.
вот как это было в визио 2003
Изображение
в визио 2010 это окно выглядит так
Изображение


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 18 фев 2014, 19:25 
Не в сети
Ветеран

Зарегистрирован: 06 май 2013, 13:01
Сообщений: 746
Откуда: Россия
Использую Visio c: 2013
Очков репутации: 18

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
вот как это было в визио 2003
в визио 2010 это окно выглядит так

Эм.. Что-то разницы не вижу...


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Печать в PDF документов с нестандартными размерами листов
СообщениеДобавлено: 18 фев 2014, 21:30 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3250
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
а теперь ? Изображение
Изображение


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 20 фев 2014, 18:05 
Не в сети
Ветеран

Зарегистрирован: 06 май 2013, 13:01
Сообщений: 746
Откуда: Россия
Использую Visio c: 2013
Очков репутации: 18

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
а теперь ?

Это я сразу заметил. Решил, что просто пункт переименовали...

А ещё, я потом заметил наличие 4го радиобаттона, нажал кнопку edit, чтобы дописать, немного отвлёкся, сломал браузер и совсем забыл, что собирался что-то ещё написать.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re:
СообщениеДобавлено: 20 фев 2014, 18:17 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3250
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
Qwertiy писал(а):
Surrogate писал(а):
а теперь ?

Это я сразу заметил. Решил, что просто пункт переименовали...
к сожалению нет, не один я огорчен http://blogs.msdn.com/b/visio/archive/2 ... 2#comments


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Вы можете создать форум бесплатно PHPBB3 на Getbb.Ru, Также возможно сделать готовый форум PHPBB2 на Mybb2.ru
Русская поддержка phpBB