Я не могу полностью понять проблему из этого небольшого примера, но я предполагаю, что метод pd.Print()
является асинхронным.
Вы хотите сделать печать синхронной. Лучшим способом было бы обернуть код в функцию и вызвать эту функцию из pd_PrintPageHandler
, который, как я полагаю, вызывается при печати страницы.
Быстрый пример, чтобы показать, что я имею в виду,
function printPage(pdfFilePath)
{
ProcessStartInfo starter = new ProcessStartInfo("path to acrobt32.exe", pdfFilePath);
starter.CreateNoWindow = true;
starter.RedirectStandardOutput = true;
starter.UseShellExecute = false;
Process process = new Process();
process.StartInfo = starter;
process.Start();
PrintDocument pd = new PrintDocument();
pd.DocumentName = "Work";
pd.PrintPage += new PrintPageEventHandler(pd_PrintPageHandler);
pd.Print();
}
и в методе pd_PrintPageHandler
вызовите эту функцию printPage
со следующим файлом PDF.