【发布时间】:2012-01-18 11:58:48
【问题描述】:
我的代码通过将 QGraphicsScene 内容渲染到正确初始化的 QPrinter 上来生成 pdf。 在处理应用程序时,可以编辑此类文本,将其复制到剪贴板等。如何从 QGraphicsScene 生成 pdf,我的文本字符串也可以在其中复制,或者这是不可能的,我需要为此类任务创建 QTextDocument?
QGraphicsTextItem* textItem = new QGraphicsTextItem ( text );
textItem->setPlainText ( text );
textItem->setTextInteractionFlags ( Qt::TextEditorInteraction );
textItem->setFlags( QGraphicsItem::ItemIsSelectable | textItem->flags() );
scene->addItem( textItem );
QPrinter pdfPrinter;
pdfPrinter.setOutputFormat( QPrinter::PdfFormat );
pdfPrinter.setPaperSize( QSize(scene->width(), scene->height()), QPrinter::Point );
pdfPrinter.setFullPage(true);
pdfPrinter.setOutputFileName( path );
QPainter pdfPainter;
pdfPainter.begin( &pdfPrinter);
scene->render( &pdfPainter );
pdfPainter.end();
【问题讨论】:
-
Qt spec 将“可搜索”文本描述为其输出。这意味着正在存储基本字符。据我所知,是否可以选择文本更多的是PDF 阅读器的功能,而不是作者。
-
尝试了几个阅读器,包括 Mac OS X Preview、Adobe Acrobat X。在预览中文本字符串是可选的,但剪贴板在复制时只得到空格符号。在 Acrobat 中,文本字符串根本无法选择。
-
您的代码在 PDF 文件中生成可选文本。我刚试过!所以我不明白你的问题......
-
不幸的是,正如我之前写的,它只能在 mac 的预览中选择,不可复制。你用的是什么 pdf 查看器?
标签: qt printing pdf-generation