当使用 QTextDocument 和 QPrinter 打印到 PDF 时,有没有办法检测错误(例如,无法写入 PDF 文件)?
我正在使用以下代码:
QTextDocument document;
QPrinter printer( QPrinter::HighResolution );
printer.setOutputFormat( QPrinter::PdfFormat );
printer.setOutputFileName( filename );
document.print( &printer );
最佳答案
在文档中,您会找到 QPrinter::printerState
。所以你绝对可以这样做:
if (printer.printerState() == QPrinter::Error)
// do some error handling
我承认这不是很多工作,因为只有 4 个
QPrinter::PrinterState
。您可能希望首先尽力避免错误。文档中的 detailed description 指出:另外,您可以使用
QFile::exists
检查您设置的文件名是否已经存在。此外,在设置完所有内容后,您可以调用和处理
QPrinter::supportedResolutions()
、 QPrinter::supportedPaperSources()
和 QPrinter::supportsMultipleCopies()
。当然,打印为 PDF 您可能不必担心这些。关于qt - QPrinter 中的错误处理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33372261/