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

Форум по вопросам применения и программирования в Visio
Текущее время: 20 фев 2018, 23:27

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


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


При размещении файлов предпочтительным является формат vsd (а не vsdx/vsdm)



Начать новую тему Ответить на тему  [ Сообщений: 50 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
 Заголовок сообщения: Re: Вставка колонтитулов в PDF с помощью ghostscript
СообщениеДобавлено: 01 апр 2015, 16:42 
Не в сети
Ветеран

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

Добавить очки репутацииУменьшить очки репутации
Черный квадрат залитый сделал. Надо теперь как то цвет поменять :).


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Вставка колонтитулов в PDF с помощью ghostscript
СообщениеДобавлено: 01 апр 2015, 17:09 
Не в сети
Ветеран

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

Добавить очки репутацииУменьшить очки репутации
Содержимое ps файла
Код:
%!
%% Draws a one square inch box and inch in from the bottom left

1 1 1 setrgbcolor        %Установка текущего цвета - белый

%/inch {72 mul} def      % Convert inches->points (1/72 inch) Отменил можно так же перейти к мм

%координаты заданы в юнитах - точках
newpath                 % Start a new path
100 0 moveto    % an inch in from the lower left
200 0 lineto    % bottom side
200 100 lineto    % right side
100 100 lineto    % top side
closepath               % Automatically add left side to close path
fill                    % Fill in the box on the paper
showpage                % We're done... eject the page

Туда же можно и текст перенести. Остается все это собрать воедино.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Вставка колонтитулов в PDF с помощью ghostscript
СообщениеДобавлено: 01 апр 2015, 21:35 
Не в сети
Ветеран

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

Добавить очки репутацииУменьшить очки репутации
Сваял обработку одного дока с 1 страницей
Код:
Sub AddNumbers()

    AddNumberToPage "C:\temp\12.pdf", 123

End Sub

Sub AddNumberToPage(Path As String, Number As Integer)

    Dim str1 As String
   
    str1 = "C:\gs\gs9.16\bin\gswin32c.exe "
    str1 = str1 & "-dNODISPLAY "
    str1 = str1 & "-q "
    str1 = str1 & "-sFile=" & Path & " "
    str1 = str1 & "-dDumpMediaSizes "
    str1 = str1 & "C:\gs\gs9.16\toolbin\pdf_info.ps"
   
    Dim objShell As Object
    Dim objWshScriptExec As Object
    Dim objStdOut As Object
   
    Set objShell = CreateObject("WScript.Shell")
    Set objWshScriptExec = objShell.Exec(str1)
    Set objStdOut = objWshScriptExec.StdOut
   
    Dim rline As String
    Dim strline As String
   
    Dim i1 As Integer, strVal As String
    Dim W0 As Double, H0 As Double, R0 As Double
   
    While Not objStdOut.AtEndOfStream
        rline = objStdOut.ReadLine
        If rline <> "" Then
            If InStr(1, rline, "1 MediaBox:", 1) > 0 Then
                Dim tmp As String: tmp = ""
                Dim t1 As Integer: t1 = InStr(1, rline, "]", 1)
                For i1 = t1 - 1 To 1 Step -1
                    If Mid(rline, i1, 1) = " " Then
                        strVal = Mid(rline, i1 + 1, t1 - i1 - 1)
                        strVal = Trim(Replace(strVal, ".", ","))
                        H0 = CDbl(strVal)
                        t1 = i1
                        Exit For
                    End If
                Next i1
                For i1 = t1 - 1 To 1 Step -1
                    If Mid(rline, i1, 1) = " " Then
                        strVal = Mid(rline, i1 + 1, t1 - i1 - 1)
                        strVal = Trim(Replace(strVal, ".", ","))
                        W0 = CDbl(strVal)
                        Exit For
                    End If
                Next i1
            End If
        End If
    Wend
   
    'MsgBox "_" & H0 & "_" & W0 & "_"
   
   
    Dim X01 As Double, X02 As Double, Y01 As Double, Y02 As Double, X03 As Double, Y03 As Double
    Dim X1 As String, X2 As String, Y1 As String, Y2 As String, W As String, H As String, X3 As String, Y3 As String
   
    X01 = W0 - 42.5 + 2#
    X02 = W0 - 14.5 - 2#
    Y01 = H0 - 34# + 2#
    Y02 = H0 - 14.5 - 2#
   
    X03 = W0 - 32.5 - 2#
    Y03 = H0 - 27#
   
    X1 = CStr(X01): X1 = Trim(Replace(X1, ",", "."))
    X2 = CStr(X02): X2 = Trim(Replace(X2, ",", "."))
    Y1 = CStr(Y01): Y1 = Trim(Replace(Y1, ",", "."))
    Y2 = CStr(Y02): Y2 = Trim(Replace(Y2, ",", "."))
   
    X3 = CStr(X03): X3 = Trim(Replace(X3, ",", "."))
    Y3 = CStr(Y03): Y3 = Trim(Replace(Y3, ",", "."))
   
    W = CStr(W0): W = Trim(Replace(W, ",", "."))
    H = CStr(H0): H = Trim(Replace(H, ",", "."))
   
    Dim PathToPS As String: PathToPS = "C:\gs\gs9.16\toolbin\1.ps"
   
    Dim F As Integer
    F = FreeFile
   
    Open PathToPS For Output As #F
   
        Print #F, "%! "
        Print #F, "%% Draws a one square inch box and inch in from the bottom left"
        Print #F, ""
        Print #F, "1 0 0 setrgbcolor        %Установка текущего цвета - красный 1 1 1 белый"
        Print #F, ""
        Print #F, "%/inch {72 mul} def      % Convert inches->points (1/72 inch) Отменил можно так же перейти к мм"
        Print #F, ""
        Print #F, "%координаты заданы в юнитах - точках"
        Print #F, "newpath                 % Start a new path"
        Print #F, X1 & " " & Y1 & " " & "moveto    % an inch in from the lower left"
        Print #F, X2 & " " & Y1 & " " & "lineto    % bottom side"
        Print #F, X2 & " " & Y2 & " " & "lineto    % right side"
        Print #F, X1 & " " & Y2 & " " & "lineto    % top side"
        Print #F, "closepath               % Automatically add left side to close path"
        Print #F, "fill                    % Fill in the box on the paper"
        Print #F, ""
        Print #F, "0 0 0 setrgbcolor        %Установка текущего цвета - черный"
        Print #F, ""
        Print #F, "/Times-Roman findfont %1"
        Print #F, "10 scalefont          %3,5 мм"
        Print #F, "setfont               %3"
        Print #F, X3 & " " & Y3 & " moveto         %4"
        Print #F, "(" & Number & ") show    %5"
        Print #F, ""
        Print #F, "showpage"
        Print #F, ""
        Print #F, ""
             
    Close #F
   
    str1 = "C:\gs\gs9.16\bin\gswin32c.exe"
    str1 = str1 & " -o C:\temp\Header.pdf"
    str1 = str1 & " -sDEVICE=pdfwrite"
    str1 = str1 & " -dDEVICEWIDTHPOINTS=" & W
    str1 = str1 & " -dDEVICEHEIGHTPOINTS=" & H
    str1 = str1 & " C:\gs\gs9.16\toolbin\1.ps"
   
    ShellAndWait str1, vbHide
   
    Dim str2 As String
    str2 = "C:\gs\PDFtk\bin\pdftk.exe " & Path & " multistamp c:\temp\Header.pdf output c:\temp\output_test.pdf"

    ShellAndWait str2, vbHide
   
End Sub


Вложения:
f3.jpg
f3.jpg [ 10.25 Кб | Просмотров: 1321 ]
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Вставка колонтитулов в PDF с помощью ghostscript
СообщениеДобавлено: 02 апр 2015, 11:11 
Не в сети
Administrator

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Вставка колонтитулов в PDF с помощью ghostscript
СообщениеДобавлено: 02 апр 2015, 11:45 
Не в сети
Ветеран

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

Добавить очки репутацииУменьшить очки репутации
Surrogate
Помнишь у тебя были проблемы с ghostscript. У тебя остались те файлы? Поппробовать бы их собрать с новой 9.16 версией и проверить печатью. У нас что то тоже было, как раз этот ариал полужирный, где то пробегал на чертеже от заказчика, не печатался. Так в чертежах SHX шрифт, он на примитивы распадается в PDF файле.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Вставка колонтитулов в PDF с помощью ghostscript
СообщениеДобавлено: 02 апр 2015, 11:49 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3362
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
Robink писал(а):
Surrogate
Помнишь у тебя были проблемы с ghostscript. У тебя остались те файлы?
да, были проблемы с крокозябрами при склейке GhostScript 9.10 - в файле сконвертированном в PDF из визио внезапно текст латиницей, цифры и знаки препинания превращались в крокозябры.
недавно удалял те файлы с ноута, надо пошукать на рабочем сервере


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Вставка колонтитулов в PDF с помощью ghostscript
СообщениеДобавлено: 02 апр 2015, 16:00 
Не в сети
Administrator

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Вставка колонтитулов в PDF с помощью ghostscript
СообщениеДобавлено: 02 апр 2015, 16:13 
Не в сети
Ветеран

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

Добавить очки репутацииУменьшить очки репутации
Спасибо! Насчет имен файлов интересно. Если папки на латыни, а файл по русски, тогда работает.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Вставка колонтитулов в PDF с помощью ghostscript
СообщениеДобавлено: 02 апр 2015, 16:25 
Не в сети
Administrator

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Вставка колонтитулов в PDF с помощью ghostscript
СообщениеДобавлено: 02 апр 2015, 18:28 
Не в сети
Ветеран

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

Добавить очки репутацииУменьшить очки репутации
"C:\temp\2015_03_18_СЭСтр.pdf" вот такой путь съел. Надо почитать про это дело. Похоже у меня дело в пробелах, надо наверное путь попробовать заключать в доп кавычки.
Попробовал, заключил пути в доп. кавычки & Chr(34) & Path & Chr(34) & и начал все кушать.


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

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



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

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


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

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