Создаю код для вывода на печать картинки из файла. Взял за основу рабочий пример. Вот мой, немного переделанный, код
void __fastcall TForm1::PrintImageh(TImage *ImageTmp) {
TRectF SrcRect, DestRect;
TPrinter *Printer = Printer;
if(!Printer)
return;
/* Set the default DPI for the printer. The SelectDPI routine defaults
to the closest available resolution as reported by the driver. */
if(Printer->ActivePrinter->SelectDPI(1200, 1200)==false) return;
/* Set canvas filling style. */
Printer->Canvas->Fill->Color = claBlack;
Printer->Canvas->Fill->Kind = TBrushKind(1);
/* Start printing. */
Printer->BeginDoc();
/* Set the Source and Destination TRects. */
SrcRect = ImageTmp->LocalRect;
DestRect = TRectF(0, 0, Printer->PageWidth, Printer->PageHeight);
/* Print the picture on all the surface of the page and all opaque. */
Printer->Canvas->DrawBitmap(ImageTmp->Bitmap, SrcRect, DestRect, 1);
/* Finish the printing job. */
Printer->EndDoc();
}
Происходит вылет на строке if(Printer->ActivePrinter->SelectDPI(1200, 1200)==false) return;
Что может быть не так?
Вопрос
giveaway
Создаю код для вывода на печать картинки из файла. Взял за основу рабочий пример. Вот мой, немного переделанный, код
void __fastcall TForm1::PrintImageh(TImage *ImageTmp) { TRectF SrcRect, DestRect; TPrinter *Printer = Printer; if(!Printer) return; /* Set the default DPI for the printer. The SelectDPI routine defaults to the closest available resolution as reported by the driver. */ if(Printer->ActivePrinter->SelectDPI(1200, 1200)==false) return; /* Set canvas filling style. */ Printer->Canvas->Fill->Color = claBlack; Printer->Canvas->Fill->Kind = TBrushKind(1); /* Start printing. */ Printer->BeginDoc(); /* Set the Source and Destination TRects. */ SrcRect = ImageTmp->LocalRect; DestRect = TRectF(0, 0, Printer->PageWidth, Printer->PageHeight); /* Print the picture on all the surface of the page and all opaque. */ Printer->Canvas->DrawBitmap(ImageTmp->Bitmap, SrcRect, DestRect, 1); /* Finish the printing job. */ Printer->EndDoc(); }
Происходит вылет на строке if(Printer->ActivePrinter->SelectDPI(1200, 1200)==false) return;
Изменено пользователем giveawayЧто может быть не так?
Ссылка на комментарий
2 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.