Вам нужно будет узнать имена полей в форме PDF. Получите поля и затем прочитайте их значение.
string pdfTemplate = "my.pdf";
PdfReader pdfReader = new PdfReader(pdfTemplate);
AcroFields fields = pdfReader.AcroFields.Fields;
string val = fields.GetField("fieldname");
Очевидно, что в приведенном выше коде имя поля - это имя поля формы PDF, а метод GetField возвращает строковое представление этого значения. Здесь - статья с примером кода, который вы, вероятно, могли бы использовать. Он показывает, как вы можете читать и писать поля формы с помощью iTextSharp.
Компоненты высшего порядка - это функции, которые «улучшают» компоненты, передаваемые в качестве параметра. Чтобы понять, откуда берутся реквизиты, давайте посмотрим, как будет выглядеть такой компонент.
Вот наш основной компонент, который будет передан в HoC:
function TodoList(props) {
return (
<div>We have {props.todos.length} tasks to do!</div>
);
}
И теперь мы можем использовать наш HoC для создания нового «расширенного» компонента, который предотвращает отображение этого сообщения, когда нет Никаких оставленных задач:
const EnhancedTodoList = withTodosNull(TodoList);
Затем мы можем использовать этот новый компонент для рендеринга сообщения (или нет, если задач нет):
<EnhancedTodoList todos={someTodos} />
Как Вы можете видеть, EnhancedTodoList
является первым компонентом, который получает todos
. Затем он решает, следует ли передавать реквизиты в TodoList
или возвращать null
, когда нет никаких задач.
Тоды явно передаются из компонента, который представляет HoC. EnhancedTodoList
действует как фильтр для TodoList
.
Этот метод называется компонентами высшего порядка (HOCs) и является способом расширения компонентов с некоторыми дополнительными функциями.
Сначала это может выглядеть проще, если переписать его, используя обычные функции вместо функций со стрелками:
function withTodosNull(Component) {
return function(props) {
if (!props.todos) {
return null;
} else {
return <Component {...props} />
}
}
}
withTodosNull
принимает компонент и возвращает новый компонент. Если этот новый компонент, который возвращается, получает todos
реквизит, компонент, переданный в HOC, будет визуализирован со всеми реквизитами. Если todos
не указано как опора, null
будет воспроизведено.