Josephss73 Ответов: 1

Как Сохранить pdf в уменьшенном размере с помощью VBA


Я импортирую jpg-фотографию(Ы) и вставляю ее в новый pdf-файл(ы).
Я пытаюсь сохранить pdf-файлы в формате pdf уменьшенного размера (найденный в меню acrobat pro XI) с помощью кода VBA.
кто-нибудь может помочь, пожалуйста ?!

Что я уже пробовал:

Sub Tif2PDF(FileName As String, PdfNAme As String)
Dim AcroApp   As CAcroApp
Dim AVDoc     As CAcroAVDoc
Dim PDDoc     As CAcroPDDoc
Dim PdfSrc    As CAcroPDDoc
Dim PdfDst    As CAcroPDDoc
Dim jso       As Object
Dim IsSuccess As Boolean

Set AcroApp = CreateObject("AcroExch.App")
Set AVDoc = CreateObject("AcroExch.AVDoc")
Set PdfSrc = CreateObject("AcroExch.PDDoc")
Set PdfDst = CreateObject("AcroExch.PDDoc")

'open jpg
Call AVDoc.Open(FileName, "")
Set AVDoc = AcroApp.GetActiveDoc
If AVDoc.IsValid Then
     

   If CounterPDF = 1 Then
       Set PdfDst = AVDoc.GetPDDoc
     '  PdfDst.Save PdfNAme
       If PdfDst.Save(1 Or 4 Or 32, PdfNAme) <> True Then
          MsgBox "Failed to save " & FileName
       End If
       
       PdfDst.Close
      
    Else
        If PdfDst.InsertPages(PdfDst.GetNumPages() - 1, PdfSrc, 0, PdfSrc.GetNumPages(), True) Then
        Set jso = PdfDst.GetJSObject
       'Save document
        If PdfDst.Save(1, PdfNAme) <> True Then
            MsgBox "Failed to save " & FileName
        End If
   End If
'Clean up
Set jso = Nothing
        PdfDst.Close
     End If
End If

'Close the PDF
AVDoc.Close True
AcroApp.Exit
        
'Cleanup
Set PdfDst = Nothing
Set PdfSrc = Nothing
Set AVDoc = Nothing
Set AcroApp = Nothing

End Sub

0x01AA

А что не получается?
Есть сообщение об ошибке?
Любой намек, какая часть в источнике ведет себя не так, как вы ожидаете?

1 Ответов

Рейтинг:
2

RickZeeland

Если вы не возражаете делать это через интернет вы можете использовать этот онлайн API:
PDF для сжатия API. API для сжатия PDF - файлов- Convert API[^]
У них нет библиотеки VBA, но, возможно, вы можете использовать WebRequest и JSON.