diff options
| author | Markus Klein | 2018-06-05 13:30:11 +0200 | 
|---|---|---|
| committer | Markus Klein | 2018-06-05 13:30:11 +0200 | 
| commit | 8901a6743905fe1d5edfeb3b7bd837c8870b28a5 (patch) | |
| tree | ccf043211f92b97bf658ddeee086819b4e92fda0 /src | |
| parent | 103cbbc604da6fc22681b29b0fea2658b86539dd (diff) | |
| download | pdf_form-8901a6743905fe1d5edfeb3b7bd837c8870b28a5.tar.bz2 | |
load from arbitrary readers
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib.rs | 12 | 
1 files changed, 12 insertions, 0 deletions
| @@ -104,10 +104,22 @@ impl PdfObjectDeref for Object {  }  impl Form { + +    /// Takes a reader containing a PDF with a fillable form, analyzes the content, and attempts to +    /// identify all of the fields the form has. This is the only way to create a `Form` +    pub fn load_from<R: io::Read>(reader: R) -> Result<Self, LoadError> { +        let doc = Document::load_from(reader)?; +        Self::load_doc(doc) +    } +      /// Takes a path to a PDF with a fillable form, analyzes the file, and attempts to identify all      /// of the fields the form has. This is the only way to create a `Form`      pub fn load<P: AsRef<Path>>(path: P) -> Result<Self, LoadError> {          let doc = Document::load(path)?; +        Self::load_doc(doc) +    } + +    fn load_doc(doc: Document) -> Result<Self, LoadError>{          let mut form_ids = Vec::new();          let mut queue = VecDeque::new();          // Block so borrow of doc ends before doc is moved into the result | 
