Я сделал налоговый калькулятор (теоретический для практики), и в нем есть функция, с помощью которой пользователь может нажать кнопку, чтобы экспортировать базовый c налоговый отчет в формате PDF. Требования к налоговому отчету немного отличаются в зависимости от того, является он сотрудником или подрядчиком. Подрядчики обозначаются идентификатором EmployeeID, начинающимся с «C». Пока все хорошо .
Теперь у меня есть требование только для подрядчиков, чтобы PDF-файл подрядчика сохранялся с определенным c именем «ContractorTax» . Есть ли способ создать диалоговое окно с безопасным файлом, которое позволяет пользователям выбирать местоположение только при заблокированном имени файла (и, я думаю, расширении файла).
Это соответствующий код, который у меня есть пока:
//Creates PDF.
private void CreatePdf()
{
//sets default options for save file
saveFileDialog1.FileName = "Tax Report for " + txtFirstName.Text + " " + txtSurname.Text;
saveFileDialog1.Filter = "PDF files (*.pdf)|*.pdf|All files (*.*)|*.*";
saveFileDialog1.DefaultExt = "pdf";
saveFileDialog1.ShowDialog();
/*- create FileStream object (fs) with pdf name, mode type, access type, and if it can be shared
- create new document object (A4 page size)
- create a iTextSharp.text.pdf.PdfWriter object, it helps to write the Document to the Specified
FileStream
- open document
- add paragraph
- close document*/
if (txtEmployeeID.Text.ToUpper().StartsWith("C"))
{
FileStream fs = new FileStream(saveFileDialog1.FileName, FileMode.Create, FileAccess.Write, FileShare.None);
Document doc = new Document(PageSize.A4);
PdfWriter writer = PdfWriter.GetInstance(doc, fs);
doc.Open();
doc.Add(new Paragraph("TAX REPORT" + nl + nl + "Employee ID: " + txtEmployeeID.Text.ToUpper() + nl + "Name: " + txtFirstName.Text + " " + txtSurname.Text + nl + "Mobile Number: " + txtMobileNumber.Text + nl +
"Email: " + txtEmail.Text + nl + "Department: " + comboBoxDepartment.Text + nl + "Salary: $" + salary.ToString() + nl + "Tax Payable: $" + taxPayable.ToString()));
doc.Close();
}
else
{
FileStream fs = new FileStream(saveFileDialog1.FileName, FileMode.Create, FileAccess.Write, FileShare.None);
Document doc = new Document(PageSize.A4);
PdfWriter writer = PdfWriter.GetInstance(doc, fs);
doc.Open();
doc.Add(new Paragraph("TAX REPORT" + nl + nl + "Employee ID: " + txtEmployeeID.Text.ToUpper() + nl + "Name: " + txtFirstName.Text + " " + txtSurname.Text + nl + "Mobile Number: " + txtMobileNumber.Text + nl +
"Department: " + comboBoxDepartment.Text + nl + "Salary: $" + salary.ToString() + nl + "Tax Payable: $" + taxPayable.ToString()));
doc.Close();
}
}
Я обнаружил, что этот вопрос задан раньше, но ответ был актуален только для Java, и я использую Visual Studio 2017 и кодирую в C#.