Les tables de données d'image (ou au moins le titre de l'image) à l'exportation au format PDF
À l'aide de tables de données et des Boutons (PAS TableTools, qui est à la retraite) de l'extension. Certaines cellules ont progressbars et de petites icônes. Est-il un moyen d'exporter ces images (ou au moins leurs titres) au format PDF? Trouvé quelques hacks sur cette page, mais tous ont été retraités TableTools.
Vérifié https://datatables.net/reference/button/pdf et https://datatables.net/reference/api/buttons.exportData%28%29, mais ne pouvait pas trouver une méthode pour atteindre cet objectif. Testé en ajoutant ce code:
stripHtml: false
mais tout code HTML (comme img src=...) a été inclus dans le fichier PDF au lieu d'images.
Si l'exportation d'images n'est pas possible, est-il un moyen d'exporter au moins d'alat ou d'attribut title de chaque image? Qui serait assez.
OriginalL'auteur Mindaugas Li | 2016-01-29
Vous devez vous connecter pour publier un commentaire.
Je suppose que vous êtes en utilisant pdfHtml5. dataTables est à l'aide de pdfmake pour l'exportation de fichiers pdf. Lorsque pdfmake est utilisée à partir d'un navigateur, il a besoin d'images pour être défini comme encodées en base64 dataurls.
Exemple : Vous avez rendu une
<img src="myglyph.png">
dans la première colonne de certaines lignes - ces glyphes doivent être inclus dans le fichier PDF. D'abord créer unImage
de référence pour les glyphes :Dans votre
customize
fonction, vous devez maintenant1) construire un dictionnaire avec toutes les images qui doivent être inclus dans le fichier PDF
2) remplacer
text
nœuds avecimage
nœuds d'images de référenceVoici un exemple de
getBase64Image
fonctionSi vous voulez juste pour montrer la
title
des images dans le PDF ou de toute autre manière de vouloir manipuler le contenu du texte du document PDF - alors c'est un peu plus facile. Le contenu de chaque colonne, dans chaque ligne peut être mis en forme par le biais de laexportOptions.format.body
rappel :La raison
format.body
ne peuvent pas être utilisés avec des images, c'est que n'est laisser nous passer des données à latext
nœud de la partie du document PDF.Voir aussi
if (doc.content[1].table.body[i][0].text == '<img src="myglyph.png">...
pour chaque image? Le problème est que je ne sais pas à l'avance ce que les images seront inclus dans le tableau. L'application où le code utilisé est un certain type de calculatrice; par conséquent, le nombre d'images et les noms d'images dépendent de la finale des résultats de calcul.Oui! Faire ce test pour chaque
<img>
vous souhaitez remplacer, n'oubliez pastable.body[i][0]
est col0,table.body[i][1]
col 2 et ainsi de suite. Vous n'avez pas à créer un dictionnaire, il est presque le même glyphe / image n'est pas répété 1000 fois - vous pouvez utiliser le dataUrl directement ->doc.content[1].table.body[i][0].image = getBase64Image(myGlyph)
mais alors la taille du fichier PDF peut être augmenté de façon spectaculaire.pouvez-vous m'aider dans ce problème ? stackoverflow.com/questions/44951044/...
OriginalL'auteur davidkonrad
Depuis pas de suggestions reçues, j'ai dû faire un hack pour obtenir le fichier PDF formaté de la façon dont je le veux.
Dans le cas où quelqu'un a le même problème, vous pouvez utiliser caché durée d'affichage de l'image alt/title près de l'image elle-même. Je suis sûr que c'est pas la meilleure pratique, mais il fera l'affaire. Ainsi, le code ressemblera à:
De cette façon, les tables de données montrent que l'image, tandis que le fichier PDF contient le texte dont vous avez besoin.
OriginalL'auteur Mindaugas Li
En plus de davidkonrad réponse. J'ai créé dynamiquement toutes les images en base64 et utilisés dans les tables de données pdfmake comme ceci:
vérifier mes mises à jour de réponse.
OriginalL'auteur Alex Lykesas