<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум компьютерной помощи &mdash; Сжатие Pdf вложений в лотус документе.]]></title>
		<link>https://itpmr.ru/viewtopic.php?id=1158</link>
		<atom:link href="https://itpmr.ru/extern.php?action=feed&amp;tid=1158&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Сжатие Pdf вложений в лотус документе.».]]></description>
		<lastBuildDate>Mon, 03 Jun 2024 07:12:07 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Сжатие Pdf вложений в лотус документе.]]></title>
			<link>https://itpmr.ru/viewtopic.php?pid=124956#p124956</link>
			<description><![CDATA[<p>Есть проблема - к лотус докментам прикрепляют огромные по размерам Pdf приложения, которые совсем не оптимизированы по сжатию. Размеры файликов бывают 100-300 Мб.<br />Вот пока первый вариант сжатия таких вложений с помощью gswin64c.exe - Ghostscript, программа.</p><p>Вызов функции.<br /></p><div class="codebox"><pre><code>Print &quot;Вложение сжать: &quot; + datpatch$ &amp; oname$ 
If (obj.FileSize &gt; 10214400 ) Then &#039; БОРЯ 2024
If ws.Prompt (PROMPT_YESNO, &quot;Внимание&quot;,    &quot;Сжать ПДФ&quot;) = 1 Then     Call Pdf_compact (datpatch$ , oname$ )  
End If</code></pre></div><p>Функция.<br /></p><div class="codebox"><pre><code>Function Pdf_compact(datpatch As String, oname As String) As String
    On Error GoTo errh    
    Dim cmd As String
    Dim Namepdf As String
    Print &quot;Pdf_compact старт&quot;
    Namepdf = datpatch &amp; oname    

    If oname = &quot;456-output.pdf&quot; Then
        
        cmd = datpatch &amp; {gswin64c.exe}
        cmd = cmd &amp; { -sDEVICE=pdfwrite}
        cmd = cmd &amp; { -dCompatibilityLevel=1.7}
        cmd = cmd &amp; { -dNOPAUSE}
        cmd = cmd &amp; { -dBATCH}
        cmd = cmd &amp; { -sColorConversionStrategy=Gray}
        cmd = cmd &amp; { -dMonoImageResolution=60}        
        cmd = cmd &amp; { -o&quot;}  &amp; datpatch &amp; {tmpout.pdf&quot; -f&quot;} &amp; datpatch &amp; oname &amp; {&quot;}
        
        Print cmd
        
        Dim WShell As Variant, WshExec As Variant
        Dim OutStream As Variant, StdErr As String
        Set WShell=Nothing
        Set WshExec=Nothing
        
        Set WShell = CreateObject(&quot;WScript.Shell&quot;)
        Set WshExec = WShell.Exec(cmd)  &#039;запускаем прогу  
        Sleep 3
        While WshExec.Status=0 &#039;ждем закрытия проги
            Sleep 1
        Wend
        
        Set OutStream = WshExec.StdErr
        While Not OutStream.AtEndOfStream
            StdErr = StdErr &amp; Trim(OutStream.ReadLine()) &amp; Chr(13)
        Wend
        If Trim(StdErr)&lt;&gt;&quot;&quot; Then MsgBox StdErr
        Sleep 1
        Kill datpatch + oname
        Name datpatch + &quot;tmpout.pdf&quot; As datpatch + oname
        Sleep 1
    
        Print  &quot;ЗАКРЫЛИ&quot;
    End If
    Print &quot;Pdf_compact END&quot;
    Exit Function
ErrH:    
    Print &quot;Библиотека &#039;MED_XML&#039; ф-ция &#039;pdf_compact&#039;. Ошибка &quot; &amp; Error(Err) &amp; &quot; в строке &quot; &amp; Erl    
    Exit Function
End Function</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Mon, 03 Jun 2024 07:12:07 +0000</pubDate>
			<guid>https://itpmr.ru/viewtopic.php?pid=124956#p124956</guid>
		</item>
	</channel>
</rss>
