void extractContent() {
QString textContent;
QList<QByteArray> imageBase64List;
QTextDocument *document = textEdit->document();
QSet<QUrl> processedUrls; // 避免重复处理同一图片
// 遍历文档中的所有块
for (QTextBlock block = document->begin(); block != document->end(); block = block.next()) {
// 遍历块中的所有片段
QTextBlock::iterator it;
for (it = block.begin(); !(it.atEnd()); ++it) {
QTextFragment fragment = it.fragment();
if (!fragment.text().isEmpty()) {
// 提取文本片段
textContent += fragment.text();
}
// 检查片段中的图像
if (fragment.charFormat().isImageFormat()) {
QUrl imageUrl = fragment.charFormat().toImageFormat().name();
processedUrls.insert(imageUrl );
if (!image.isNull()) {
// 将 QImage 转换为 QByteArray
QByteArray byteArray;
QBuffer buffer(&byteArray);
buffer.open(QIODevice::WriteOnly);
image.save(&buffer, "PNG"); // 可以选择其他格式,如 "JPEG"
// 编码为 Base64
QByteArray base64Data = byteArray.toBase64();
imageBase64List.append(base64Data);
}
}
}
// 显示提取结果
QMessageBox::information(this, "Extraction Result", "Text Content:\n" + textContent);
for (const QByteArray &base64Data : imageBase64List) {
qDebug() << "Image Base64 Data:" << base64Data;
}
}