diff --git a/VAR.PdfTools/PdfDocument.cs b/VAR.PdfTools/PdfDocument.cs index df7fa70..12fa92c 100644 --- a/VAR.PdfTools/PdfDocument.cs +++ b/VAR.PdfTools/PdfDocument.cs @@ -60,7 +60,7 @@ namespace VAR.PdfTools private static void ApplyFiltersToStreams(PdfStream stream) { - string filter = stream.GetParamAsString("Filter"); + string filter = stream.Dictionary.GetParamAsString("Filter"); if (filter == "FlateDecode") { stream.OriginalData = stream.Data; @@ -108,9 +108,9 @@ namespace VAR.PdfTools if (obj.Data.Type != PdfElementTypes.Stream) { continue; } PdfStream stream = obj.Data as PdfStream; - string type = stream.GetParamAsString("Type"); - long? number = stream.GetParamAsInt("N"); - long? first = stream.GetParamAsInt("First"); + string type = stream.Dictionary.GetParamAsString("Type"); + long? number = stream.Dictionary.GetParamAsInt("N"); + long? first = stream.Dictionary.GetParamAsInt("First"); if (type == "ObjStm" && number != null && first != null) { PdfParser parserAux = new PdfParser(stream.Data); diff --git a/VAR.PdfTools/PdfElements.cs b/VAR.PdfTools/PdfElements.cs index f728969..8ccf52b 100644 --- a/VAR.PdfTools/PdfElements.cs +++ b/VAR.PdfTools/PdfElements.cs @@ -65,6 +65,42 @@ namespace VAR.PdfTools public PdfElementTypes Type { get; private set; } = PdfElementTypes.Dictionary; private Dictionary _values = new Dictionary(); public Dictionary Values { get { return _values; } } + + public string GetParamAsString(string name) + { + if (Values.ContainsKey(name) == false) { return null; } + + IPdfElement value = Values[name]; + if (value is PdfArray) + { + value = ((PdfArray)value).Values[0]; + } + if (value is PdfName) + { + return ((PdfName)value).Value; + } + if (value is PdfString) + { + return ((PdfString)value).Value; + } + return null; + } + + public long? GetParamAsInt(string name) + { + if (Values.ContainsKey(name) == false) { return null; } + + IPdfElement value = Values[name]; + if (value is PdfArray) + { + value = ((PdfArray)value).Values[0]; + } + if (value is PdfInteger) + { + return ((PdfInteger)value).Value; + } + return null; + } } public class PdfNull : IPdfElement @@ -87,42 +123,6 @@ namespace VAR.PdfTools public byte[] OriginalData { get; set; } public IPdfElement OriginalFilter { get; set; } - - public string GetParamAsString(string name) - { - if(Dictionary.Values.ContainsKey(name) == false) { return null; } - - IPdfElement value = Dictionary.Values[name]; - if (value is PdfArray) - { - value = ((PdfArray)value).Values[0]; - } - if (value is PdfName) - { - return ((PdfName)value).Value; - } - if (value is PdfString) - { - return ((PdfString)value).Value; - } - return null; - } - - public long? GetParamAsInt(string name) - { - if (Dictionary.Values.ContainsKey(name) == false) { return null; } - - IPdfElement value = Dictionary.Values[name]; - if (value is PdfArray) - { - value = ((PdfArray)value).Values[0]; - } - if (value is PdfInteger) - { - return ((PdfInteger)value).Value; - } - return null; - } } public class PdfObject : IPdfElement