QPrinter中的错误处理

时间:2015-10-27 15:38:15

标签: qt

使用QTextDocument和QPrinter打印到PDF时有没有办法检测错误(例如无法写入PDF文件)? 我正在使用以下代码:

QTextDocument document;
QPrinter printer( QPrinter::HighResolution );
printer.setOutputFormat( QPrinter::PdfFormat );
printer.setOutputFileName( filename );
document.print( &printer );

2 个答案:

答案 0 :(得分:3)

在文档中,您会找到QPrinter::printerState。所以你绝对可以做到:

if (printer.printerState() == QPrinter::Error)
    // do some error handling

我承认,并没有很多工作,因为只有4 QPrinter::PrinterState。您可能希望尽力避免错误。文档中的detailed description说明:

  

请注意,未定义无效打印机上的纸张尺寸和分辨率等参数。您可以在更改任何参数之前使用QPrinter::isValid()进行验证。

另外,您可以使用QFile::exists检查您设置的文件名是否已存在。 此外,在全部设置时,您可以拨打电话并处理QPrinter::supportedResolutions()QPrinter::supportedPaperSources()QPrinter::supportsMultipleCopies()。当然,打印到PDF你可能不必担心这些。

答案 1 :(得分:-1)

只要文件名有效,看起来像printerState在写入文件失败时会返回错误。如果文件名无效,则返回空闲状态。