Я видел много способов, которыми можно было бы ответить, но ни один из них не имел смысла или, казалось, не работал. Вот код: Цель состоит в том, чтобы иметь возможность взять этот PDF-файл, и как только пользователи начнут печатать в пользовательском интерфейсе, он сгенерирует предварительный просмотр этого отчета здесь. Обычно мы используем что-то вроде Onprintreport («ReportName», ownerWindow), но это работает только с файлами rpt, это PDF-файл. Каков наилучший способ сделать это?
public static void OnPrintCharitableExemption(bool createParcelList, string selectionFormula, string sortOrder, int year, string sql, Window ownerWindow, bool isRunSp = true)
{
if (isRunSp)
{
OnCreateStateFormTable(createParcelList, sql, year, false);
}
PdfDocument doc = new PdfDocument();
doc.LoadFromFile(LoadPdf("CharitableExemption"));
PdfFormWidget formWidget = doc.Form as PdfFormWidget;
for (int i = 0; i < formWidget.FieldsWidget.List.Count; i++)
{
PdfField field = formWidget.FieldsWidget.List[i] as PdfField;
if (field is PdfTextBoxFieldWidget)
{
PdfTextBoxFieldWidget textBoxField = field as PdfTextBoxFieldWidget;
switch (textBoxField.Name)
{
case "District Name":
textBoxField.Text = AppSession.Repository.Settings.DistrictName;
break;
case "Phone Number":
textBoxField.Text = AppSession.Repository.Settings.PhoneNumber;
break;
case "CityStateZip":
textBoxField.Text = AppSession.Repository.Settings.CityStateZip;
break;
}
}
}
}