Table des matières
 第一页的内容 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 
第二页内容2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
第三页内容
回复讨论(解决方案)
WEB分页打印 
Maison développement back-end tutoriel php 关于WebBrowser.ExecWB分页打印的奇怪问题

关于WebBrowser.ExecWB分页打印的奇怪问题

Jun 23, 2016 pm 02:07 PM

如果代码是纯HTML的,如:

<html><title>JS 分页批量打印解决方案(只支持IE)</title><script language="javascript">          function printWithAlert() {        document.all.WebBrowser.ExecWB(6,1);     }      function printWithoutAlert() {	 PageSetup_Null();    document.all.WebBrowser.ExecWB(6,6);      }    function printSetup() {        document.all.WebBrowser.ExecWB(8,1);      }     function printPrieview() { document.all.WebBrowser.ExecWB(7,1);      }     function printImmediately() {       document.all.WebBrowser.ExecWB(6,6);       window.close();      }</script><OBJECT  id=WebBrowser  classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 style="display:none"></OBJECT></noscript><style media=print> .Noprint{display:none;} .PageNext{page-break-after: always;} </style><table align="center" class=NOPRINT>  <tr>    <td align="center"><BUTTON title=打印 onclick=printWithAlert()>打印</BUTTON>      <BUTTON title=直接打印 onclick=printWithoutAlert()>直接打印</BUTTON>      <input type=button value="打印设置" onClick="printSetup()" >      <button onclick ='printPrieview()' title='打印预览...' >打印预览</button></td>  </tr></table><div  class=NOPRINT> 以下为打印区:<br></div><hr size=1 noshadow color=black  class=NOPRINT ><table class="PageNext" >  <tr>    <td colspan=2><h1 id="nbsp-第一页的内容-nbsp-nbsp"> 第一页的内容 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 </h1>    </td>  </tr></table><hr size=1 noshadow color=black  class=NOPRINT ><div class="PageNext"><h1 id="第二页内容">第二页内容2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222</h1></div><hr size=1 noshadow color=black  class=NOPRINT ><h1 id="第三页内容">第三页内容</h1></html> 
Copier après la connexion


这样可以看到能够正确分页

但是如果内容是PHP动态生成的,打印预览是不会分页的,但是右键查看源代码,生成的HTML文件和手写的一样,但是就是不能分页,好奇怪的问题。
大家可以写段简单的PHP代码测试一下,让PHP循环生成上面的内容,即使看HTML代码完全一样,也不会分页,如果在代码中不能分页打印,那么就没有任何意义了,因为很多数据都是从数据库中读取然后由程序生成的~~~~~~~~~~~

希望知道如何解决这个问题的前辈指点,谢谢。晕了两天了,搞不懂怎么回事


回复讨论(解决方案)

因为只支持IE,所以测试的意义不大

主要是找的这个控件只支持IE,没办法啊,找不到别的打印控件

您有推荐的吗?支持分页、打印预览什么的。

或者你清楚这是怎么回事吗?程序生成的死活不分页,如果把程序的页面另存为html,然后打开也能正常分页,郁闷死了

做各TABLE 直接PRINT吧

做各TABLE 直接PRINT吧

那你说的就只能一个一个的打印了,如果从数据库读了100条数据,程序自动生成100个表格,如果能分页的话,会自动打印100页;
否则,只能一页一页的打印,打印100次~~~~~

可以试试这些 http://www.baidu.com/baidu?word=web%E9%A1%B5%E9%9D%A2%E6%89%93%E5%8D%B0%E6%8E%A7%E4%BB%B6&ie=utf-8

用其他控件不失为一个解决方法,但是出现这种情况到底是怎么回事呢?

非常奇怪的问题,希望大家研究一下

既然你坚持,我就陪你玩玩

测试了一下,并没有发现你说的现象

既然你坚持,我就陪你玩玩

测试了一下,并没有发现你说的现象

好负责的版主!
套马杆的汉子你威武雄壮!

测试了一下,发现问题根源了:
如果是php代码生成的:

<html><head><title>web打印</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><style type="text/css" media="print"> .noprint{display:none;} .pagenext{page-break-after:always;} </style><script language="javascript"> function printWithAlert() {        document.all.WebBrowser.ExecWB(6,1);     }      function printWithoutAlert() {	 PageSetup_Null();    document.all.WebBrowser.ExecWB(6,6);      }    function printSetup() {        document.all.WebBrowser.ExecWB(8,1);      }     function printPrieview() {	 //PageSetup_Null();    document.all.WebBrowser.ExecWB(7,1);      }     function printImmediately() {       document.all.WebBrowser.ExecWB(6,6);       window.close();      }</script></head><body><OBJECT id=WebBrowser  classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 style="display:none"></OBJECT><!--浮动控制层:数据筛选和打印--><div id="floatctl" class="noprint"><input type="button" value="打印预览" onclick="printPrieview();"/><input type="button" value="直接打印" onclick="window.print() ;" /></div><br /><br /><?phpfunction gentable($pagenum){	echo '<table width="860" border="1" cellpadding="0" cellspacing="0" style="page-break-after: always">';	echo '<tr><td align="center"><h1 id="WEB分页打印-nbsp">WEB分页打印 </h1></td></tr><tr><td>';	echo '<table width="100%" class="tab1"><tr><td>这是第'.$pagenum.'页</td></tr>';	echo '</table>';	echo '</td></tr></table>';}	for($i=0;$i<10;$i++)	{		gentable($i+1);	}?></body></html>
Copier après la connexion

确实没有问题,但是如果一个页面iframe src=这个页面,就不能正确分页:
<html><head><title>测试iframe分页</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><link href="images/style.css" type="text/css" rel="stylesheet"><style type="text/css" media="print"> .noprint{display:none;} .print{display:block;}.pagenext{page-break-after: always;} </style></head><body><!--这个test.php就是上面的代码--><iframe src="test.php" width="100%" height="100%"></iframe></body></html>
Copier après la connexion

如果这样,就不能正确分页了


这也算解决问题了,但是请问这是怎么回事呢?是控件的问题吗?

既然你坚持,我就陪你玩玩

测试了一下,并没有发现你说的现象

http://bbs.csdn.net/topics/390443315
这也是我的帖子,版主请回复一下,把分给你

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Apr 05, 2025 am 12:04 AM

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Décrivez les principes solides et comment ils s'appliquent au développement de PHP. Décrivez les principes solides et comment ils s'appliquent au développement de PHP. Apr 03, 2025 am 12:04 AM

L'application du principe solide dans le développement de PHP comprend: 1. Principe de responsabilité unique (SRP): Chaque classe n'est responsable d'une seule fonction. 2. Principe ouvert et ferme (OCP): les changements sont réalisés par extension plutôt que par modification. 3. Principe de substitution de Lisch (LSP): les sous-classes peuvent remplacer les classes de base sans affecter la précision du programme. 4. Principe d'isolement d'interface (ISP): utilisez des interfaces à grain fin pour éviter les dépendances et les méthodes inutilisées. 5. Principe d'inversion de dépendance (DIP): les modules élevés et de bas niveau reposent sur l'abstraction et sont mis en œuvre par injection de dépendance.

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Mar 31, 2025 pm 11:54 PM

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système. Chaque fois que le système redémarre, nous devons exécuter la commande suivante pour modifier les autorisations d'UnixSocket: sudo ...

Expliquez le concept de liaison statique tardive en PHP. Expliquez le concept de liaison statique tardive en PHP. Mar 21, 2025 pm 01:33 PM

L'article traite de la liaison statique tardive (LSB) dans PHP, introduite dans PHP 5.3, permettant une résolution d'exécution de la méthode statique nécessite un héritage plus flexible. Problème main: LSB vs polymorphisme traditionnel; Applications pratiques de LSB et perfo potentiel

Comment envoyer une demande post contenant des données JSON à l'aide de la bibliothèque Curl de PHP? Comment envoyer une demande post contenant des données JSON à l'aide de la bibliothèque Curl de PHP? Apr 01, 2025 pm 03:12 PM

Envoyant des données JSON à l'aide de la bibliothèque Curl de PHP dans le développement de PHP, il est souvent nécessaire d'interagir avec les API externes. L'une des façons courantes consiste à utiliser la bibliothèque Curl pour envoyer le post� ...

Caractéristiques de sécurité du cadre: protection contre les vulnérabilités. Caractéristiques de sécurité du cadre: protection contre les vulnérabilités. Mar 28, 2025 pm 05:11 PM

L'article traite des fonctionnalités de sécurité essentielles dans les cadres pour se protéger contre les vulnérabilités, notamment la validation des entrées, l'authentification et les mises à jour régulières.

Comment déboguer le mode CLI dans phpstorm? Comment déboguer le mode CLI dans phpstorm? Apr 01, 2025 pm 02:57 PM

Comment déboguer le mode CLI dans phpstorm? Lors du développement avec PHPStorm, nous devons parfois déboguer PHP en mode interface de ligne de commande (CLI) ...

See all articles