一个有趣的用例已经出现在我们面前,我们要求当我们打印一个网站时,打印的副本将有一个页面页眉和页脚,页脚内部有页码.
任何人都知道如何实现这一目标?
注意:浏览器版本可以是最新的,客户端是其他Web开发人员.
我的知识库是,我可以在PHP中解决.我从未使用过C,C++,C#或任何编译器.
我从使用php 5.3的XAMPP 1.7.3升级到1.8.1,其中包括:Apache 2.4.3 MySQL 5.5.27 PHP 5.4.7
它安装在Windows 7 Pro,Windows XP Pro和Windows Server 2008 r2上.但我正试图让它在目前的Windows 7上工作.
我升级是因为出于安全原因我需要更新版本的Apache和MySQL.我没有降级选项.
我使用php_printer.dll将原始数据打印到打印机:
printer_set_option($handle, PRINTER_MODE, "RAW");
Run Code Online (Sandbox Code Playgroud)
我的代码在PHP 5.3中运行良好,但在PHP 5.4中打破了.
收到错误后:"致命错误:在〜"中调用未定义的函数printer_open().我检查了php_error_log并收到了以下信息.
PHP Warning: PHP Startup: printer: Unable to initialize module
Module compiled with module API=20090626
PHP compiled with module API=20100525
These options need to match
Run Code Online (Sandbox Code Playgroud)
我已经花了好几个小时试图找到PHP 5.4.7的预编译php_printer.dll无济于事.我得出结论,我将不得不从PECL中的源文件中编译它.pecl.php.net/package/printer
在我做任何互联网用户应该做的事之前,从来没有这样做过.我用Google搜索并在此处找到了一些信息:https: //wiki.php.net/internals/windows/stepbystepbuild
它花了我一整天,但PHP构建工作.但后来尝试创建php_printer.dll首先我试过:
svn co http://svn.php.net/repository/pecl/printer/trunk pecl/printer
Run Code Online (Sandbox Code Playgroud)
但它说:'svn'不被认为是内部或外部命令,可操作程序或批处理文件.
所以我只是自己从svn.php.net/repository/pecl/printer/trunk/下载文件 并将它们放入: C:\ php-sdk\php54dev\vc9\x86\php5.4-201303311430\ext\printer
我确保从以下网站下载这些库: windows.php.net/downloads/php-sdk/deps/vc9/x86/ 也只是: deps-5.4-vc9-x86.7z
然而,我尝试了另一个; 每当我尝试nmake时收到以下内容:
c:\php-sdk\php54dev\vc9\x86\php5.4-201303311430>nmake
Microsoft (R) Program Maintenance …Run Code Online (Sandbox Code Playgroud) 所以我知道这个选项:带有CSS/HTML的页码.
到目前为止,似乎是将页码添加到页面的打印版本的最佳方式,但我无法在任何地方获得任何变化.我在Chrome,Firefox和IE9上试过我的Windows 7机器.根据一些链接,看起来像Prince XML这样的更专有的软件可能会支持这种链接.Web浏览器是否支持打印版本?
我试过制作一个空白的html文件,并在头部添加两个样式标签:
@page {
@bottom-right {
content: counter(page) " of " counter(pages);
}
}
Run Code Online (Sandbox Code Playgroud)
我也简化了它,甚至只是content: "TEXT";用来看看我是否可以得到一些东西出现.这是否支持任何地方?通过'this',我特别指的是@page和@bottom-right标签,因为我已经有很多次内容工作了.
请考虑使用此Python代码打印逗号分隔值列表
for element in list:
print element + ",",
Run Code Online (Sandbox Code Playgroud)
打印的首选方法是什么,如果element是列表中的最后一个元素,则不会出现逗号.
前
a = [1, 2, 3]
for element in a
print str(element) +",",
output
1,2,3,
desired
1,2,3
Run Code Online (Sandbox Code Playgroud) 我有一个蓝牙手持式打印机,我能够使用Mac上的SPP连接进行通信(使用Coolterm).当我试图从Android(使用平台7)做同样的事情时,我遇到了多个问题:
打印机似乎不支持/需要PIN身份验证.当从OSX连接时,我刚刚选择了"不要使用引脚"并且它已配对的选项.在Android中,当我使用时device.createRfcommSocketToServiceRecord(),它总是最终要求我输入PIN /密钥(我没有/不需要).我用反射技巧解决了这个问题:
Method m = device.getClass().getMethod("createInsecureRfcommSocket", new Class[] {int.class});
BluetoothSocket connection = (BluetoothSocket) m.invoke(device, 1);
Run Code Online (Sandbox Code Playgroud)
我不确定这是否真的有效,但打印机上闪烁的LED指示灯停止闪烁,这让我相信它确实如此.
一旦我有套接字,我尝试使用以下方法将字节数据写入流:
byte[] buffer = new byte[3];
buffer[0] = (byte) 0x8A;
buffer[1] = (byte) 0xC1;
buffer[2] = (byte) 0x04;
outStream.write(buffer);
int response = inStream.read();
mySocket.close();
Run Code Online (Sandbox Code Playgroud)
从OSX上的Coolterm发送相同的三字节序列从打印机打印了一个测试页.但是,这似乎使线程挂在Android上(读取).
我在这里错过了什么吗?
编辑:这似乎只有当我将通道设置为1时才有效.这意味着我在这里做点什么.
我知道输入元素是通过应用readonly布尔属性而成为只读的,并且是一个不受CSS影响的属性.
另一方面,我的场景似乎非常适合CSS,所以我希望有一些CSS技巧让我这样做.我的表单上有一个可打印的版本超链接.单击它将显示文档的...可打印版本.它主要是CSS的东西,我的print.css看起来像这样:
html.print {
width: 8.57in;
}
.print body {
font: 9pt/1.5 Arial, sans-serif;
margin: 0 1in;
overflow: auto;
}
.print #header, .print #footer {
display: none;
}
.print .content {
background-color: white;
overflow: auto;
}
.print .fieldset > div.legend:first-child {
background: white;
}
.print ::-webkit-input-placeholder {
/* WebKit browsers */
color: transparent;
}
.print :-moz-placeholder {
/* Mozilla Firefox 4 to 18 */
color: transparent;
}
.print ::-moz-placeholder {
/* Mozilla Firefox 19+ */
color: …Run Code Online (Sandbox Code Playgroud) 我一直在寻找关于stackoverflow的很多答案,半封面我想知道的,但没有发现任何对我有用的东西.
我知道A4的打印页面大约是550像素,因此bootstrap将使用通常用于移动设备的样式和布局.
当我使用Ctrl + P作为我的网页时,可打印页面看起来就像我的页面的移动版本.但是如何让它看起来像桌面版?(媒体> 1024 px)有办法做到这一点吗?
我知道我可以专门为打印更改css.但是如何使用bootstrap 3网格系统来解决这个问题呢?我的div上的宽度基于我为col-xs添加的内容,但我希望print使用col-md的布局(宽度)
编辑:在我用了几个小时之后,我意识到它可能比我最初的预期更复杂.只是改变宽度并不能解决它.我的许多div都有语法
<div class="md-right sm-right xs-down col-md-1 col-sm-2 box"></div>
Run Code Online (Sandbox Code Playgroud)
要么
<div class="col-md-4 col-sm-6 col-xs-12"></div>
Run Code Online (Sandbox Code Playgroud)
对于小型设备,该页面在XS中看起来很不错,但在XS中打印使得许多元素看起来很大.所以问题仍然存在.有没有办法让打印页面看起来与中型或大型设备的布局相同?或者我是否必须在不使用引导网格系统的情况下制作打印css并在pt中为所有元素添加静态宽度来实现此目的?
提前致谢
所以语法似乎已经从我在Python 2中学到的东西改变了......这就是我到目前为止所拥有的
for key in word:
i = 1
if i < 6:
print ( "%s. %s appears %s times.") % (str(i), key, str(wordBank[key]))
Run Code Online (Sandbox Code Playgroud)
第一个值是int,第二个是字符串,最后一个是int.
如何更改我的print语句以便正确打印变量?
我正在WPF中构建一个演示应用程序,这对我来说是新的.我目前正在FlowDocument中显示文本,需要打印它.
我正在使用的代码如下所示:
PrintDialog pd = new PrintDialog();
fd.PageHeight = pd.PrintableAreaHeight;
fd.PageWidth = pd.PrintableAreaWidth;
fd.PagePadding = new Thickness(50);
fd.ColumnGap = 0;
fd.ColumnWidth = pd.PrintableAreaWidth;
IDocumentPaginatorSource dps = fd;
pd.PrintDocument(dps.DocumentPaginator, "flow doc");
Run Code Online (Sandbox Code Playgroud)
fd是我的FlowDocument,现在我使用默认打印机而不是允许用户指定打印选项.它工作正常,除了在文档打印后,屏幕上显示的FlowDocument已更改为使用我指定的设置进行打印.
我可以通过在打印后手动重置所有内容来解决这个问题,但这是最好的方法吗?我打印之前是否应该复制FlowDocument?或者我应该考虑另一种方法吗?
int main() {
int my array[3][3] =
10, 23, 42,
1, 654, 0,
40652, 22, 0
};
printf("%d\n", my_array[3][3]);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我无法打印阵列..任何想法为什么?我是一名初学者,所以任何建议的话都会受到赞赏.