• 6158阅读
  • 9回复

[提问]关于将数据输出为PDF表格 [复制链接]

上一主题 下一主题
离线peteryouming
 

只看楼主 倒序阅读 楼主  发表于: 2013-05-19
我遇到个问题:就是如何将数据输出为PDF表格,请哪位高手指教。
图片

我自己做了TXT文件输出,但是项目要求为PDF文件输出,即要做个PDF表格输出的菜单项。
希望输出的文件格式是PDF,另外以表格的形式,因为可能输出数据还包括图片,不知道该如何做,附件是代码,哪位高手可指点一下,
谢谢!

ankontracer.zip (24 K) 下载次数:1
附件: ankontracer.zip (24 K) 下载次数:0
离线soeasy

只看该作者 1楼 发表于: 2013-05-19
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);

    }
离线realfan

只看该作者 2楼 发表于: 2013-05-20
将要输出的内容做成html,再用QPrinter生成pdf
离线kimtaikee

只看该作者 3楼 发表于: 2013-05-20
回 2楼(realfan) 的帖子
昨天我也想这么回答,但是我没有动手。

离线peteryouming

只看该作者 4楼 发表于: 2013-05-20
引用第2楼realfan于2013-05-20 10:34发表的  :
将要输出的内容做成html,再用QPrinter生成pdf


能帮我在源码上做个例子吗?我实在不知道HTML 如何写,以及如何跟QPrinter连接。
谢谢!
离线peteryouming

只看该作者 5楼 发表于: 2013-05-20
引用第1楼soeasy于2013-05-19 17:39发表的  :
QString fileName = QFileDialog::getSaveFileName(this, tr("导出PDF文件"),
                                                    QString(), "*.pdf");
    if (!fileName.isEmpty()) {
.......

你好,我的数据都放在QList<QString> personalinfo里,所以 has no member named print,请教下该如何处理?
谢谢!


离线realfan

只看该作者 6楼 发表于: 2013-05-21
  1. QPrinter p;
  2. QTextDocument doc;
  3. doc.setHtml(str); //str就是html的内容,可以从文件中读入,也可以代码拼出html内容
  4. //doc.loadResource(QTextDocument::HtmlResource, ":/res/aaa.html");//也可以放在资源文件中
  5. p.setPageSize(QPrinter::A4);
  6. p.setOutputFormat(QPrinter::PdfFormat);
  7. p.setOutputFileName("c:/outputpdf/1.pdf");  //输出到c:/outputpdf/1.pdf
  8. doc.print(& p);

html的写法,到网上搜一下相关文章。或者随便保存一个网页,用文本方式打开,参考一下。
离线realfan

只看该作者 7楼 发表于: 2013-05-21
回 3楼(kimtaikee) 的帖子
我写过一个程序,用到html打印,但还没试过里面加图片的打印。
离线toby520

只看该作者 8楼 发表于: 2013-05-21
楼上很强大,学习啦 QPrinter 用的很少
QtQML多多指教开发社区 http://qtclub.heilqt.com
将QtCoding进行到底
关注移动互联网,关注金融
开发跨平台客户端,服务于金融行业
专业定制界面
群号:312125701   373955953(qml控件定做)
离线peteryouming

只看该作者 9楼 发表于: 2013-05-21
引用第6楼realfan于2013-05-21 08:35发表的  :
[code]QPrinter p;
QTextDocument doc;
doc.setHtml(str); //str就是html的内容,可以从文件中读入,也可以代码拼出html内容
//doc.loadResource(QTextDocument::HtmlResource, ":/res/aaa.html");//也可以放在资源文件中
p.setPageSize(QPrinter::A4);
.......

谢谢realfan
快速回复
限100 字节
 
上一个 下一个