Il mio codice produce pdf mostrando il contenuto QGraphicsScene su QPrinter correttamente inizializzato. Mentre si tratta di un'applicazione tale testo può essere modificato, copiato negli appunti, ecc. Come posso produrre pdf da QGraphicsScene, dove è possibile copiare anche la mia stringa di testo, oppure è impossibile e ho bisogno di creare QTextDocument per tali compiti?Come produrre file PDF da QGraphicsScene con testo copiabile?
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();
La [specifica Qt] (http://doc.qt.nokia.com/latest/qprinter.html#OutputFormat-enum) descrive il testo "ricercabile" come output. Ciò implica che i caratteri di base vengano memorizzati. Per quanto ne so, se il testo può essere selezionato è più una funzione del lettore PDF * rispetto allo scrittore. – spraff
Ho provato diversi lettori, tra cui l'anteprima di Mac OS X, Adobe Acrobat X. Nella stringa di testo di anteprima è selezionabile ma gli appunti ricevono solo il simbolo dello spazio durante la copia. In Acrobat la stringa di testo non è affatto selezionabile. –
il tuo codice produce testo selezionabile in file PDF. L'ho appena provato! Quindi non capisco la tua domanda ... – CapelliC