Это лучшее, что я придумал:Есть ли лучший способ получить количество страниц из PrintDocument, чем это?
public static int GetPageCount(PrintDocument printDocument)
{
printDocument.PrinterSettings.PrintFileName = Path.GetTempFileName();
printDocument.PrinterSettings.PrintToFile = true;
int count = 0;
printDocument.PrintController = new StandardPrintController();
printDocument.PrintPage += (sender, e) => count++;
printDocument.Print();
File.Delete(printDocument.PrinterSettings.PrintFileName);
return count;
}
Есть ли лучший способ сделать это? (Это на самом деле довольно медленно)
Не с самого PrintDocument. Вам нужно будет узнать количество страниц файла, который вы хотите распечатать, по количеству строк и маржи, которую вы будете использовать, и количеству строки, которую вы хотите на странице, и т. Д. – Wildhorn