Partage
  • Partager sur Facebook
  • Partager sur Twitter

Convertir du base64 en PDF

Ruby on rails

Sujet résolu
    17 janvier 2019 à 15:38:30

    Bonjour à tous,

    J'ai une petite question qui me parait simple mais pourtant je ne trouve pas la solution.

    J'ai mon client qui remplit un input type file avec un pdf, je le récupère en AngularJS en base64 et je l'envoi à mon serveur. Je le récupère en Ruby On Rails et j'aimerais le sauvegarder sur mon serveur au format PDF. 

    Existe-t-il un moyen de convertir le BASE64 en PDF correct (c'est à dire bonne qualité et avec le texte mis au bon format, pas juste une image de mon pdf)?

    Si non, comment devrais je m'y prendre pour pouvoir faire cela? 

    Merci d'avance 

    Bonne journée

    • Partager sur Facebook
    • Partager sur Twitter
      17 janvier 2019 à 17:28:37

      Décode juste le base64, et tu retrouves le PDF envoyé par le client.

      Base64 n'est pas un format de fichier, c'est juste un encodage qui permet de passer n'importe quelle donnée par canal qui ne permet de transmettre que du texte.

      • Partager sur Facebook
      • Partager sur Twitter

      Blond, bouclé, toujours le sourire aux lèvres...

        21 janvier 2019 à 15:29:54

        Parfait Merci beaucoup,

        J'avais un autre problème mais je l'ai résolu donc voici comment enregistré un PDF sur le serveur!

        #Initialisation de la base64
        pdf = "BASE64 STRING"

        #Définition d'un Regex (copier d'internet, source: https://stackoverflow.com/questions/15995015/open-and-save-base64-encoded-image-data-uri-in-ruby ) 
        REGEXP = /\Adata:([-\w]+\/[-\w\+\.]+)?;base64,(.*)/m

        data_uri_parts = pdf.match(REGEXP) || []

        extension = MIME::Types[data_uri_parts[1]].first.preferred_extension

        #definition d'un nom pour le fichier
        name = "CV_officiel"

        #association du nom et de l'extension
        file_name = name+".#{extension}"

        #Enregistrement du PDF dans un dossier (path)
        path = './app/pdf/'

        File.open(path+file_name, 'wb') do |file|

            file.write(Base64.decode64(data_uri_parts[2]))

        end

        Pour déplacer le fichier dans un autre dossier comme je souhaite le faire j'utilise cette commande:

        FileUtils.mv(path +file_name,'../uploads/pdf/')

        Voila Merci LoupSolitaire pour ton aide

        Cordialement,
        Maf

        -
        Edité par Maf. 21 janvier 2019 à 15:51:37

        • Partager sur Facebook
        • Partager sur Twitter

        Convertir du base64 en PDF

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown