用qt做浏览器实现打印的功能

用qt做了个浏览器,想实现打印jsp页面。但是在实现时,将其做成图片打印有缺陷。后找到
void QWebEnginePage :: print(QPrinter * printer,FunctorOrLambda resultCallback)
void QWebEnginePage :: printToPdf(const QString&filePath,const QPageLayout&pageLayout = QPageLayout(QPageSize(QPageSize :: A4),QPageLayout :: Portrait,QMarginsF()))
这两个方法,但是不会用,输入各种参数后,报各种错。
print方法第二个参数不知道怎么输入,完全不会用。
printToPdf方法,第二个参数是要一个页面布局,但是后面页面大小的方法是什么意思,输入后是错的。报错是: 无法从“QPageSize *”转换为“const QPageLayout”。
我就不懂了,求大神看一下,要怎么弄,指点一下。小弟在此先谢过各位大神了。

4个回答

m_view->page()->print(printer, [this](bool found) {
if (!found) QMessageBox::information(m_view, QString(), QStringLiteral("No occurrences found"));
});好吧,不是我写错了,是这网站给我吧写的弄没了,现在加上转义

yxhlfx
双林子木 回复w_13141111: 把字符串转成QString对象传进去
一年多之前 回复
w_13141111
w_13141111 大神,我研究了你给我的代码,但是我按照代码加入到我的代码中后 最后一句WebPage->printToPdf("D:/123");编译后报错:“QWebEnginePage::printToPdf”: 对重载函数的调用不明确 实在找不到原因,麻烦大神指点。
一年多之前 回复
yxhlfx
双林子木 回复w_13141111: https://pastebin.com/YGBLGJsyhttps://pastebin.com/5FCdZqmV这就是printTopdf的完整用法,需要处理信号,你可以直接把代码中的Html2PdfConverter类用到你项目中
一年多之前 回复
w_13141111
w_13141111 大神 你给的链接404了。还有我是在http://doc.qt.io/qt-5/qwebenginepage.html#printToPdf里找到的,总共有四个参数。大神你劳烦你看看了。
一年多之前 回复
yxhlfx
双林子木 回复w_13141111: 。。。。哪有四个参数了?明明就两个参数,第二个参数还有一个默认值可以不用写第二个参数的。对于printToPdf这儿有一个使用示例:https://doc.qt.io/qt-5/qtwebengine-webenginewidgets-html2pdf-example.html(接照着上面写就行)
一年多之前 回复
w_13141111
w_13141111 那后面不是还有两个参数么?第一个参数是一个保存路径。第二个参数不用输入,自动默认为A4。第三个和第四个怎么搞呢?我按照文档上的解释输入值后还是不对。只输入第一个也不对。后面那两个完全不知道怎么用,劳烦大神费神指点一下。
一年多之前 回复
yxhlfx
双林子木 回复w_13141111: printToPdf更简单,一是调用的时候不带QPageLayout参数,这样它会默认以A4纸大小打印出来,二是自己通过它定义的那种方式调用QPageLayout()函数构造一个自己的QPageLayout对象实体,参数改成A3,A5等等之类的
一年多之前 回复
w_13141111
w_13141111 大神 printToPdf是怎么用呢?我需要实现打印预览,然后保存就好。还望大神指点一下。
一年多之前 回复

NIU FGCH UIO 987Y9 O K I8 H9

print -----The resultCallback must take a boolean parameter. It will be called with a value of true if the subString was found; otherwise the callback value will be false.
用法实例:
m_view->page()->print(printer, this {
if (!found) QMessageBox::information(m_view, QString(), QStringLiteral("No occurrences found"));
});
printToPdf----This method issues an asynchronous request for printing the web page into a PDF and returns immediately. To be informed about the result of the request, connect to the signal pdfPrintingFinished()
第二个参数不填会以默认A4纸大小打印,打印成功后产生 pdfPrintingFinishe()信号。

w_13141111
w_13141111 谢谢大神的指点。我按照你实例,语法似乎有问题呢。还有printToPdf有实例么?我一直没找到实例呢。
一年多之前 回复

** QPrinter printerPixmap(QPrinter::HighResolution);

//自定义纸张大小,这里要打印的内容都在stackedWidget上

printerPixmap.setPageSize(QPrinter::Custom);

printerPixmap.setPaperSize(QSizeF(ui->stackedWidget->height(), ui->stackedWidget->width()), QPrinter::Point);

//设置纸张大小为A4,这里注释掉了,建议自定义纸张 ,否则保存的就会有很多空白

//printerPixmap.setPageSize(QPrinter::A4);

//横向打印

printerPixmap.setOrientation(QPrinter::Landscape);

//设置输出格式为pdf

printerPixmap.setOutputFormat(QPrinter::PdfFormat);

//设置输出路径

printerPixmap.setOutputFileName(fileName); **

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
QT实现浏览器功能
1 界面设计     <1>QWidget      <2>QAxWidget     <3>QPushButton     <4>QLineEdit    2 实现浏览器功能 ui->setupUi(this); HRESULT r = OleInitialize(0); if(r!=S_OK &&...
【用浏览器自带的API实现打印功能】
let outlet = $(".font-bold",parent.document).children(); layer.confirm('扣次成功,是否需要打印扣次明细?', { icon: 3, title: '提示', yes: function (index) { v...
test_explore QT实现浏览器功能
QT实现浏览器功能 主要应用axWidget类来实现 能实现上网功能
用qt编写打印功能
网上有很多程序,可以找到很多实现打印的功能。 我要说的是,为什么功能写完了,还是没办法打印?我已经连接了打印机,解决的办法是:确定你的电脑已经安装了打印机的驱动;第二点,你打印机配置完全正确。其实为了测试打印功能,可以安装adobe的虚拟打印机,这样,测试的时候可以不用浪费纸张了^ ^
怎样用QT实现打印功能?
如题,谁可以给我个例子来参考一下!rnrn怎样连接上打印机,实现打印功能!就像word的打印功能那样!rnrn我要的是中文,不是里面QPrinter类那个,那是英文的,如果要重写它要怎么写?rnrn或者可以调用系统的东西吗?我的是LINUX啊!
Qt实现 二维码打印功能
1,利用 qrencode 第三方库 生成二维码,并通过Qt printer调用打印机 打印条码 或者二维码。 2,经过和同事几天的研究,浪费了一筐 条码之后。终于实现了基本功能,一些关键细节分享出来。 (1),打印机设置,颜色模式,纸张单位,大小,分辨率,边距,水平还是垂直。 此处 分辨率为 打印机固有属性,可通过windows驱动查看。 mPrinter->setCo...
Qt 打印预览以及打印功能的实现
一、要实现打印功能,首先要在pro文件中加上 QT += printsupport 并且需要重新qmake 二、Qt提供了QPrintPreviewDIalog 类,所以打印功能可以直接通过此对话框实现 三、要唤出 QPrintPreviewDialog 对话框,需要使用  connect(&previewDialog,SIGNAL(paintRequested(QPrinter*)),t
用com实现浏览器功能
代码如下:rnint CTestScrollEventView::OnCreate(LPCREATESTRUCT lpCreateStruct) rnrn if (CFormView::OnCreate(lpCreateStruct) == -1)rn return -1;rn rn // TODO: Add your specialized creation code herern ////////////////////////////////////////////////////rn RECT rectClient;rn GetClientRect(&rectClient); rn ///创建控件rn if (! m_wndBrowser.CreateControl(CLSID_WebBrowser, NULL, WS_VISIBLE | WS_CHILD,rectClient, this, AFX_IDW_PANE_FIRST))rn rn DestroyWindow();rn return FALSE;rn rn ///得到指针rn LPUNKNOWN lpUnk = m_wndBrowser.GetControlUnknown();rn HRESULT hr = lpUnk->QueryInterface(IID_IWebBrowser2, (void**) &m_pBrowser);rn if (! SUCCEEDED(hr))rn rn m_pBrowser = NULL;rn m_wndBrowser.DestroyWindow();rn DestroyWindow();rn return FALSE;rn rn return 0;rnrnrn请问:rn1.如何向代码中创建浏览器控件控件发送消息以控制滚动条?rn2.m_wndBrowser对象和浏览器控件是什么关系(对象和窗体?很不理解),浏览器控件的父窗口为什么是CTestScrollEventView?rn请各位高手解惑,谢谢!
qt打印功能
qt打印功能,通过Qt现有类,打印驱动,直接调用打印。
《Qt打印功能总结》
Qt提供了强大的打印功能,我们可以使用QPainter直接在一个QPrinter的实例中进行打印,对于文件的输出我们有两种方式可以选择,一种是利用QPrinterDialog来指定打印机及打印格式;第二种方法是利用代码设置QPrinter的输出格式,纸张尺寸,并利用QFileDIalog来选择输出路径。 第一种方法: QPrintDialog printDialog(printer, pare
Qt打印功能
文本打印 文本打印要调出文本打印框,这时要使用QPrintDialog QPrintDialog要将QPrinter类的一个对象作为参数,打印文本时调用print函数也要将QPrinter类的对象作为参数,所以要先声明一个QPrinter对象
浏览器打印功能
请问怎么将safari浏览器中打印快捷键阻止掉,自己试了好多方法都不行!还有就是将浏览器自带的打印方法全部阻止了,如果阻止不了可以直接打印空白页面!求解
怎么用QT做天气预报的功能
如题,我想在我的QT界面上镶嵌一个天气预报,
Qt实现保存、浏览、预览、打印功能
        Qt提供了以文本、图片、HTML等方式来实现对文档的操作,主要用到了QPrinter类和QPainter类,用到了QFileDialog文件窗口、QPrintPreviewDialog预览窗口类和QPrintDialog打印窗口类,Qt5也提供了QPdfWriter类来实现对pdf的操作,这里并不包括打开pdf文件,Qt没有提供任何方法来直接像文件浏览器一样打开pdf文件,可以用第...
Qt调用打印机,实现打印功能。
各位,请问谁有Qt调用API端口,让打印机进行打印的源码啊?我想有能够成功的源码。rn谢谢
如何实现浏览器打印预览功能
我是指一部分,比如网页上的报表,定单什么的,方法不限制,无论用什么,急啊!。。。。。。。。。。rn
用WebBrowser做浏览器如何实现“信息栏”功能呢
ie浏览器在访问一些需要下载activex的页面时都会在地址栏下面出现一个黄色的信息栏,提示用户“此站需要下载activex控件” 请问高手用WebBrowser做浏览器如何实现“信息栏”功能呢
关于qt做浏览器的问题
现在想用qt webkit做个简易的浏览器,用load(QUrl(url))可以打开网页,但怎么在已打开的网页上,再打开网页呢?比如我首先利用load(QUrl(url))进入百度,然后在百度上单击要找的网址进去下一级网站?rn 我有个简单的想法,就是不知道怎样实现!就是怎样能获得鼠标单击的那个网址?
用qt实现的一个地理数据浏览器
实现地理数据浏览器的核心内容应该是坐标系的转换。 我们首先是有一个地理数据的坐标系,比较出名的是WGS84坐标系。 然后是有一个视口坐标系,我所谓的视口坐标系指的是窗口的坐标原点和显示范围。 如何建立地理坐标系和视口坐标系的转换呢? (1)确定地理数据的范围,如果只是2D的话,就只有经度和纬度的范围,此范围是在读入数据的时候来确定的。 (2)确定视口的范围,我的显示范围是
QT实现浏览器+百度地图
QT实现浏览器+百度地图 压缩包中包括来百度地图API源码BaiduMap.html
Qt实现浏览器
看到很多人在查找使用Qt如何能做出浏览器的效果,网上却没有这样的例子,闲聊无事做了一个简单的demo ,实现了浏览,拖拽创建新窗口,拖拽停靠等功能(后两个功能我限制了只有多余一个标签时才可拖拽可自行根据需求修改),样式等没有做处理可自行qss处理,这只是个思路,可在基础上扩展, Qt版本是5.1, 显示网页使用的是QWebView,QWebPage,如果是5.4以上版本可以使用QWebEngineView和QWebEnginePage,后者使用谷歌内核对html5支持比前者优秀,但是目前尚不太稳定。 直接上代码
用Qt自带的打印功能QPrinter类实现打印功能出现乱码问题
我调用Qt自带的QPrinter类实现打印功能,现在的问题就是连接打印机以后打印出来的内容出现一部分乱码问题,但是通过打印预览在电脑上显示的又是正常的,不知道这是什么原因,有大神知道吗
调用浏览器打印按钮,实现打印页面功能
调用浏览器打印按钮,实现打印页面功能,可以实现二次开发
QT中QPrinter打印功能
这两天处理了一下QT程序连接网络打印机执行打印的功能 描述:QT程序运行在Linux、Windows平台,软件运行过程中可根据用户的需要生成一系列的报表,现在需要将这些数据自动布局成报表的格式,并实现一键打印功能,如下:点击打印报表即可跳转到打印预览界面,并将当前界面的信息进行布局打印 在windows下QPrinter使用系统的打印驱动程序,能够很方便的使用打印功能 在Linux下,先...
PDF调用浏览器打印功能
本套课程将延续SAP FIORI2.0视频课程,进一步讲解SAPUI5功能开发,本视频主要讲解SAPUI5 PDF Viewer的几种实现方式,嵌入式,PDF.js实现,以及URLHelper打开,了解SAPUI5如何引入第三方框架(比如PDF.js),属性的应用,PDF打印功能,本套可能提供源码下载,让大家上手。
调用浏览器中的打印功能
调用浏览器页面打印,js代码实现功能,多种实现方法!
JavaScript调用浏览器打印功能
在今天的任务做到了一个打印功能,百度一下得到了解决,没有什么难度,写为博客记录一下。具体调试以后遇到再改变。<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>局部打印案例</title> <script type="t
如何调用浏览器打印功能?
众位高手:rn 大家好!rn rn 我想在一个页面中打印另外页面内容, 请问ASP.NET中该怎么实现?
打印功能(JS 调用浏览器)
1.调用浏览器,完成打印功能(IE,Google都支持【当前时间截点】) 打印当前页面,可以运用css做排版处理,隐藏一些不需要出现的东西   /*打印   */ function printDiv(value) {               window.print(); } html 类属性 class=“Noprn”  隐藏不想打印的内容  @media print 打印cs...
Java调用浏览器打印功能
import java.applet.Applet; import java.applet.AppletContext;import java.awt.Desktop;import java.io.IOException;import java.net.MalformedURLException;import java.net.URI;import java.net.URISynt...
用QT做的信箱
小弟最近在用QT做一个收发信息的信箱,需要再另外一台主机上运行测试程序进行测试发短信的功能,现状况如下:rn 我在主机A上运行发短信的程序,电话簿里面有两个人(分别有电话号码跟名字),主机B运行接受程序(可以同时运行多个接收程序)。我在发短信的时候先指定接收人,因为程序使用socket的 TCP编写,所以无论选择谁,都会发送到主机B上,那么如何让主机B上的一个接受程序收到,而另一个接受程序收不到呢?就相当于指定的人能收到,而另一个收不到。
java做的浏览器,具有浏览器的一般功能
java做的浏览器,有浏览器的一般功能,例如,前进,后退
用C#做的浏览器
用C#做的浏览器,比一般的浏览器更好用
用C++Builder做的浏览器
自制的超简单浏览器,由于是菜鸟,希望大神轻喷
用 QT实现拖放(drag-drop)功能
QT的 qdrag 和 qdrop功能在qt的"Puzzle"示例中有介绍。但是那个介绍是以QListWidget为基础的。本文以QWidget为基础,介绍如何实现拖放。拖放可以用QString作为信息载体,也可以使用html等类型。本文采用QByteArray。QByteArray允许程序员使用自定义的类型来作为信息载体。本文定义的类型是ST_INFO。 头文件: #ifndef MAINW
用Qt实现屏幕截取功能
vc学习,模仿QQ截屏工具,用Qt实现简单的截屏功能
请问用Qt如何实现这样的功能?
对话框里有左右两部分。左边是树形控件,右边是一些选项。左右之间的边界可以用鼠标来调整(也就是说可以用鼠标使得左边宽些,右边窄些)。点击左边控件的一个节点后,右边的内容会改变。rnrn 请问如何实现?
用JS实现不同浏览器的图片预览功能
String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>       ">          My JSP 'index.jsp'
用WebVie实现简单的浏览器功能
WebView简单的来说就是把Web页面嵌入到我们的手机屏幕中。 现在来实现一下 。 首先还是看下布局文件: xml version="1.0" encoding="utf-8"?> xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical"
用VC_6_0实现图像浏览器功能
用VC_6_0实现图像浏览器功能 用VC_6_0实现图像浏览器功能
相关热词 c# 去空格去转义符 c#用户登录窗体代码 c# 流 c# linux 可视化 c# mvc 返回图片 c# 像素空间 c# 日期 最后一天 c#字典序排序 c# 截屏取色 c#中的哪些属于托管机制