Bonjour,

Voila je rencontre un petit problème avec mon code.

Dans ma page web, j'ai un SELECT qui en fonction du choix effectué, doit charger dynamiquement le contenu du PDF Correspondant. Le Problème est que le contenu chargé est complètement illisible. Voilà le code de mon contrôleur et celui du code Ajax ci-dessous.

Mon Contrôleur

$code = $request->request->get('code_classe');

        $classe = strtoupper($code);

        if (count(explode(' ', $classe)) > 1) {

            $classeName = explode(' ', $classe);

            $newName = implode('_', $classeName);

            $timetableName = trim($newName, '_') ;

        } else {

            $timetableName = $classe;
        }

        $fileLocator = $this->get('file_locator');

        $path = $fileLocator->locate('@CathoAdminBundle/Resources/pdf-timetable/'.$timetableName.'.pdf');

        $response = new BinaryFileResponse($path);

        $response->headers->set('Content-Type', 'application/pdf');

        $response->setContentDisposition(
            ResponseHeaderBag::DISPOSITION_INLINE,
            $timetableName.'.pdf'
        );

       return $response;

Mon code AJAX

<script>
        $(function(){
            $("#filtre_classe_classe").on('change', function(){

                var data = {code_classe: $(this).val()} ;

                $.ajax({
                    type: 'post',
                    url: '{{ path("api_emploi_temps_classe") }}',
                    data: data,
                    success: function (data) {
                        **$("#pdf_content").html(data).show();**
                    }
                });
            });
        });
    </script>

J'aimerais pouvoir afficher le contenu du Document PDF chargé dans ma page web. Qu'il soit lisible. Je suis convaincu que le
problème se trouve au niveau du code Ajax

Est-il possible d'afficher le contenu d'un PDF dans une page web en Javascript ? Si jamais il y a une meilleure façon de le faire je suis preneur.

Merci d'avance

1 réponse


Balbert
Réponse acceptée

Salut,

Je te propose ceci =>

1 - Changer la methode de reception de tes données en GET.
2 - Ajouter un iframe dans ton element #pdf_content
3 - Dans ton js oublier l'ajax et simplement changer le src de ton iframe.

J'espère que cela te sera utile.