You are here:--Codifica file pdf in base 64binary
Codifica file pdf in base 64binary2019-01-26T14:51:17+02:00

Home Forum Domande su Excel VBA e MACRO Codifica file pdf in base 64binary

  • Autore
    Articoli
  • Avatarrexottantotto
    Partecipante
      Post totali: 156

      Sul Desktop ho la cartella “Allegati” .

      Nella cartella “Allegati” ho salvato un file in formato pdf  denominato “Allegato1.pdf”.

      Ho creato una userfom.

      Sulla userform ho inserito due pulsanti e due textbox.

      Pulsante: Seleziona il file da codificare

      Pulsante: Codifica il file in base 64

      TextBox1

      TextBox2

      Vorrei fare questo:

      cliccare sul Pulsante: “Seleziona il file da codificare” aprire la cartella “Allegati”, cliccare sul file “Allegato1.pdf” e popolare la TextBox1 con il nome del percorso e del file “Allegato1.pdf”;

      cliccare sul Pulsante: “Codifica il file in base 64” e con codive vba codificare il file “Allegato1.pdf” in base64 binary, nominare il file codificato con lo stesso nome del file in pdf e popolare la TextBox2 con il nome del percorso e del file codificato in base64 “Allegato1.pdf”.

      http://www.filedropper.com/base64

       

    • Avatarrexottantotto
      Partecipante
        Post totali: 156

        Sulla codifica e decodifica in base 64 in rete ho trovato questo

        http://web.archive.org/web/20060527094535/http://www.nonhostile.com/howto-encode-decode-base64-vb6.asp

        Non saprei però come applicare il codice al mio esempio.

      • BySalvBySalv
        Amministratore del forum
          Post totali: 479

          Ciao Rexottantotto, il problema e che il file è un PDF, quindi non puoi selezionare il testo per convertirlo.

          se fosse un normale file testo uno selezionerebbe il testo e lo convertirebbe.

          fai una prova tu apri il file pdf seleziona il testo e vedi se lo copia da qualche parte.

          Ciao By Sal :bye:

        • Avatarrexottantotto
          Partecipante
            Post totali: 156

            Quindi occorre prima convertire il file da pdf in file di testo e successivamente codificare il file di testo in bas 64binary.

             

             

          • BySalvBySalv
            Amministratore del forum
              Post totali: 479

              Ciao in effetti si, oppure trova un sito che faccia la conversione del file, io ho trovato questo ma non so se a te va bene

              https://www.browserling.com/tools/file-to-base64

              Ciao By Sal :bye:

            • Avatarrexottantotto
              Partecipante
                Post totali: 156

                Ti ringrazio per la segnalazione.

                 

                 

              • Avatarrexottantotto
                Partecipante
                  Post totali: 156

                  In rete ho trovato questo esempio che si applica a Excel

                  http://exceldevelopmentplatform.blogspot.com/2017/11/use-msxml2-to-encode-bytes-or-string-to.html

                  Use MSXML2 to encode bytes or String to Base64
                  Option Explicit
                  Option Private Module

                  ‘* Tools->References
                  ‘* Microsoft XML, v6.0

                  ‘* External Docs
                  ‘* MSDN – How to Encode XML Data  – https://msdn.microsoft.com/en-us/library/aa468560.aspx
                  ‘* MSDN – nodeTypedValue Property – https://msdn.microsoft.com/en-us/library/ms762308(v=vs.85).aspx
                  ‘* SO – Base64 Encode String in VBScript – https://stackoverflow.com/questions/496751/base64-encode-string-in-vbscript#answer-506992

                  Private Sub TestBase64Encode()
                  Dim sOriginal As String
                  sOriginal = “Hello world”

                  Dim sBase64 As String
                  sBase64 = Base64EncodeString(sOriginal)

                  Dim sDecoded As String
                  sDecoded = Base64DecodeString(sBase64)

                  Debug.Assert sOriginal = sDecoded

                  End Sub

                  Function Base64EncodeString(ByVal sText As String) As String
                  Dim byt() As Byte

                  byt = VBA.StrConv(sText, VbStrConv.vbFromUnicode, 1033)

                  Base64EncodeString = Base64EncodeFromBytes(byt)
                  End Function

                  Function Base64EncodeFromBytes(ByRef byt() As Byte) As String

                  Dim oXML  As MSXML2.DOMDocument60
                  Set oXML = New MSXML2.DOMDocument60

                  Dim oNode As MSXML2.IXMLDOMNode

                  Set oNode = oXML.createElement(“base64”)
                  oNode.DataType = “bin.base64”

                  oNode.nodeTypedValue = byt
                  Base64EncodeFromBytes = oNode.Text

                  Debug.Assert TypeName(Base64EncodeFromBytes) = “String”
                  Set oNode = Nothing
                  Set oXML = Nothing
                  End Function

                  Function Base64DecodeString(ByVal sText As String) As String

                  Dim byt() As Byte
                  byt = Base64DecodeToBytes(sText)

                  Base64DecodeString = VBA.StrConv(byt(), VbStrConv.vbUnicode, 1033)

                  End Function

                  Function Base64DecodeToBytes(ByVal sEncoded As String) As Byte()

                  Debug.Assert TypeName(sEncoded) = “String”

                  Dim oXML  As MSXML2.DOMDocument60
                  Set oXML = New MSXML2.DOMDocument60

                  Dim oNode As MSXML2.IXMLDOMNode
                  Set oNode = oXML.createElement(“base64”)

                  oNode.DataType = “bin.base64”
                  oNode.Text = sEncoded

                  Base64DecodeToBytes = oNode.nodeTypedValue

                  Set oNode = Nothing
                  Set oXML = Nothing
                  End Function

                  Quello che non riesco a capire cosa codifica e decodifica.

                  Penso che sia un file di testo.

                  Però nelle due funzioni non trovo l’apertura di nessun file.

                  Cioè se codifica un testo nella funzione dovrebbe esserci una istruzione che seleziona un file di testo, lo apre e poi lo codifica.

                  Non capisco.

                   

                   

                   

                  • Questa risposta è stata modificata 6 mesi, 3 settimane fa da Avatar rexottantotto.
                • Avatarrexottantotto
                  Partecipante
                    Post totali: 156

                    Mi correggo.

                    Nella prima funzione dell’esempio:

                    Private Sub TestBase64Encode()
                    Dim sOriginal As String
                    sOriginal = “Hello world”

                    ho visto che il codice codifica e decodifica la stringa “Hello world”.

                    Domanda:

                    al posto della singola stringa, si può codificare e decodificare un intero testo di word?

                    Come ho detto prima:

                    come fare per inserire nella funzione una istruzione che seleziona un file di testo, lo apre e poi lo codifica?.

                  • Avatarrexottantotto
                    Partecipante
                      Post totali: 156

                      Ho trovato questa discussione:
                      <h1>PDF to Base64</h1>
                      https://social.msdn.microsoft.com/Forums/vstudio/en-US/bba2d765-29d8-4d3b-857d-39925e031b16/pdf-to-base64?forum=vsto

                      Si può applicare a excel?

                    • Avatarrexottantotto
                      Partecipante
                        Post totali: 156

                        Ciao,

                        ad oggi non ho ancora risolto nonostante abbia cercato in rete qualcosa applicato a excel.

                        Il codice vba che ho trovato si applica ai database access.

                        Quello che ho trovato su questo link

                        http://exceldevelopmentplatform.blogspot.com/2017/11/use-msxml2-to-encode-bytes-or-string-to.html

                        si applica anche a excel.

                        Ma in questo caso si limita a codificare una singola stringa.

                        Si può adattare il codice vba di questo esempio aprendo un file pdf e codificandolo in base64 binary?

                        Se si fa per una stringa forse si può fare anche per un file pdf visto che con che access questo è possibile.

                         

                         

                      • Avatarrexottantotto
                        Partecipante
                          Post totali: 156

                          Ciao,

                          il silenzio non porta niente di buono.

                          Devo dedurre che quanto ho esposto non si possa fare con excel.

                          Mi devo rassegnare.

                           

                        Devi essere loggato per rispondere a questa discussione.

                        Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

                        Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

                        Chiudi