Imprimer partie spécifique de la page web
Je suis en train d'imprimer une partie de mon application.
L'application dispose d'une liste d'utilisateurs, l'affichage de leur nom et prénom. Lorsque je clique sur un utilisateur, j'obtiens une fenêtre avec des informations plus détaillées à leur sujet.
Comment pourrais-je aller sur l'impression que le popup pour un utilisateur, j'ai cliqué?
Le pop-up ressemble à ceci:
<div id="user<?=$user->id;?>" class="popup">
<div class="details">
User details...
</div>
<a href="#print">Print</a>
</div>
Le bouton d'impression ne fonctionne pas encore bien.
- double possible de Print <div id=printarea></div> seulement?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser JavaScript simple pour imprimer un spécifique div d'une page.
WinPrint.document.write(cssLinkTag)
.letf
->left
Vous devez ouvrir une nouvelle fenêtre(ou accédez à une nouvelle page) contenant uniquement les informations que vous souhaitez à l'utilisateur d'être en mesure d'imprimer
Javscript:
HTML:
Quelques notes ici: l'ancre ne doit PAS avoir d'espace entre elle et la div contenant le contenu à imprimer
J'ai fait cette extension jQuery pour imprimer le code HTML de l'élément sélectionné:
$('#div2').print();
De les voir en action ici.
Au lieu de tous les complexes de JavaScript, vous pouvez y arriver avec de simples
CSS
: il suffit d'utiliser deux fichiers CSS, un pour normal de votre écran, et un autre pour l'affichage de SEULEMENT le contenu que vous souhaitez imprimer. Dans ce dernier cas, cacher tout ce que vous ne voulez pas imprimer, afficher uniquement les pop up.N'oubliez pas de définir le
media
attribut de deux fichiers CSS:Suffit d'utiliser CSS pour cacher le contenu que vous ne souhaitez pas imprimer.
Lorsque l'utilisateur sélectionne l'impression de voir la page du " media="print" CSS pour obtenir des instructions sur la mise en page de la page.
La media="print" CSS a des instructions pour masquer le contenu que nous ne voulons pas imprimé.
Voici ma version améliorée que lorsque l'on veut charger des fichiers css ou il y a des références sur l'image dans la partie à imprimer.
Dans ces cas, nous devons attendre jusqu'à ce que les fichiers css ou les images sont entièrement chargé avant d'appeler la fonction print (). À cet effet, nous ferions mieux de déplacer le print() et close() des appels de fonction dans le code html. Voici l'exemple de code:
J'ai Eu une meilleure option,
D'abord séparer les imprimable et non imprimable article par le nom de classe ou l'id
JS:
HTML:
C'est tout
.printable
de classe par exemple. Cependant, cela ne plaisante pas avec le CSS (position fixe par exemple).Que la réponse ici: https://stackoverflow.com/a/1072151/421243, vous pouvez ajouter la section spécifique à un cadre masqué avec du Javascript, l'accent, et de l'imprimer.
Dans
printPageArea()
fonction, passer le spécifique div ID de laquelle vous souhaitez imprimer. J'ai trouvé ce code JavaScript à partir de codexworld.com.Le code complet et tutoriel peut être trouvé à partir d'ici - Comment Imprimer la Page de la Zone à l'aide de JavaScript.
J'ai écrit un petit JavaScript module appelé PrintElements dynamique de l'impression parties d'une page web.
Il fonctionne en parcourant nœud sélectionné éléments, et pour chaque nœud, elle parcourt l'arborescence DOM jusqu'à ce que l'élément de CORPS. À chaque niveau, y compris la première (qui est à être imprimé nœud de niveau), il s'attache un marqueur de classe (
pe-preserve-print
) du nœud actuel. Puis l'attache à un autre marqueur de classe (pe-no-print
) à tous les frères et sœurs du nœud actuel, mais seulement si il n'existe pas depe-preserve-print
classe sur eux. En tant que troisième acte, il s'attache également une autre classe préservé ancêtre élémentspe-preserve-ancestor
.Un mort-simple supplémentaire à l'impression css se cacher et de montrer leurs éléments respectifs. Certains des avantages de cette approche est que tous les styles soient conservées, il n'ouvre pas une nouvelle fenêtre, il n'est pas nécessaire de se déplacer autour d'un lot d'éléments du DOM, et en général, il est non-invasive, avec l'original de votre document.
Voir le démo, ou de lire un article pour plus de détails.