Move utility methods from PdfStream class to PdfDictionary.
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -65,6 +65,42 @@ namespace VAR.PdfTools
|
||||
public PdfElementTypes Type { get; private set; } = PdfElementTypes.Dictionary;
|
||||
private Dictionary<string, IPdfElement> _values = new Dictionary<string, IPdfElement>();
|
||||
public Dictionary<string, IPdfElement> 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
|
||||
|
||||
Reference in New Issue
Block a user