Как заставить пользователя выбирать изображения, а затем вставлять их в Word PDF? - PullRequest
0 голосов
/ 13 июня 2019

Я ищу способ вызова проводника, чтобы пользователь мог выбрать изображение или папку с изображениями, а затем вставить их в сгенерированный документ PDF.

Я использовал несколько сабвуферов, чтобы использовать предопределенное изображение, но для этого приложения изображение будет отличаться каждый раз.

Set wdApp = New Word.Application

With wdApp
   .Visible = True
   .Activate

    .Documents.Add
    With .Selection

        .BoldRun
        .Font.Size = 20
        .ParagraphFormat.Alignment = wdAlignParagraphCenter
        .TypeText TextBox2.Value
        .TypeText Chr(13)
        .BoldRun

        .ParagraphFormat.Alignment = wdAlignParagraphCenter
        .Font.Size = 16
        .TypeText "Report"
        .TypeText Chr(13)

У меня есть вышеуказанный код для создания слова документа. Мне нужно вставить картинку после текста.

1 Ответ

0 голосов
/ 13 июня 2019

Вы хотите использовать File Dialog , чтобы позволить вашему пользователю выбирать изображения.

Ниже приведен пример того, как его использовать, вам просто нужно обновить его для ваших конкретныхнеобходимо.Ознакомьтесь с документацией выше, чтобы увидеть больше параметров.

Измените .AllowMultiSelect на True, и затем вы можете зациклить каждый файл, выбранный пользователем.

Private Sub TestingFileDialog()

    Dim Fd As FileDialog
    Set Fd = Application.FileDialog(msoFileDialogFilePicker)

    With Fd

        'GENERAL SETTINGS
        .AllowMultiSelect = False
        .Title = "Please select a picture"
        .ButtonName = "Choose a picture"
        .InitialFileName = "c:\"
        .InitialView = msoFileDialogViewList

        'FILE FILTERS
        .Filters.Clear
        .Filters.Add "JPG", "*.JPG"
        .Filters.Add "PNG", "*.PNG"


        'SHOW FORM, WILL RETURN TRUE IF USER SELECTS A FILE
        If .Show = True Then

          'Get file name
          Dim FilePath As String
          FilePath = .SelectedItems(1)

          'do whatever you need to from here...

        Else
            'No file chosen, do something else.

        End If
    End With

End Sub

Для добавления изображений используйте wdApp.Selection.InlineShapes.AddPicture.Это примет ваш путь к файлу, который выберет пользователь.

Используя ваш код, он может выглядеть примерно так:

Sub AddImagesToWordDocument()

    Set wdApp = New Word.Application

    With wdApp
        .Visible = True
        .Activate
        .Documents.Add

        With .Selection
            .BoldRun
            .Font.Size = 20
            .ParagraphFormat.Alignment = wdAlignParagraphCenter
            .TypeText TextBox2.Value
            .TypeText Chr(13)
            .BoldRun

            .ParagraphFormat.Alignment = wdAlignParagraphCenter
            .Font.Size = 16
            .TypeText "Report"
            .TypeText Chr(13)

            Dim Fd As FileDialog
            Set Fd = Application.FileDialog(msoFileDialogFilePicker)
            Fd.AllowMultiSelect = True
            Fd.Filters.Clear
            Fd.Filters.Add "JPG", "*.JPG"
            Fd.Filters.Add "PNG", "*.PNG"
            If Fd.Show = True Then

                'Loop files and add them
                Dim FileIndex As Long
                For FileIndex = 1 To Fd.SelectedItems.Count
                    .InlineShapes.AddPicture Fd.SelectedItems(FileIndex)
                Next FileIndex
            Else
                'No file chosen, do something else if need be.
            End If

        End With

    End With


End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...