Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >和CSS到pdf文件

和CSS到pdf文件
EN

Stack Overflow用户
提问于 2016-09-28 21:21:14
回答 1查看 3.3K关注 0票数 3

我使用QTextDocument并使用setHtml添加html。然后,我使用QPrinter以A4 pdf格式打印QPrinter::PdfFormat,但是打印出来的pdf没有采用css样式表。我还试过QTextDocument::setDefaultHtmlsetResource

代码如下。如何以pdf格式获得CSS样式。我使用ubuntu和qmake编译。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const int highQualityDPI = 300;
QDir::setCurrent(QCoreApplication::applicationDirPath());

QFile  htmlFile ("myhtml.html");
if (!htmlFile.open(QIODevice::ReadOnly | QIODevice::Text)){
    return -1;
}

QString htmlContent;
QTextStream in(&htmlFile);
htmlContent=in.readAll();

QFile  cssFile ("style.css");
if (!cssFile.open(QIODevice::ReadOnly | QIODevice::Text)){
    return -1;
}
QString cssContent;
QTextStream cssIn(&cssFile);
cssContent = cssIn.readAll();

QTextDocument *document = new QTextDocument();
document->addResource( QTextDocument::StyleSheetResource, QUrl( "style.css" ), cssContent );
document->setHtml( htmlContent ); 

QPrinter printer(QPrinter::HighResolution);
printer.setPageSize(QPrinter::A4);
printer.setOutputFormat(QPrinter::PdfFormat);

printer.setOutputFileName("output.pdf");

document->print(&printer);
delete document;
return 0;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-29 00:52:38

那么使用QWebEngineView & QWebEnginePage呢?只需在WebView中加载HTML文件并调用printToPdf函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 const QString fileName = QFileDialog::getSaveFileName(0,
                                                tr("Save pdf"),
                                                getLastDirectory(),
                                                tr("PDF Files (*.pdf)"));
if (fileName.isEmpty()) {
    return;
}
ui->webView->page()->printToPdf(fileName);

与QWebKit一起使用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    // Set location of resulting PDF
    const QString fileName = QFileDialog::getSaveFileName(0,
                                                tr("Save pdf"),
                                                getLastDirectory(),
                                                tr("PDF Files (*.pdf)"));
    if (fileName.isEmpty()) {
       return;
    } 

    QPrinter printer(QPrinter::HighResolution);
    printer.setOutputFileName(fileName);

    // Create PDF
    ui->webview->print(&printer);

如何用css加载html文件?如果HTML将CSS文件正确链接在同一个文件夹中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
QFile  htmlFile ("myhtml.html");
ui->webView->load(QUrl::fromLocalFile(QFileInfo(htmlFile).absoluteFilePath()));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39761989

复制
相关文章
Java转换Word文件到PDF文件
使用Docx4j将Word文件转换为PDF文件: public static void convertDocxToPDF(String docxFilePath, String pdfPath) throws Exception { OutputStream os = null; try { // 加载文件 File docx = new File(docxFilePath); Inpu
用户1637609
2018/04/12
1.9K0
Java转换Word文件到PDF文件
linux xps文件,Master PDF:PDF和XPS文件编辑神器
假设您正在致力于Windows系统的替换,恰好又在为寻找一款可在优麒麟Ubuntu或其它Linux发行版具备PDF-XChange Viewer,Foxit Reader或Adobe Reader类似强大功能的PDF替代软件,那么本编很乐意向您推荐Master PDF编辑器,这是一款私有软件,其Linux版本可以作为个人工具免费使用,最新版本最低环境要求是Qt 5.4.1或以上版本。
全栈程序员站长
2022/08/19
3.2K0
linux xps文件,Master PDF:PDF和XPS文件编辑神器
Confluence 6 Office 和 PDF 文件
插入一个文件到页面中是能够让你将有用的文件,电子表格,幻灯片或者其他可用的文件在你小组中进行分享的好方法。
HoneyMoose
2019/08/05
8280
使用TCPDF撰写和生成PDF文件
某一个合同需要在线生成,其中一部分内容是固定的,而另一部分内容是需要添加和编辑的。
双面人
2019/08/16
3.3K0
python中解析和生成pdf文件
python中可以对pdf文件进行解析和生成,分别需要安装pdfminer/pdfminer3k和reportlab文件库。
py3study
2020/01/08
2.6K0
[Python]将MP3和PDF按名字分类归档到各自文件夹
原文链接:https://blog.csdn.net/humanking7/article/details/84663012
祥知道
2020/03/10
9080
PDF文件攻击
这次来说说一个关于由PDF文件的栈溢出而引发的远程任意代码执行的典型老版漏洞。这枚漏洞是在2010年被发布出来,距今已快10年之久,但是漏洞却很简单粗暴,有着打开PDF文件就立马中招的效果。
天钧
2020/03/12
2.5K0
网页中Office和pdf相关文件导出
最近被派去维护和开发一些做了一半、年久失修的项目。有一部分内容是关于word文件导出,顺带着把excel、pdf文件的导出也调研下吧,我想未来开发我应该会遇到的,遂做了下笔记分享给需要的人。
江涛学编程
2020/12/02
9K0
网页中Office和pdf相关文件导出
PDF文件怎么打开?电脑怎样修改PDF文件内容
PDF文件是一种值得信赖的办公文件格式,经常出现在我们的工作和生活当中,无论是在电脑上还是在手机上,它都不能直接修改,这点与word、txt文本格式有所不同,那么,接收到这种文件,在电脑上怎样打开呢?怎样打开PDF文件可以修改内容,这里有两个的方案可供选择。
用户6477319
2019/10/18
5.5K0
小技巧:多个pdf文件合并及pdf文件添加页码
扫描文件的时候每一页都是单独保存的,这个时候我想把他们合并成一个完整的pdf文件,借助Adobe Acrobat Pro DC 这个软件可以很方便的实现
用户7010445
2021/07/12
3.1K0
小技巧:多个pdf文件合并及pdf文件添加页码
引入js和css文件的总结
1.用script标签引入javascript时,浏览器对于javascript的加载某些是并行的,某些是串行的,如IE8,Chorme2和firefox3都是串行加载的。
全栈程序员站长
2022/07/15
8.1K0
spark上传文件和追加文件到hdfs
查看源码,删除代码就一个 copyFromLocalFile方法,为啥写这么复杂呢??
静谧星空TEL
2021/04/27
2.6K0
spark上传文件和追加文件到hdfs
PDF文件密码破解
今天在整理文档的时候发现,有几个随机数字命名的加密pdf文件,回想了一下相关情况,好像密码是6位以内的数字加字母。正好记录一下使用hashcat和john爆破PDF文件密码的用法。顺便学习记录一下hashcat和john的用法
Gcow安全团队
2020/09/14
4.3K0
PDF文件密码破解
5、webpack从0到1-处理css文件
讲下webpack如何处理css样式文件。 git仓库:webpack-demo 1、新建 进入项目中,在src目录下新建一个styles/header.css文件。 webpack-demo/chapter5 ... |- /src |- /assets |- content.js |- footer.js |- header.js |- index.js |- logo.js + |- header.css |- index.ht
Ewall
2020/03/20
7890
python 创建PDF文件
ubuntu可以直接 apt-get install python-reportlab
py3study
2020/01/08
1.6K0
Springboot输出PDF文件
有个人(死需求)跑过来跟你说,这些都给我输出成报告,pdf格式的,所以就有了下面这个,做一下笔记,以后有用直接过来拿。在网上找了一下,发现大家都是在用itext。iText是著名的开放项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。
用户3467126
2019/09/27
2.9K2
Springboot输出PDF文件
html展示pdf文件
      <iframe         title="resume"         style={{           display: 'block',           width,           height,           margin: '-2px 0 0 -1px',           border: 'none',           outline: 'none'         }}         allowFullScreen         src={'htt
biaoblog.cn 个人博客
2022/08/11
2.8K0
html展示pdf文件
markdown转为pdf文件
把.md格式转为.pdf格式,并批量处理,最后将多个pdf文件合并为一个pdf并以文件名作为书签名
hankleo
2020/09/17
9830
python读取pdf文件
使用python读取pdf文件的内容 读取第1页的内容: import PyPDF2 pdfFileObj = open('a.pdf', 'rb') pdfReader = PyPDF2.PdfFileReader(pdfFileObj) print(pdfReader.numPages) pageObj = pdfReader.getPage(0) print(pageObj.extractText()) 输出该pdf文件共有多少页,并输出该pdf的第1页的内容。 读取第1-100页的内容: impo
C_H
2022/11/15
1.3K0
点击加载更多

相似问题

文档转换软件: XHTML和CSS到PDF

42

JavaScript中的HTML和CSS到PDF格式

26

从外部html文件和css生成pdf

111

如何导入css到pdf,cordova-pdf-generator?

117

Django HTML & CSS呈现到pdf

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文