Jump to content
costa2

Como posso guardar um pdf no form

Recommended Posts

costa2

eu quero definir um pdf no form, ou seja, caso abra esse form aparece la o conteudo do pdf

Share this post


Link to post
Share on other sites
Caça

Se quiseres abrir um PDF na tua form podes usar um WebBrowser.


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Andrepereira9

Na Internet falam de um componente que o Adobe Pdf traz.

Caixa de ferramentas -> Adicionar elemento -> Componentes COM -> Adobe pdf reader.

Mas a mim dá-me erro na criação  :)


A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Share this post


Link to post
Share on other sites
costa2

como abrir ir buscar eu consigo, mas eu queria que fosse defindo logo na criaçao do programa , que abri-se o form e tive-se la o pdf e nao clicar no botao e buscar o pdf

Share this post


Link to post
Share on other sites
Andrepereira9

Então queres por-lo nas resources (dentro do executável)

Vais às propriedades do Projecto -> Recursos -> Adicionar recurso de ficheiro existe (ou então arrastar para o espaço branco) -> ir as propriedades do pdf e escolher Acção de compilar como Recurso embutido

Depois para apresentar eu costumo utilizar esta função para extrair o ficheiro

Private Function GetResourceFile(ByVal fileName As String, ByVal tipo As String) As String
        Try

            ' Cria um nome/localização temporária para o ficheiro. Por defeito é criado um 
            ' ficheiro com o a extensão *.tmp e por isso é necessário alterar o para *.exe
            tempPath = IO.Path.ChangeExtension(IO.Path.GetTempFileName(), tipo)

            ' Verifica o nome da aplicação (Assembly) 
            Dim currentAssembly As Reflection.Assembly = Reflection.Assembly.GetExecutingAssembly()

            ' Verifica todos os objectos disponíveis nos resources
            Dim arrResources As String() = currentAssembly.GetManifestResourceNames()
            For Each resource As String In arrResources

                ' Verifica se o resource tem o nome do ficheiro a extrair
                If resource.Contains(fileName) Then

                    ' Lê o executável dos resources para uma Stream
                    Using resourceStream As IO.Stream = currentAssembly.GetManifestResourceStream(resource)

                        ' Cria um novo FileStream que irá escrever o ficheiro final
                        Using writer As New IO.FileStream(tempPath, IO.FileMode.Create, IO.FileAccess.Write)

                            Const size As Int16 = 4096
                            Dim bytes(size) As Byte
                            Dim numBytes As Int32 = 0

                            ' Escreve todos os bytes da Stream criada, usando 
                            ' o FileStream e o método Write() num ciclo Do
                            Do
                                numBytes = resourceStream.Read(bytes, 0, size)
                                writer.Write(bytes, 0, numBytes)

                            Loop While (numBytes > 0)

                        End Using ' writer

                    End Using ' resourceStream

                    ' Retorna a localização do ficheiro
                    Return tempPath



                End If
            Next

            ' Caso não tenha encontrado o ficheiro pretendido
            Return String.Empty

        Catch ex As Exception
            Return String.Empty
        End Try

    End Function

Para utilizares

Dim localizacao_ficheiro As String = GetResourceFile("nome_ficheiro_pdf.pdf", ".pdf")

o ficheiro fica na pasta temporaria (%temp%). e só abrires a partir de lá.

o caminho fica guardado na variavel localizacao_ficheiro


A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Share this post


Link to post
Share on other sites
Caça

Ou então

My.Computer.FileSystem.WriteAllBytes()


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
costa2

Private Function GetResourceFile(ByVal fileName As String, ByVal tipo As String) As String
        Try

            ' Cria um nome/localização temporária para o ficheiro. Por defeito é criado um 
            ' ficheiro com o a extensão *.tmp e por isso é necessário alterar o para *.exe
            tempPath = IO.Path.ChangeExtension(IO.Path.GetTempFileName(), tipo)

            ' Verifica o nome da aplicação (Assembly) 
            Dim currentAssembly As Reflection.Assembly = Reflection.Assembly.GetExecutingAssembly()

            ' Verifica todos os objectos disponíveis nos resources
            Dim arrResources As String() = currentAssembly.GetManifestResourceNames()
            For Each resource As String In arrResources

                ' Verifica se o resource tem o nome do ficheiro a extrair
                If resource.Contains(fileName) Then

                    ' Lê o executável dos resources para uma Stream
                    Using resourceStream As IO.Stream = currentAssembly.GetManifestResourceStream(resource)

                        ' Cria um novo FileStream que irá escrever o ficheiro final
                        Using writer As New IO.FileStream(tempPath, IO.FileMode.Create, IO.FileAccess.Write)

                            Const size As Int16 = 4096
                            Dim bytes(size) As Byte
                            Dim numBytes As Int32 = 0

                            ' Escreve todos os bytes da Stream criada, usando 
                            ' o FileStream e o método Write() num ciclo Do
                            Do
                                numBytes = resourceStream.Read(bytes, 0, size)
                                writer.Write(bytes, 0, numBytes)

                            Loop While (numBytes > 0)

                        End Using ' writer

                    End Using ' resourceStream

                    ' Retorna a localização do ficheiro
                    Return tempPath



                End If
            Next

            ' Caso não tenha encontrado o ficheiro pretendido
            Return String.Empty

        Catch ex As Exception
            Return String.Empty
        End Try

    End Function

onde coloco este codigo??

Share this post


Link to post
Share on other sites
Caça

Podes coloca-la num modulo por exemplo.


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Andrepereira9

TemPath é uma variavel

Antes desse bloco de código mete

Dim tempPath as String


A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Share this post


Link to post
Share on other sites
costa2

Podes coloca-la num modulo por exemplo.

como é que o modulo fica integrado com o form?

Share this post


Link to post
Share on other sites
Caça

Não fica, um modulo pode ser utilizado em qualquer parte da aplicação, por isso só tens de chamar a função.


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
costa2

ja percebi, mas coloca a executar e onde devia aparecer o pdf nao aparece nada

Share this post


Link to post
Share on other sites
Caça

E onde é que o estás a mostrar?


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Caça

Não é isso, em que objecto é que o estás a mostrar?


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
felix

boas

estou basicamente com o mesmo problema, como e que posso anexar ao programa um documento pdf que por a caso é o manual do programa, de modo a quando o utilizador clica-se na link manual aparece-se o manual, queria que o pdf ficasse anexado ao ficheiro executavel e não fosse necessário especificar o caminho para o ficheiro no computador, de modo a poder funcionar em qualquer computador

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.