9
votes

Afficher l'octet pdf généré ASP.NET [] sur la page Web sans enregistrer le fichier

J'utilise iTextShaRP pour générer un PDF. Je peux enregistrer le fichier PDF de l'octet PDF []. xxx

Quelle est la meilleure façon d'afficher la sortie octet [] à une page Web?

Je veux montrer le PDF à l'intérieur d'un div dans ma page. Pas le PDF comme une réponse complète.

J'ai vu des réponses pour MVC, mais j'utilise une application Web ASP.NET.

Y a-t-il une meilleure façon que d'utiliser des gestionnaires HTTP à le faire? Je ne veux pas envoyer tous les détails pour créer PDF en tant que chaîne de requête.


0 commentaires

4 Réponses :


6
votes

Essayez ceci xxx


1 commentaires

@Senjacob Vous n'avez pas précisé cela dans votre question.Utilisez-le pour que vous puissiez obtenir plus de réponses



0
votes

quelque chose comme ça peut-être de ce travail?

<div>
<object data="myPDF.pdf" type="application/pdf" width="200" height="500">
alt : <a href="myPDF.pdf">myPDF.pdf</a>
</object>
</div> 


1 commentaires

Merci, mais comme je me suis demandé dans la question, je n'ai pas de fichier pdf enregistré . J'ai besoin de savoir si je peux incorporer le pdf octets directement à l'objet . Comme nous le faisons avec des images telles que



12
votes

J'ai essayé Ceci à Jsfiddle , et cela fonctionne bien à Chrome & FF, devez vérifier sur les autres navigateurs aussi.

Convertir le octet [] code> sur base64 code> Utilisation, p>

<object data="data:application/pdf;base64, JVBERi0xLjQKJeLjz9MKMyA..." type="application/pdf" width="160px">
    <embed src="data:application/pdf;base64, JVBERi0xLjQKJeLjz9MKMyA..." type="application/pdf" />
</object>


4 commentaires

Cela fonctionne magnifiquement, mais vous n'avez pas besoin d'envelopper le dans un . Je viens de mettre et cela a fonctionné parfaitement. Merci.


Avez-vous déjà eu des paramètres PDF ouverts ouverts à une source de base64?


Je n'ai pas essayé d'envoyer d'autres paramètres, mais les données PDF elles-mêmes comme base64. Mais je pense que dans le navigateur Web, nous pouvons utiliser la réponse ArrayBuffer du flux PDF et le convertir en uint8Array ou Blob, puis utilisez la fenêtre.url pour créer un lien de navigateur pour afficher le PDF plus facilement dans les navigateurs modernes.


J'ai essayé cela et cela a fonctionné à la fois comme objet et comme une incorporation. Mon code C # était quelque chose comme: byte [] bpdf = fichier.readallbytes ("fileName.pdf"); string base64pdf = system.convert.tobase64string (BPDF, 0, BPDF.Length); Enveloppé dans String Str = " "; Mon code de rasoir était @ html.raw (pdfmodel.tructurnpdf ()) . Il affichait le PDF en pleine hauteur, 51 pages.



2
votes

J'ai utilisé convert.tobase64string (contenu) pour certains projets sans problème, jusqu'à aujourd'hui avec un fichier de 18 pages à environ 1 Mo. L'erreur de la console de chrome est Échec de la charge de chargement: NET :: err_invalid_url . Je suppose que c'est à cause de la taille de la chaîne ?!

J'ai fini par utiliser web API et il suffit de le retourner comme filestreamResultsuld au lieu de la chaîne de base64. xxx

mise à jour: c'est fondamentalement la même chose pour l'afficher sur une page de rasoir. Je viens de copier mon code pour récupérer le contenu de fax à l'aide de RingCentral ici. Et mieux encore, il suffit d'utiliser filecontentresult comme vous avez déjà le octet [] < / code>. xxx


2 commentaires

C'est vraiment une bonne option dans la partie serveur. Depuis la question indique comment afficher PDF sur la page du client, pourriez-vous ajouter comment l'avez-vous affiché dans la page du client?


@Senjacob appelle simplement l'API et vous verrez le PDF à la page. Je viens de comprendre que c'est la même chose à afficher sur une page de rasoir. Je vais mettre à jour ma réponse.