MochiuWiki : SUSE, EC, PCB
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Qtの基礎 - PDFのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Qtの基礎 - PDF
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == Qtは、PDFファイルの作成、表示、操作のための複数のクラスとモジュールを提供している。<br> これらは主に、QtPrintSupportモジュールとQtGuiモジュールに含まれている。<br> <br> QtのPDFサポートは基本的なPDF作成や表示において基本的な機能に限られているため、より高度な操作が必要な場合は、追加のライブラリやツールの使用を推奨する。<br> <br> 例えば、QPdfWriterライブラリは小規模から中規模のPDFファイル生成に適している。<br> 大規模で複雑なPDFファイルの場合、または、複雑なPDF操作や高度な機能が必要な場合は、サードパーティ製ライブラリの使用を検討する必要がある。<br> <br><br> == QtのPDFモジュール == ==== 主要なクラス ==== * QPdfWriterクラス *: PDFファイルを作成するためのクラスである。 * QPrinterクラス *: プリンタやPDFファイルへの出力を扱うクラスである。 * QPagedPaintDeviceクラス *: ページベースのペイントデバイスの基本クラスである。 * QPdfDocumentクラス (Qt 5.10以降) *: PDFドキュメントを読み込み、操作するためのクラスである。 <br> ==== PDF作成 ==== QPdfWriterクラス、または、QPrinterクラスを使用して、PDFファイルを作成することができる。<br> QPainterクラスと組み合わせて使用することにより、テキスト、図形、画像などをPDFに描画できる。<br> <br> ==== PDF表示 ==== Qt 5.10以降、Qt WidgetsではQPdfViewerウィジェットが提供されており、PDFファイルを表示することができる。<br> <br> ==== PDF操作 ==== <code>QPdfDocument</code>クラスを使用して、PDFファイルのページ数の取得、ページの抽出、メタデータの読み取り等の操作が可能である。<br> <br> ==== 印刷サポート ==== QtPrintSupportモジュールを使用することで、PDFファイルの作成だけでなく、実際のプリンタへの印刷も可能である。<br> <br> ==== サードパーティ製ライブラリとの統合 ==== Qtは、Popplerライブラリ、MuPDFライブラリ等のサードパーティ製PDFライブラリと統合することも可能であり、より高度なPDF操作を行うことができる。<br> <br><br> == PDFの作成 == ==== QPdfWriterライブラリ ==== Qtでは、簡単にPDFを作成する機能が用意されている。<br> <syntaxhighlight lang="c++"> #include <QPdfWriter> // PDFを作成 QPdfWriter pdfWriter("ファイル名"); // レイアウトオブジェクト QPageLayout pdfLayout; // 単位をポイントに設定 pdfLayout.setUnits(QPageLayout::Point); // 紙サイズ、余白を設定 pdfLayout.setPageSize(QPageSize(QPageSize::A4), QMarginsF(105.0, 40.0, 40.0, 20.0)); // 縦に設定 pdfLayout.setOrientation(QPageLayout::Portrait); // レイアウトオブジェクトをPDFに設置 pdfWriter.setPageLayout(pdfLayout); // DPIを取得する場合は以下のようにする double dPixToPoints = (double)pdfWriter.resolution() / 72.0; // QPainterクラスを使用してPDFを書き込む QPainter painter; if(painter.begin(&pdfWriter)) { painter.drawText(QPoint(100, 100), "何か文字"); // 改ページ pdfWriter.newPage(); } painter.end(); </syntaxhighlight> <br> ==== Poppler-Qt5ライブラリ ==== Poppler-Qt5は、QPdfWriterライブラリと比較して、より高度なPDF操作や読み込みに適している。<br> <syntaxhighlight lang="c++"> #include <QCoreApplication> #include <QPainter> #include <poppler-qt5.h> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); // PDFファイルを読み込む Poppler::Document *document = Poppler::Document::load("input.pdf"); if (!document || document->isLocked()) { delete document; return -1; } // 最初のページを取得 Poppler::Page *page = document->page(0); if (page == nullptr) { delete document; return -1; } // ページを画像として描画 QImage image = page->renderToImage(72.0, 72.0); // 画像を保存 image.save("output.png"); delete page; delete document; return 0; } </syntaxhighlight> <br><br> __FORCETOC__ [[カテゴリ:Qt]]
Qtの基礎 - PDF
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse