В нашем приложении C ++ / Qt4.8 мы используем QImage для добавления изображений в наши документы, которые мы печатаем.Иногда у нас возникают проблемы с печатью изображения, и изображение будет распечатано пустым (просто пустая страница).
Мы добавили вход в наше приложение и добавили журнал аудита в нашу папку ресурсов, где находятся изображения.
Мы инициализируем наш образ таким образом.И передайте его в качестве аргумента mPainter (экземпляр QPainter)
QImage image( strImage );
mPainter.drawImage( QRect( 0, 0, pageRect().width(), pageRect().height() ), image );
Функция drawImage mPainter вызовет следующую функцию QPainter:
inline void QPainter::drawImage(const QRect &r, const QImage &image)
{
drawImage(r, image, QRectF(0, 0, image.width(), image.height()));
}
Аудит окон показывает, что приложениеуспешно попытался получить доступ к файлам.
Но иногда следующий код возвращает false и переходит в другое:
QImage* imageToPrint = new QImage;
if (imageToPrint->load("C:/ApplicationName/Resources/page-001.jpg"))
{
//fuction body
}
else
{
if (QFile::exists("C:/ApplicationName/Resources/page-001-copy.jpg"))
{
//Copy the image and try to print with this one.
QFile::copy("C:/ApplicationName/Resources/page-001-copy.jpg", "C:/ApplicationName/Resources/page-001-unixtimestamp.jpg");
printImage("C:/ApplicationName/Resources/page-001-unixtimestamp.jpg");
QFile::remove("C:/ApplicationName/Resources/page-001-unixtimestamp.jpg");
}
}
Самое странное, что приложение может получать доступ, копировать и удалять файлы в каталоге.Но иногда не могу прочитать данные из файла.Даже вновь созданная копия с меткой unixtime не может быть загружена (но существует после кода) и напечатает пустую страницу.
У кого-нибудь есть такая проблема?У кого-нибудь есть решение для этого?
Заранее спасибо!