Форум пользователей Visio
http://visio.getbb.ru/

Печать в PDF документов с нестандартными размерами листов
http://visio.getbb.ru/viewtopic.php?f=15&t=528
Страница 1 из 1

Автор:  Surrogate [ 13 фев 2014, 16:09 ]
Заголовок сообщения:  Печать в PDF документов с нестандартными размерами листов

Бывает довольно проблематично распечатать из Визио документы с нестандартными размерами листов и размером более А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

Автор:  Robink [ 13 фев 2014, 21:50 ]
Заголовок сообщения:  Re: Печать в PDF документов с нестандартными размерами листов

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

Автор:  9rey [ 13 фев 2014, 21:54 ]
Заголовок сообщения:  Re: Печать в PDF документов с нестандартными размерами листов

ExportAsFixedFormat для Visio >=2007

Автор:  Surrogate [ 13 фев 2014, 22:32 ]
Заголовок сообщения:  Re: Печать в PDF документов с нестандартными размерами листов

Robink писал(а):
Я тоже пользуюсь встроенным экспортом в pdf. тут нет обработки ошибки в случае если файл занят.
Из основных достоинств: конвертирование происходит за считанные секунды и то что ставит именно нужный формат листа. В визио 2010 зачем-то убрали настройку листа "Так же как размер листа принтера", поэтому приходится ручками выставлять :(
9rey писал(а):
ExportAsFixedFormat для Visio >=2007
Спасибо, напомнил :)
Хотел про это написать, но устал писать камменты к коду и забыл…

Вложения:
Комментарий к файлу: Открыть стенсил и вытащить из него единственный мастер
ExportToPDF.zip [13.02 Кб]
Скачиваний: 261

Автор:  Robink [ 14 фев 2014, 11:42 ]
Заголовок сообщения:  Re: Печать в PDF документов с нестандартными размерами листов

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

Автор:  Surrogate [ 14 фев 2014, 12:04 ]
Заголовок сообщения:  Re: Печать в PDF документов с нестандартными размерами листов

Surrogate писал(а):
В визио 2010 зачем-то убрали настройку листа
я имел в виду в интерфейсе в настройках печати.
вот как это было в визио 2003
Изображение
в визио 2010 это окно выглядит так
Изображение

Автор:  Qwertiy [ 18 фев 2014, 19:25 ]
Заголовок сообщения: 

Surrogate писал(а):
вот как это было в визио 2003
в визио 2010 это окно выглядит так

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

Автор:  Surrogate [ 18 фев 2014, 21:30 ]
Заголовок сообщения:  Re: Печать в PDF документов с нестандартными размерами листов

а теперь ? Изображение
Изображение

Автор:  Qwertiy [ 20 фев 2014, 18:05 ]
Заголовок сообщения: 

Surrogate писал(а):
а теперь ?

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

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

Автор:  Surrogate [ 20 фев 2014, 18:17 ]
Заголовок сообщения:  Re:

Qwertiy писал(а):
Surrogate писал(а):
а теперь ?

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

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/