Ir ao conteúdo

Word Como criar arquivos independentes em PDF, gerados por mala direta do Word


Ir à solução Resolvido por Edson Luiz Branco,

Posts recomendados

Postado

@Edson Luiz Branco eu tinha a mesma necessidade do colega .. gerar pdf de uma mala direta de certificados onde ele possa gerar frente e verso, ou seja duas páginas em um único arquivo, ficou perfeito a sua solução, uma outra questão que eu estava pesquisando é se seria possível ele nomear todos os arquivos automaticamente levando em consideração alguma coluna da própria mala direta.. 

  • mês depois...
Postado

@Edson Luiz Branco Eu tenho o mesmo objetivo do autor do post e não consegui executar...

A macro executou 1 arquivo PDF de uma página todo em branco.

E como seria para usar um campo do banco de dados para dar renomear aos arquivos? Referenciar uma célula por exemplo??

Em 16/04/2021 às 17:16, Fabricio Melos disse:
 caminho = txtCaminho.Value

Ao executar já apontou erro aqui... quais são as adaptações necessárias ?

obs.: Sei bem pouco de macro.

  • mês depois...
Postado
Em 16/04/2021 às 09:55, Edson Luiz Branco disse:

Bem vindo ao fórum, @Rodrigo Siqueira Poli

 

Alterei o código pra deixar mais genérico salvando de X em X páginas, para isso mudando apenas o valor da constante BlocoPágs no código abaixo:

 

Sub ExportaPdfBlocoPágs()
  Const Caminho = "C:\Users\SeuNomeUsuário\Desktop\PDFs\"
  Const BlocoPágs = 7 'Salva PDF de X em X páginas
  Dim i As Long, NúmPágs As Long
  NúmPágs = ThisDocument.Range.Information(wdNumberOfPagesInDocument)
  For i = 1 To NúmPágs Step BlocoPágs
     ThisDocument.ExportAsFixedFormat OutputFileName:=Caminho & "Arquivo " & IIf(BlocoPágs = 1, i, (i \ BlocoPágs + 1)), _
                                      ExportFormat:=wdExportFormatPDF, _
                                      Range:=wdExportFromTo, From:=i, To:=i + BlocoPágs - 1
  Next i
End Sub

 

 

Em 19/05/2021 às 17:25, Edson Luiz Branco disse:

Bem vindo ao fórum, @Jardel Santana!

 

Qual erro está ocorrendo e em qual linha? É uma mala direta que você está imprimindo ou um documento qualquer de x em x págs? Se for mala direta, lembre-se de mesclar o documento num só antes de rodá-la, como dito no primeiro post.

Detalhe o que e como você está tentando fazer, preferencialmente anexe seu(s) arquivo(s) aqui (elimine ou distorça informações confidenciais, se existir). Zipe antes os arquivos, se tiverem macro, senão o robô do site não aceita.

Se você está usando o último código que postei, lembre-se de alterar o caminho onde ficarão os pdf's na constante "Caminho" (a pasta já deve existir em seu PC). Também altere de quantas em quantas páginas você quer imprimir na constante "BlocoPágs".

 

 

Prezados estou usando o código abaixo, mas preciso que os arquivos sejam salvos com o campo "Nome" que tem na mala direta. Esse campo refere-se ao nome de cada pessoa da mala direta. alguém pode me ajudar?

 

Sub SaveAsSeparatePDFs()
'Updated by Extendoffice 20180906
Dim I As Long
Dim xStr As String
Dim xPathStr As Variant
Dim xDictoryStr As String
Dim xFileDlg As FileDialog
Dim xStartPage, xEndPage As Long
Dim xStartPageStr, xEndPageStr As String
Set xFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
If xFileDlg.Show <> -1 Then
MsgBox "Please chose a valid directory", vbInformation, "Kutools for Word"
Exit Sub
End If
xPathStr = xFileDlg.SelectedItems(1)
xStartPageStr = InputBox("Begin saving PDFs starting with page __? " & vbNewLine & "(ex: 1)", "Kutools for Word")
xEndPageStr = InputBox("Save PDFs until page __?" & vbNewLine & "(ex: 7)", "Kutools for Word")
If Not (IsNumeric(xStartPageStr) And IsNumeric(xEndPageStr)) Then
MsgBox "The enterng start page and end page should be number format", vbInformation, "Kutools for Word"
Exit Sub
End If
xStartPage = CInt(xStartPageStr)
xEndPage = CInt(xEndPageStr)
If xStartPage > xEndPage Then
MsgBox "The start page number can't be larger than end page", vbInformation, "Kutools for Word"
Exit Sub
End If
If xEndPage > ActiveDocument.BuiltInDocumentProperties(wdPropertyPages) Then
xEndPage = ActiveDocument.BuiltInDocumentProperties(wdPropertyPages)
End If
For I = xStartPage To xEndPage
ActiveDocument.ExportAsFixedFormat xPathStr & "\Page_" & I & ".pdf", _
wdExportFormatPDF, False, wdExportOptimizeForPrint, wdExportFromTo, I, I, wdExportDocumentWithMarkup, _
False, False, wdExportCreateHeadingBookmarks, True, False, False
Next
End Sub

  • 5 meses depois...
Postado

@Fabricio Melos Bom dia!

 

Sou bem iniciante no VBA e quando tentei usar teu código não consegui de jeito nenhum. 

O código do @Edson Luiz Branco eu consegui usar e ele me atende quase perfeitamente já que preciso obrigatoriamente passar por "Editar Documentos Individuais... > opção mesclar Todos os registros" por causa da minha demanda em específico. 

O que não consegui foi fazer com que o nome dos arquivos .pdf fossem gerados a partir de uma coluna da minha base de dados que usei pra gerar o mala direta. 

Você consegue me ajudar?

Estou anexando o código que to usando até o momento

 

VBA_imprimir_pdfs_individuais.rar

@Rodrigo Camargo Borges Bom dia!
 

Conseguiu alguma solução amigo?

 

Agradeço qualquer ajuda!

  • 4 meses depois...
  • 3 meses depois...
  • 2 semanas depois...
Postado

@Edson Luiz Branco, boa tarde!
Utilizei seu código acima deu super certo. 
Utilizei o código para extrair os documentos criados na mala direta de um único arquivo em word, para individuas em pdf. 
Mas gostaria de verificar se é possível, que estes arquivos em pdf, fiquem com os respectivos nomes, puxados de uma base no excel, a mesma utilizada para criar a mala direta.
Como em uma emissão de certificados, gero o certificado via mala direta em word, com a base no excel, só que ao extrair para o pdf individual, já saia com o nome do aluno, para não precisar renomear individualmente. 

  • 3 meses depois...
Postado

Oi bom dia

sou nova aqui.

preciso de ajuda e não sei se é o mesmo caso.

preciso gerar mais de 500 confirmaçoes de viagem, os dados estão em excel e gero atraves da mala direta do word.

mas o arquivo no word, gera em paginas sequencias, gostaria de gravar individualmente.

seria possível?

a divisao do arquivo em pdf, faço pelo site i love pdf.

mas também, gostaria que os arquivos fossem salvos com os nomes de cada pessoa.

obrigada

 

 

31 minutos atrás, Thais marcondes disse:

Oi bom dia

sou nova aqui.

preciso de ajuda e não sei se é o mesmo caso.

preciso gerar mais de 500 confirmaçoes de viagem, os dados estão em excel e gero atraves da mala direta do word.

mas o arquivo no word, gera em paginas sequencias, gostaria de gravar individualmente.

seria possível?

a divisao do arquivo em pdf, faço pelo site i love pdf.

mas também, gostaria que os arquivos fossem salvos com os nomes de cada pessoa.

obrigada

 

 

@Edson Luiz Branco 

33 minutos atrás, Thais marcondes disse:

Oi bom dia

sou nova aqui.

preciso de ajuda e não sei se é o mesmo caso.

preciso gerar mais de 500 confirmaçoes de viagem, os dados estão em excel e gero atraves da mala direta do word.

mas o arquivo no word, gera em paginas sequencias, gostaria de gravar individualmente.

seria possível?

a divisao do arquivo em pdf, faço pelo site i love pdf.

mas também, gostaria que os arquivos fossem salvos com os nomes de cada pessoa.

obrigada

 

 

@Edson Luiz Branco 

@Midori

  • 2 meses depois...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...