Move ClipPaths option from GetPage() to ParsingOptions

This commit is contained in:
BobLd
2020-04-04 17:13:48 +01:00
committed by Eliot Jones
parent c14646fcc0
commit a759a99389
3 changed files with 18 additions and 6 deletions

View File

@@ -58,6 +58,8 @@
var passwords = new List<string>();
var clipPaths = options?.ClipPaths ?? true;
if (options?.Password != null)
{
passwords.Add(options.Password);
@@ -73,12 +75,13 @@
passwords.Add(string.Empty);
}
var document = OpenDocument(inputBytes, tokenScanner, options?.Logger ?? new NoOpLog(), isLenientParsing, passwords);
var document = OpenDocument(inputBytes, tokenScanner, options?.Logger ?? new NoOpLog(), isLenientParsing, passwords, clipPaths);
return document;
}
private static PdfDocument OpenDocument(IInputBytes inputBytes, ISeekableTokenScanner scanner, ILog log, bool isLenientParsing, IReadOnlyList<string> passwords)
private static PdfDocument OpenDocument(IInputBytes inputBytes, ISeekableTokenScanner scanner, ILog log, bool isLenientParsing,
IReadOnlyList<string> passwords, bool clipPaths)
{
var filterProvider = MemoryFilterProvider.Instance;
@@ -152,7 +155,8 @@
pdfScanner,
filterProvider,
acroFormFactory,
bookmarksProvider);
bookmarksProvider,
clipPaths);
}
private static (IndirectReference, DictionaryToken) ParseTrailer(CrossReferenceTable crossReferenceTable, bool isLenientParsing, IPdfTokenScanner pdfTokenScanner,

View File

@@ -16,6 +16,11 @@
UseLenientParsing = false
};
/// <summary>
/// Should the parser clip paths? Default is true.
/// </summary>
public bool ClipPaths { get; set; } = true;
/// <summary>
/// Should the parser ignore issues where the document does not conform to the PDF specification?
/// </summary>

View File

@@ -33,6 +33,8 @@
private readonly IInputBytes inputBytes;
private readonly bool clipPaths;
[NotNull]
private readonly ParsingCachingProviders cachingProviders;
@@ -92,7 +94,8 @@
IPdfTokenScanner pdfScanner,
IFilterProvider filterProvider,
AcroFormFactory acroFormFactory,
BookmarksProvider bookmarksProvider)
BookmarksProvider bookmarksProvider,
bool clipPaths)
{
this.log = log;
this.inputBytes = inputBytes;
@@ -102,6 +105,7 @@
this.pdfScanner = pdfScanner ?? throw new ArgumentNullException(nameof(pdfScanner));
this.filterProvider = filterProvider ?? throw new ArgumentNullException(nameof(filterProvider));
this.bookmarksProvider = bookmarksProvider ?? throw new ArgumentNullException(nameof(bookmarksProvider));
this.clipPaths = clipPaths;
Information = information ?? throw new ArgumentNullException(nameof(information));
pages = new Pages(catalog, pageFactory, pdfScanner);
Structure = new Structure(catalog, crossReferenceTable, pdfScanner);
@@ -141,9 +145,8 @@
/// Get the page with the specified page number (1 indexed).
/// </summary>
/// <param name="pageNumber">The number of the page to return, this starts from 1.</param>
/// <param name="clipPaths">Paths will be clipped if set to true. Default is false.</param>
/// <returns>The page.</returns>
public Page GetPage(int pageNumber, bool clipPaths = false)
public Page GetPage(int pageNumber)
{
if (isDisposed)
{