make form access public

This commit is contained in:
Eliot Jones 2019-11-27 16:36:25 +00:00
parent df3cb43cfc
commit 80f024dbed
5 changed files with 14 additions and 10 deletions

View File

@ -17,7 +17,7 @@
{ {
using (var document = PdfDocument.Open(GetFilename(), ParsingOptions.LenientParsingOff)) using (var document = PdfDocument.Open(GetFilename(), ParsingOptions.LenientParsingOff))
{ {
var form = document.GetForm(); document.TryGetForm(out var form);
Assert.NotNull(form); Assert.NotNull(form);
} }
} }
@ -29,7 +29,7 @@
document.Dispose(); document.Dispose();
Action action = () => document.GetForm(); Action action = () => document.TryGetForm(out _);
Assert.Throws<ObjectDisposedException>(action); Assert.Throws<ObjectDisposedException>(action);
} }
@ -39,7 +39,7 @@
{ {
using (var document = PdfDocument.Open(GetFilename(), ParsingOptions.LenientParsingOff)) using (var document = PdfDocument.Open(GetFilename(), ParsingOptions.LenientParsingOff))
{ {
var form = document.GetForm(); document.TryGetForm(out var form);
Assert.Equal(18, form.Fields.Count); Assert.Equal(18, form.Fields.Count);
} }
} }
@ -49,7 +49,7 @@
{ {
using (var document = PdfDocument.Open(GetFilename(), ParsingOptions.LenientParsingOff)) using (var document = PdfDocument.Open(GetFilename(), ParsingOptions.LenientParsingOff))
{ {
var form = document.GetForm(); document.TryGetForm(out var form);
var fields = form.GetFieldsForPage(1).ToList(); var fields = form.GetFieldsForPage(1).ToList();
Assert.Equal(18, fields.Count); Assert.Equal(18, fields.Count);
} }
@ -60,7 +60,7 @@
{ {
using (var document = PdfDocument.Open(GetFilename(), ParsingOptions.LenientParsingOff)) using (var document = PdfDocument.Open(GetFilename(), ParsingOptions.LenientParsingOff))
{ {
var form = document.GetForm(); document.TryGetForm(out var form);
var radioButtons = form.Fields.OfType<AcroRadioButtonsField>().ToList(); var radioButtons = form.Fields.OfType<AcroRadioButtonsField>().ToList();
Assert.Equal(2, radioButtons.Count); Assert.Equal(2, radioButtons.Count);

View File

@ -39,6 +39,8 @@
var expected = new List<string> var expected = new List<string>
{ {
"UglyToad.PdfPig.AcroForms.AcroForm",
"UglyToad.PdfPig.AcroForms.SignatureFlags",
"UglyToad.PdfPig.AcroForms.Fields.AcroButtonFieldFlags", "UglyToad.PdfPig.AcroForms.Fields.AcroButtonFieldFlags",
"UglyToad.PdfPig.AcroForms.Fields.AcroCheckboxField", "UglyToad.PdfPig.AcroForms.Fields.AcroCheckboxField",
"UglyToad.PdfPig.AcroForms.Fields.AcroCheckboxesField", "UglyToad.PdfPig.AcroForms.Fields.AcroCheckboxesField",

View File

@ -14,7 +14,7 @@
/// <remarks> /// <remarks>
/// The name AcroForm distinguishes this from the other form type called form XObjects which act as templates for repeated sections of content. /// The name AcroForm distinguishes this from the other form type called form XObjects which act as templates for repeated sections of content.
/// </remarks> /// </remarks>
internal class AcroForm public class AcroForm
{ {
private readonly IReadOnlyDictionary<IndirectReference, AcroFieldBase> fieldsWithReferences; private readonly IReadOnlyDictionary<IndirectReference, AcroFieldBase> fieldsWithReferences;
@ -42,7 +42,7 @@
/// <summary> /// <summary>
/// Create a new <see cref="AcroForm"/>. /// Create a new <see cref="AcroForm"/>.
/// </summary> /// </summary>
public AcroForm(DictionaryToken dictionary, SignatureFlags signatureFlags, bool needAppearances, internal AcroForm(DictionaryToken dictionary, SignatureFlags signatureFlags, bool needAppearances,
IReadOnlyDictionary<IndirectReference, AcroFieldBase> fieldsWithReferences) IReadOnlyDictionary<IndirectReference, AcroFieldBase> fieldsWithReferences)
{ {
Dictionary = dictionary ?? throw new ArgumentNullException(nameof(dictionary)); Dictionary = dictionary ?? throw new ArgumentNullException(nameof(dictionary));

View File

@ -6,7 +6,7 @@
/// Specifies document level characteristics for any signature fields in the document's <see cref="AcroForm"/>. /// Specifies document level characteristics for any signature fields in the document's <see cref="AcroForm"/>.
/// </summary> /// </summary>
[Flags] [Flags]
internal enum SignatureFlags public enum SignatureFlags
{ {
/// <summary> /// <summary>
/// The document contains at least one signature field. /// The document contains at least one signature field.

View File

@ -202,14 +202,16 @@
/// </summary> /// </summary>
/// <remarks>This will throw a <see cref="ObjectDisposedException"/> if called on a disposed <see cref="PdfDocument"/>.</remarks> /// <remarks>This will throw a <see cref="ObjectDisposedException"/> if called on a disposed <see cref="PdfDocument"/>.</remarks>
/// <returns>An <see cref="AcroForm"/> from the document or <see langword="null"/> if not present.</returns> /// <returns>An <see cref="AcroForm"/> from the document or <see langword="null"/> if not present.</returns>
internal AcroForm GetForm() public bool TryGetForm(out AcroForm form)
{ {
if (isDisposed) if (isDisposed)
{ {
throw new ObjectDisposedException("Cannot access the form after the document is disposed."); throw new ObjectDisposedException("Cannot access the form after the document is disposed.");
} }
return documentForm.Value; form = documentForm.Value;
return form != null;
} }
/// <inheritdoc /> /// <inheritdoc />