Files
PDFPatcher/App/Model/PdfImageData.cs
T
2024-10-07 16:17:27 +08:00

44 lines
1.0 KiB
C#

using System;
using iTextSharp.text.pdf;
namespace PDFPatcher.Model
{
internal sealed class PdfImageData : PdfDictionary
{
public int DataType { get; }
public PdfIndirectReference PdfRef { get; }
public byte[] RawBytes { get; }
public PdfImageData(PRStream stream) {
foreach (var item in stream) {
Put(item.Key, item.Value);
}
RawBytes = PdfReader.GetStreamBytesRaw(stream);
DataType = PdfObject.STREAM;
}
public PdfImageData(PdfIndirectReference pdfRef) {
var s = PdfReader.GetPdfObjectRelease(pdfRef) as PRStream;
foreach (var item in s) {
Put(item.Key, item.Value);
}
PdfRef = pdfRef;
RawBytes = PdfReader.GetStreamBytesRaw(s);
DataType = PdfObject.INDIRECT;
}
public PdfImageData(PdfDictionary source, byte[] bytes) {
foreach (var item in source) {
Put(item.Key, item.Value);
}
RawBytes = bytes;
DataType = PdfObject.NULL;
}
public override string ToString() {
return (PdfRef != null ? $"{PdfRef.Generation} {PdfRef.Number}" : "<内嵌图像>") + " " + RawBytes.Length;
}
}
}