Pergunte aqui
0

Gerar pdf com macro

perguntadas 2019-11-06 21:25:34 +0100

imagem do gravatar de Eliane

updated 2019-11-08 20:26:36 +0100

Boia tarde

Preciso de uma macro que gere em PDF somente a planilha que estou. Encontrei aqui no forum uma planilha do Gilberto parecida mas não estou conseguindo adaptar a minha. Preciso que gere pdf somente da plan que estou. Alguem poderia por favo rme ajudar?

Sub GenerarPDF 
Dim document As Object 
Dim dispatcher As Object
Dim numFactura As String 
Dim CarpetaNombrePDF As String

document   = ThisComponent.CurrentController.Frame
dispatcher = CreateUNOService("com.sun.star.frame.DispatchHelper")

Dim aSaltarA(0) As New com.sun.star.beans.PropertyValue
aSaltarA(0).Name = "ToPoint"
aSaltarA(0).Value = "ImprimirFactura"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, aSaltarA())
dispatcher.executeDispatch(document, ".uno:DefinePrintArea", "", 0, Array())

aSaltarA(0).Value = "CodCliente"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, aSaltarA())

numFactura = ThisComponent.CurrentController.ActiveSheet.getCellRangeByName("NumFactura").getString()
CarpetaNombrePDF = GuardarComo( "Factura " & numFactura )

If CarpetaNombrePDF > "" Then

    Dim args2(1) As New com.sun.star.beans.PropertyValue
    args2(0).Name = "URL"
    args2(0).Value = CarpetaNombrePDF
    args2(1).Name = "FilterName"
    args2(1).Value = "calc_pdf_Export"

    dispatcher.executeDispatch(document, ".uno:ExportDirectToPDF", "", 0, args2())

EndIf

End Sub
editar alterar tag assinalar como ofensivo fechar mesclar Excluir

2 Respostas

1

respondidas 2019-11-07 01:08:49 +0100

@Eliane,

Esta fiz com o gravador de macro: é gravado todos os parâmetros para conversão.

Da para melhorar, depende de sua necessidade:

Observações: REM(1) coloque a area nomeada, e REM(2) Diretório de salvamento e arquivo.

sub ExportarPDF
'----------------------------------------------------------------------
dim document, dispatcher as object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "AImprimir"         REM (1) <= área nomeada a imprimir.
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(2) as new com.sun.star.beans.PropertyValue
args2(0).Name = "URL"
args2(0).Value = "file:///C:/Users/GILBERTO/Desktop/Sem%20t%C3%ADtulo%202.pdf" REM (2) <= Diretório/arquivo.
args2(1).Name = "FilterName"
args2(1).Value = "calc_pdf_Export"
args2(2).Name = "FilterData"
args2(2).Value = Array(Array("UseLosslessCompression",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Quality",0,100,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ReduceImageResolution",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("MaxImageResolution",0,300,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("UseTaggedPDF",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SelectPdfVersion",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportNotes",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ViewPDFAfterExport",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportBookmarks",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("OpenBookmarkLevels",0,-1,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("UseTransitionEffects",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("IsSkipEmptyPages",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportPlaceholders",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("IsAddStream",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportFormFields",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("FormsType",0,1,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("AllowDuplicateFieldNames",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerToolbar",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerMenubar",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerWindowControls",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ResizeWindowToInitialPage",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("CenterWindow",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("OpenInFullScreenMode",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("DisplayPDFDocumentTitle",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("InitialView",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Magnification",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Zoom",0,100,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PageLayout",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("FirstPageOnLeft",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("InitialPage",0,1,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Printing",0,2,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Changes",0,4,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EnableCopyingOfContent",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EnableTextAccessForAccessibilityTools",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportLinksRelativeFsys",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PDFViewSelection",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ConvertOOoTargetToPDFTarget ...
(mais)
editar assinalar como ofensivo Excluir Link mais

Comentários

@Eliane, comentou:

Gilberto, está gerando o PDF de todas as Plan. No arquivo tem 8 planilhas e so posso gerar o pdf da que está ativa, ou seja, so da que estou mexendo e não de todas elas. Agradeço muitissimo sua ajuda

imagem do gravatar de SchiavinattoSchiavinatto ( 2019-11-07 15:46:42 +0100 )editar

Para garantir a impressão da área certa, nomeia e use na macro.

imagem do gravatar de SchiavinattoSchiavinatto ( 2019-11-07 15:47:27 +0100 )editar

Nomear como assim? Eu nomeei a area de impressão da coluna A:O e coloquei esss nome dado no REM1: Exemplo: args1(0).Value = "gerarpdf"

É isso?

imagem do gravatar de ElianeEliane ( 2019-11-07 16:15:15 +0100 )editar

Quando seleciona esta área e aciona a previa da impressão, esta certo ?

imagem do gravatar de SchiavinattoSchiavinatto ( 2019-11-08 20:25:09 +0100 )editar
1

respondidas 2019-11-07 15:24:57 +0100

imagem do gravatar de Conrado

@Eliane, tem esta também

Sub ExportarParaPDF()

    Dim pdfName As String
    Dim ArqName as String
    Dim Endereco As String

    oDoc = ThisComponent
    oLancamento = oDoc.Sheets.getByName("Lancamento")
    oSheet1 = oDoc.Sheets.getByName("Sheet1")

        'endereço onde quer salvar o arquivo pdf    
        Endereco = oSheet1.getCellRangeByName("B4").String

        'nome do arquivo
    ArqName = oSheet1.getCellRangeByName("C2").String

        'concatenar o nome do arquivo + extensão pdf
    pdfName = ArqName & ".pdf"

    ' change the path below as per your needs

        'converte o endereço em link e concatenar o nome do arquivo + extensão
    path =ConvertToUrl(Endereco & pdfName)

        Dim document as object
        Dim dispatcher as object
        document = ThisComponent.CurrentController.Frame
        dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

        ' This part makes sure only the first page gets printed
        Dim argsF(1) as new com.sun.star.beans.PropertyValue
        argsF(0).Name = "PageRange"
        argsF(0).Value = "1"

        ' This part sets filename and references the properties above

                'args1(2) = o numero 2 representa a posição da sheet no arquivo     
                Dim args1(2) as new com.sun.star.beans.PropertyValue 
        args1(0).Name = "URL"
        args1(0).Value = path
        args1(1).Name = "FilterName"
        args1(1).Value = "calc_pdf_Export"
        args1(2).name = "FilterData"
        args1(2).value = argsF()

        dispatcher.executeDispatch(document, ".uno:ExportDirectToPDF", "", 0, args1())

End Sub
editar assinalar como ofensivo Excluir Link mais

Comentários

Conrado muitissimo obrigada. Estou tentando adaptar ao meu arquivo.

imagem do gravatar de ElianeEliane ( 2019-11-07 16:12:24 +0100 )editar
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2019-11-06 21:25:34 +0100

Lidas: 18 vezes

Última atualização: Nov 07