本页内容

QPdfWriter Class

QPdfWriter 类是一个用于生成 PDF 的类,该 PDF 可作为绘图设备使用。更多内容...

标题: #include <QPdfWriter>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
继承自:QObject 以及QPagedPaintDevice

公共类型

(since 6.8) enum class ColorModel { RGB, Grayscale, CMYK, Auto }

公共函数

QPdfWriter(QIODevice *device)
QPdfWriter(const QString &filename)
virtual ~QPdfWriter()
void addFileAttachment(const QString &fileName, const QByteArray &data, const QString &mimeType = QString())
(since 6.9) QString author() const
(since 6.8) QPdfWriter::ColorModel colorModel() const
QString creator() const
(since 6.8) QUuid documentId() const
QByteArray documentXmpMetadata() const
(since 6.8) QPdfOutputIntent outputIntent() const
QPagedPaintDevice::PdfVersion pdfVersion() const
int resolution() const
(since 6.9) void setAuthor(const QString &author)
(since 6.8) void setColorModel(QPdfWriter::ColorModel model)
void setCreator(const QString &creator)
(since 6.8) void setDocumentId(QUuid documentId)
void setDocumentXmpMetadata(const QByteArray &xmpMetadata)
(since 6.8) void setOutputIntent(const QPdfOutputIntent &intent)
void setPdfVersion(QPagedPaintDevice::PdfVersion version)
void setResolution(int resolution)
void setTitle(const QString &title)
QString title() const

重新实现的公共函数

virtual bool newPage() override

重新实现的受保护函数

virtual QPaintEngine *paintEngine() const override

详细说明

QPdfWriter 使用QPainter 将一系列绘图命令生成PDF。可以使用newPage()方法创建多个页面。

成员类型文档

[since 6.8] enum class QPdfWriter::ColorModel

此枚举描述了PDF引擎如何解释作为QPainter 的笔或画笔设置的描边和填充颜色(通过QPen 和QBrush 设置)。

常量值描述
QPdfWriter::ColorModel::RGB0所有颜色均转换为 RGB 并以该形式保存在 PDF 中。
QPdfWriter::ColorModel::Grayscale1所有颜色均转换为灰度。为了向后兼容,它们在 PDF 输出中以 RGB 颜色输出,红色、绿色和蓝色的数量相同。
QPdfWriter::ColorModel::CMYK2所有颜色均转换为 CMYK 并以该格式保存。
QPdfWriter::ColorModel::Auto3RGB 颜色以 RGB 格式输出;CMYK 颜色以 CMYK 格式输出。任何其他颜色规范的颜色均被转换为 RGB。这是自 Qt 6.8 以来的默认设置。

该枚举在 Qt 6.8 中引入。

另请参阅 QColor 和QGradient 。

成员函数文档

[explicit] QPdfWriter::QPdfWriter(QIODevice *device)

创建一个 PDF 写入器,该写入器将 PDF 文件写入device 。

[explicit] QPdfWriter::QPdfWriter(const QString &filename)

创建一个 PDF 写入器,将 PDF 文件写入filename 。

[virtual noexcept] QPdfWriter::~QPdfWriter()

销毁 PDF 写入器。

void QPdfWriter::addFileAttachment(const QString &fileName, const QByteArray &data, const QString &mimeType = QString())

向 PDF 中添加fileName 附件,并可选地添加mimeType 。data 包含要嵌入到 PDF 文件中的原始文件数据。

[since 6.9] QString QPdfWriter::author() const

返回文档的作者。

该函数于 Qt 6.9 中引入。

另请参阅 setAuthor()。

[since 6.8] QPdfWriter::ColorModel QPdfWriter::colorModel() const

返回此 PDF 写入器所使用的颜色模型。默认值为QPdfWriter::ColorModel::Auto 。

该函数自 Qt 6.8 起引入。

另请参阅 setColorModel()。

QString QPdfWriter::creator() const

返回文档的创建者。

另请参阅 setCreator()。

[since 6.8] QUuid QPdfWriter::documentId() const

返回文档的 ID。默认情况下,该 ID 是一个随机生成的 UUID。

该函数在 Qt 6.8 中引入。

另请参阅 setDocumentId()。

QByteArray QPdfWriter::documentXmpMetadata() const

获取文档元数据,该元数据是通过调用setDocumentXmpMetadata 提供的。此方法不会返回默认元数据。

另请参阅 setDocumentXmpMetadata()。

[override virtual] bool QPdfWriter::newPage()

重写了:QPagedPaintDevice::newPage()。

[since 6.8] QPdfOutputIntent QPdfWriter::outputIntent() const

返回此 PDF 写入器所使用的输出意图。

该函数在 Qt 6.8 中引入。

另请参阅 setOutputIntent()。

[override virtual protected] QPaintEngine *QPdfWriter::paintEngine() const

重新实现了:QPaintDevice::paintEngine() const。

QPagedPaintDevice::PdfVersion QPdfWriter::pdfVersion() const

返回此写入器的 PDF 版本。默认值为PdfVersion_1_4 。

另请参阅 setPdfVersion()。

int QPdfWriter::resolution() const

返回 PDF 的分辨率(单位为 DPI)。

另请参阅 setResolution()。

[since 6.9] void QPdfWriter::setAuthor(const QString &author)

将文档的作者设置为author 。

该函数在 Qt 6.9 中引入。

另请参阅 author()。

[since 6.8] void QPdfWriter::setColorModel(QPdfWriter::ColorModel model)

将此 PDF 写入器使用的颜色模型设置为model 。

该函数在 Qt 6.8 中引入。

另请参阅 colorModel()。

void QPdfWriter::setCreator(const QString &creator)

将文档的创建者设置为creator 。

另请参阅 creator()。

[since 6.8] void QPdfWriter::setDocumentId(QUuid documentId)

将文档的 ID 设置为documentId 。

该函数在 Qt 6.8 中引入。

另请参阅 documentId()。

void QPdfWriter::setDocumentXmpMetadata(const QByteArray &xmpMetadata)

设置文档元数据。该元数据不受setTitle /setCreator 方法的影响,因此需由用户自行确保其一致性。xmpMetadata 包含以 XML 格式编写的元数据,用于嵌入到 PDF 文件中。

另请参阅 documentXmpMetadata()。

[since 6.8] void QPdfWriter::setOutputIntent(const QPdfOutputIntent &intent)

将此 PDF 写入器使用的输出意图设置为intent 。

该函数在 Qt 6.8 中引入。

另请参阅 outputIntent()。

void QPdfWriter::setPdfVersion(QPagedPaintDevice::PdfVersion version)

将此写入器的 PDF 版本设置为version 。

如果version 与当前设置的值相同,则不会进行任何更改。

另请参阅 pdfVersion()。

void QPdfWriter::setResolution(int resolution)

将 PDF 的resolution 设置为 DPI。

此设置会影响由QPainter::viewport() 等函数返回的坐标系。

另请参阅 resolution()。

void QPdfWriter::setTitle(const QString &title)

将正在创建的文档标题设置为“title ”。

另请参阅 title()。

QString QPdfWriter::title() const

返回文档的标题。

另请参阅 setTitle()。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.