c ++、qt、qprinterクラスを使用して、作業中/好感の持てるURLをPDFに追加する簡単な方法はありますか?少し明確にするために:新しいドキュメントの生成中にURLを追加したいと思います。既存のPDFを編集しようとはしていません。
2 に答える
QTextDocumentを使用してQprinterでPDFを作成できます。QTextDocumentにはsetHtml()<a>
メソッドがあり、 tag( )を含むhtmlタグを使用できます<a href='http://www.google.com'>google</a>
。その後、QTextDocument print()メソッドを使用して、そのHTMLでPDFを作成できます。
コード例:
QPrinter printer(QPrinter::HighResolution);
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setOutputFileName("out.pdf");
QTextDocument document;
QString html = "<a href='http://www.google.com'>google</a>";
document.setHtml(html);
document.print( &printer );
このコードを実行すると、「http://www.google.com」にリンクする「google」というクリック可能なテキストを含むout.pdfファイルが作成されます。
PS<img>
タグを使用して画像を追加することもできます。
私はそうは思わない、いや。QtにはPDFを編集するためのクラスがなく、QPrinterで何をするのかよくわかりません。QPrinterでできることは、PDF以外のソースを指定して新しいPDFを生成することだけです。PDFはほとんど書き込み専用です。この形式は独自仕様であり、非常に複雑であるため、フリーソフトウェアの世界では、ページの並べ替えやその他の単純なメタデータの変更以外にPDFを編集できるコードはほとんどありません。既存のPDFを編集しようとしている場合は、ほとんどの場合、自分で編集する必要があります。