Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从网页打印旋转文本_Php_Javascript_Html_Firefox_Printing - Fatal编程技术网

Php 从网页打印旋转文本

Php 从网页打印旋转文本,php,javascript,html,firefox,printing,Php,Javascript,Html,Firefox,Printing,我运行一个web应用程序,为用户生成一些报告。对于其中一个报告,我需要打印旋转90度的文本。我已经尝试了很多方法,但还没有找到一种正确打印的方法。我可以用下面的css类在弹出窗口上显示90度旋转的文本,但当它像往常一样发送到打印机时,文本会旋转到正常形式并打印出来。我理解打印机无法按浏览器上显示的方式打印的原因,但有什么方法可以做到这一点吗?这个站点的脚本语言是PHP 更新:我可以打印静态页面上旋转的文本,但在弹出窗口上无法打印旋转的文本。实际上,现在我需要帮助打印CSS样式完整的页面 编辑:如

我运行一个web应用程序,为用户生成一些报告。对于其中一个报告,我需要打印旋转90度的文本。我已经尝试了很多方法,但还没有找到一种正确打印的方法。我可以用下面的css类在弹出窗口上显示90度旋转的文本,但当它像往常一样发送到打印机时,文本会旋转到正常形式并打印出来。我理解打印机无法按浏览器上显示的方式打印的原因,但有什么方法可以做到这一点吗?这个站点的脚本语言是PHP

更新:我可以打印静态页面上旋转的文本,但在弹出窗口上无法打印旋转的文本。实际上,现在我需要帮助打印CSS样式完整的页面

编辑:如果我只能在客户端使用Mozilla Firefox的情况下通过Firefox打印,这将非常有用

.rotate{
    -webkit-transform: rotate(-90deg);
    -moz-transform: rotate(-90deg);
    filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
    width:400;
    height:400;
}
这是弹出窗口显示文本的方式以及我希望打印文本的方式


非常感谢

您可以使用PHP生成旋转文本的图像,然后将其打印出来。 图像最酷的地方在于它根本不依赖于浏览器。有一些解决方案(本线程中已经提到)可以工作,但只在少数最新浏览器上测试。只要浏览器可以打印图像,这个解决方案就不关心浏览器,只关心支持PHP5的服务器

下面是您的PHP文件(image_gen.PHP)的外观:

<?php
// create a 100*100 image
$im = imagecreatetruecolor(100, 100);

// Write the text
$textcolor = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);
imagestringup($im, 3, 40, 80, $_GET['text'], $textcolor);
header('Content-type: image/png');
// Save the image
imagepng($im);
imagedestroy($im);
?>

此文件将文本作为get参数垂直打印,如下所示:

它返回垂直打印的文本图像。因此,您可以在要打印的主HTML文件中执行此操作:

<img src = "image_gen.php?text=Hello world">

请注意:示例代码中指定的值只是示例值、文本和颜色,请根据您的目的进行更改

这就是将图像插入HTML文件的方式。现在,当您打印该图像时,必须按原样打印图像,即使用垂直文本

在这里,我拍摄了一张打印出来的照片,向大家展示了它的实际工作原理,我知道文本并不清晰可见,但你可以看出它是垂直的


希望对…有帮助。

嗯。。。这对我有用。。。测试日期:

  • Firefox 23(Win7,OSX)
  • Chrome 28(Win7、OSX)
  • Safari 6(OSX)
诚然,我并没有打印它,而是将打印输出重定向到PDF(操作系统级功能;与Firefox无关)

请确保定义旋转的规则没有附加任何附件,请在
media=“print”
中禁用它们

我使用了以下示例文档,它是一个方便的数据URI:

data:text/html,%3Cp%20style=%22%20-webkit-transform:%20rotate%28-90deg%29;%20transform:%20rotate%28-90deg%29;%20border:%201px%20solid%20red;%20padding:%201ex;%20width:%20100px;%20%22%3Etest%20rotate%3C/p%3E

这应该行得通。 已在铬合金中测试了以下各项:

 <script type="text/javascript">
      var printWindow = window.open();
      printWindow.document.write('<style type="text/css">\
              .rotate{\
              -webkit-transform: rotate(-90deg);\
              -moz-transform: rotate(-90deg);\
              filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);\
              width:400;\
              height:400;\
          }\
    </style>\
    <div class="rotate">Rotated Content</div>');

    printWindow.print();
 </script>

var printWindow=window.open();
printWindow.document.write('\
.轮换{\
-webkit变换:旋转(-90度)\
-moz变换:旋转(-90度)\
过滤器:progid:DXImageTransform.Microsoft.BasicImage(旋转=3)\
宽度:400\
身高:400\
}\
\
旋转内容“);
printWindow.print();
(注意,我用反斜杠来逃避进入。)


如果您希望只使用一个不可见的打印框(用户单击一个按钮并显示一个打印对话框),请使用iframe。请注意Opera(可能在他们切换到WebKit工具之前)不喜欢这种情况。

如果文本在屏幕上显示时旋转,但在打印时不旋转,则可能是CSS仅应用于
屏幕,而不是
打印媒体

确保在
标记中将
媒体
属性值设置为
全部

<link rel="stylesheet" type="text/css" href="style.css" media="all">
您还可以有两个专用CSS文件,一个用于计算机屏幕,另一个用于打印,这样您可以进行更多控制:

<link rel="stylesheet" type="text/css" href="style.css" media="screen">
<link rel="stylesheet" type="text/css" href="style-print.css" media="print">

有关
媒体
属性的更多信息:


干杯

你是说弹出窗口吗?也就是说,你的意思是它不总是可见的吗?@MrLister感谢你注意到“rotaion”:)是的,它是一个弹出窗口,当点击此网页上的打印按钮时可见。是的,然后你需要使它在打印时始终可见,正如用户2641697所说。打印程序不知道按下按钮的情况。你试过了吗?@BenedictLewis:我对旋转文本显示没有问题,但问题是旋转打印。
<link rel="stylesheet" type="text/css" href="style.css" media="screen">
<link rel="stylesheet" type="text/css" href="style-print.css" media="print">