首页 > 前端开发 > 正文

web前端外部硬件接口有哪些?

2023-10-25 06:27:43 | 我爱编程网

web前端外部硬件接口有哪些?很多朋友对这方面很关心,我爱编程网整理了相关文章,供大家参考,一起来看一下吧!

本文目录一览:

web前端外部硬件接口有哪些?

web打印组件原理

由于浏览器的安全沙箱机制,Web应用不能直接访问打印机。而能直接控制打印机,实施精准打印,是很多SAAS软件,B/S架构软件,网站等应用的刚需。
我们调研了大量Web/网页类应用,发现针对Web打印解决方案,主要有如下几种技术实现方式:

1. 直接调用Javascript打印
通过调用浏览器window对象内置的print方法,弹出打印窗口,用户点击确认打印。

这是实现网页打印的最简单方法,但它的问题是不够灵活,不能精准控制要打印的页面内容,无法方便地对打印机进行设置,无法适应一些有复杂打印要求的业务场景。

2. 浏览器控件打印
通过开发浏览器插件的方式实现打印,例如IE浏览器的ActiveX控件。

由于此种方法通用性不强,不能适配市面上的主流浏览器,如chrome,edge等,已被淘汰。

3. 本地代理
还有一种方式是在本地安装代理程序,代理程序会启动一个服务(通常是http服务),来接受打印请求,实施打印。

网页通过跨域技术,提交打印任务并接收反馈。此种方式是一种优秀的解决方案,广泛应用于类似场景的Web应用中。

它的优势是适配性强,理论上适用于所有浏览器。此种方式需要用户下载安装代理程序。

设计思路
能加加网页打印插件的核心理念,就是为开发人员提供简单可靠的打印解决方案。

经过多方技术调研与分析,我们采用的是第三种方案:本地代理方式。

我们使用C++作为开发语言,软件运行速度快,稳定性好,精心设计的软件接口简单易用。

web前端外部硬件接口有哪些?我爱编程网

web前端外部硬件接口有哪些?

常见的电脑外部接口有:并行通信端口,即LPT1,俗称打印口,因为它常接打印机,它是同时传送八路信号,一次并行传送完整的一个字节信息。串行通信端口,即COM1、COM2,一般接鼠标,外置Modem或其他串口设备。它在一个方向上只能传送一路信号,一次只能传送一个二进制位,传送一个字节信息时,只能一位一位地依次传送。电源接口:包括AT电源和ATX电源接口。目前我们用的是ATX电源接口,它比原来的AT电源增加了许多扩展功能,另外还支持软关机。有了它,当用鼠标确认关机之后,电脑就已经可以自动关闭了,而不要用手去按POWER按钮。键盘接口:键盘就是通过键盘接口和主机相连的。USB端口,可用于U盘、数码相机、手机、还可以用于打印机。现在的打印机可以通过USB端口直接连接电脑,安装相应的打印机驱动程序即可使用。

web前端外部硬件接口有哪些?

QT如何实现调用打印机来打印html中的网页及文件


这篇文章介绍的内容是QT如何实现调用打印机来打印html中的网页及文件,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
工程里用到 QWebView,

所以要在.pro里加上 QT += webkit webkitwidgets
打印用到了 QPrinter,
所以要在.pro里加上 qtHaveModule(printsupport): QT += printsupport
直接附上源码吧,当然也是根据网上一些前辈的经验代码和实际使用情况改进而来:
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QTableWidget>
#include <QPainter>
#include <QtPrintSupport/QPrinter>
#include <QtPrintSupport/QPrintDialog>
#include <QFileInfo>
#include <windows.h>
#include <QFileDialog>
#include <QtPrintSupport/QPrintPreviewDialog>
#include <QtPrintSupport/QPageSetupDialog>
#include <fstream>
#include <iostream>
#include <sstream>
#include <QWebView>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();

private slots:
void on_pushButton_clicked();
void printPreview(QPrinter *printer);
private:
Ui::Widget *ui;
void doPrint();
void doPrintPreview();
void createPdf();
void setUpPage();
bool printFile(const QString & filePath);
};实现:
#include "Widget.h"
#include "ui_Widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this); //这里没用QFile文件读html文件,因为会使html网页中文成乱码
QString strHtmltext;
std::string bufStr;
std::ifstream readFile;
readFile.open("D:\\qqq.html");
if(readFile.is_open())
{
while(getline(readFile, bufStr))
{
strHtmltext += QString(bufStr.data());
}
readFile.close();
}
ui->webView->setHtml(strHtmltext);
}
Widget::~Widget()
{ delete ui;
}//点击这里触发打印动作!
void Widget::on_pushButton_clicked()
{
doPrint();
// doPrintPreview();
// printFile("D:/123.txt");
}
void Widget::doPrint()
{
// 创建打印机对象
QPrinter printer;
// 创建打印对话框
QString printerName = printer.printerName();
if( printerName.size() == 0)
return;
QPrintDialog dlg(&printer, this);#if 0
//如果编辑器中有选中区域,则打印选中区域
if (ui->textEdit->textCursor().hasSelection())
dlg.addEnabledOption(QAbstractPrintDialog::PrintSelection);
#endif
// 如果在对话框中按下了打印按钮,则执行打印操作
// if (dlg.exec() == QDialog::Accepted)
//这里使用默认打印机,不用每次选择打印机
{
// ui->textEdit->print(&printer);
ui->webView->print(&printer);

// print the existing document by absoult path
// printFile("D:/myRSM.doc");
}
}
// 打印预览void Widget::doPrintPreview()
{
QPrinter printer;
// 创建打印预览对话框
QPrintPreviewDialog preview(&printer, this);
// 当要生成预览页面时,发射paintRequested()信号
connect(&preview, SIGNAL(paintRequested(QPrinter*)),this,SLOT(printPreview(QPrinter*)));
preview.exec();
}
void Widget::printPreview(QPrinter *printer)
{
// ui->textEdit->print(printer);
ui->webView->print(printer);
}
// 生成PDF文件
void Widget::createPdf()
{
QString fileName = QFileDialog::getSaveFileName(this, tr("导出PDF文件"), QString(), "*.pdf");
if (!fileName.isEmpty()) {
// 如果文件后缀为空,则默认使用.pdf
if (QFileInfo(fileName).suffix().isEmpty())
fileName.append(".pdf");
QPrinter printer;
// 指定输出格式为pdf
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setOutputFileName(fileName);
// ui->textEdit->print(&printer);
ui->webView->print(&printer);
}
}
// 页面设置void Widget::setUpPage()
{
QPrinter printer;
QPageSetupDialog pageSetUpdlg(&printer, this);
if (pageSetUpdlg.exec() == QDialog::Accepted)
{
printer.setOrientation(QPrinter::Landscape);
}
else
{
printer.setOrientation(QPrinter::Portrait);
}
}
bool Widget::printFile(const QString & filePath)
{
// create a printer
QPrinter printer;
QString printerName = printer.printerName();
// no default printer or no file return false
if( printerName.size() == 0 || filePath.size() == 0)
return false;
QFileInfo fi(filePath);
if(!fi.exists())
return false;
int ret = 0;
//执行DOS命令调系统打印
ret = (int)ShellExecuteW(NULL,
QString("print").toStdWString().c_str(),
filePath.toStdWString().c_str(),
NULL,
NULL,
SW_HIDE);
// if return number bigger than 31 indicate succ
if (ret > SE_ERR_NOASSOC)
return true;
return false;
}

相关推荐:
HTML网页打印
使用JavaScript实现页面打印

以上就是我爱编程网为大家带来的web前端外部硬件接口有哪些?,希望能帮助到大家!
与“web前端外部硬件接口有哪些?”相关推荐
web前端开发需要哪些硬件 web前端外部硬件接口有哪些?
web前端开发需要哪些硬件 web前端外部硬件接口有哪些?

web前端开发需要哪些工具?Web前端是一个新兴职业,市场需求大,薪资待遇高,吸引了很多人加入学习。无论是初学小白亦或是自身前端开发人员,好用的软件工具可以帮助他们更好的工作。今天千锋武汉给大家分享一下Web前端开发用什么软件。1、SublimeTextSublimeText是一个代码编辑器也是HTML和散文先进的文本编辑器。漂亮的用户界面和非凡的功能,例如迷你地图,多选择

2023-09-30 05:05:43
php怎么能跨框架调接口 如何用php调用外部接口json数据
php怎么能跨框架调接口 如何用php调用外部接口json数据

php如何调用jsp接口php调用jsp接口的方法是使用curl_exec函数实现的。使用函数:file_get_contents($url);$URL=';param2=value2';//定义访问jsp的url//初始化curl$ch=curl_init();//设置curl返回结果curl_setopt($ch,CURLOPT_RETURNTRANSFER,

2023-10-06 17:20:21
web前端开发外部样式 web前端开发技术有哪些
web前端开发外部样式 web前端开发技术有哪些

web前端开发主要学哪些?web前端开发主要学习以下内容:HTML:学习HTML标记语言,它是用于构建网页内容的基本语言。CSS:学习CSS(层叠样式表),用于样式和布局网页元素。JavaScript:学习JavaScript语言,它是一种高级编程语言,用于创建交互式网页和动态Web应用程序。响应式Web设计:学习如何创建可以适应不同

2023-09-15 07:05:11
web前端开发需要哪些硬件 web前端开发需要哪些工具?
web前端开发需要哪些硬件 web前端开发需要哪些工具?

学习web开发,对电脑配置要求高吗?有没有推荐的机型我是过来人,我建议你采购一台性能强一些的笔记本或台式机,因为,你还没溶入到公司的开发环境中,这个你需要在自己的电脑上搭建环境的!相等于“独立开发人员”!并非是那种只负责某个模块,完事了就交给总工就完了,因为这样的都是公司给你搭建完环境的,你可以直接在云端操作或者远程操作就可以了,所以作为学习者,你肯定需要一台性能较强的电脑!

2023-09-30 05:05:23
php外包接活框架 php什么框架写接口最快
php外包接活框架 php什么框架写接口最快

PHP有哪些流行的框架PHP有哪些流行的框架?PHP有哪些流行的框架?PHP作为一种十分流行的编程语言,拥有大量的应用领域和开源程序库。其中,PHP框架可以有效提高对PHP语言的理解和运用水平。框架作为一种用于开发网络应用程序的基础架构,可以让开发者在不同项目的开发中提高效率。在PHP框架领域中,有许多众所周知、使用广泛的优秀框架,其中一些常见的PHP框架如下:1.Lara

2023-09-14 01:28:12
php硬件通讯框架 PHP有哪些流行的框架
php硬件通讯框架 PHP有哪些流行的框架

PHP最常用的框架是那几个·_php开发框架排行一直以来php框架被广泛利用,多半都是基于mvc架构模式的,还有基于事件驱动模式的,大致列举几个。ThinkPHP是一个性能卓越并且功能丰富的轻量级PHP开发框架,本身具有很多的原创特性,并且倡导大道至简,开发由我的开发理念,用最少的代码完成更多的功能,宗旨就是让WEB应用开发更简单、更快速。从1.*版本开始就放弃了对PHP4的兼容,因此整个

2023-09-11 11:24:16
php框架vue调用接口 前端vue与后端Thinkphp在服务器的部署
php框架vue调用接口 前端vue与后端Thinkphp在服务器的部署

用vue访问接口能正常返回数据,但是报500错误,用postman提交一样的参数请求也正常,这是为什么呢?我的也是用POSTman可以获取数据,我这边用axios去获取,加了application/x-www-form-urlencoded也是传不过来数据,一直报500,说是XMLhttp请求不对,困扰了好几天了,一直在想有没有人专写一个接口组件,可以接受各种类型的接口,每次还要去针对的写,

2023-09-22 06:35:18
前端web接口设计与开发 「产品前端架构」接口设计
前端web接口设计与开发 「产品前端架构」接口设计

「产品前端架构」接口设计用户使用Web客户端访问Web系统,系统在收到请求后执行操作(收集数据模型,选择数据经行组装),将结果返回给客户。其中包括的元素和关系如下图所示:约定每个规范也会对应若干规定若干规则约定来指导前后端工程师的具体实施。页面入口规范(范例)同步数据规范(范例)异步接口规范(范例)通过模拟数据的形成,将

2023-10-03 13:42:58