使用QTextDocument和QPrinter打印到PDF时有没有办法检测错误(例如无法写入PDF文件)? 我正在使用以下代码:
QTextDocument document;
QPrinter printer( QPrinter::HighResolution );
printer.setOutputFormat( QPrinter::PdfFormat );
printer.setOutputFileName( filename );
document.print( &printer );
答案 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在写入文件失败时会返回错误。如果文件名无效,则返回空闲状态。