示例#1
0
 public PageFactory(IPdfTokenScanner pdfScanner, IResourceStore resourceStore, IFilterProvider filterProvider,
                    IPageContentParser pageContentParser,
                    XObjectFactory xObjectFactory)
 {
     this.resourceStore     = resourceStore;
     this.filterProvider    = filterProvider;
     this.pageContentParser = pageContentParser;
     this.xObjectFactory    = xObjectFactory;
     this.pdfScanner        = pdfScanner;
 }
示例#2
0
        public IEnumerable <IPdfImage> GetImages()
        {
            foreach (var image in images)
            {
                var result = image.Match <IPdfImage>(x => XObjectFactory.ReadImage(x, pdfScanner, filterProvider, resourceStore),
                                                     x => x);

                yield return(result);
            }
        }
示例#3
0
 public void AddXObject(XObjectContentRecord xObject,
                        IPdfTokenScanner scanner,
                        ILookupFilterProvider filterProvider,
                        IResourceStore resourceStore)
 {
     if (top != null && xObject.Type == XObjectType.Image)
     {
         var image = XObjectFactory.ReadImage(xObject, scanner, filterProvider, resourceStore);
         top?.AddImage(image);
     }
 }
示例#4
0
        public IEnumerable <IPdfImage> GetImages()
        {
            foreach (var image in images)
            {
                IPdfImage result = null;
                image.Match(x => { result = XObjectFactory.ReadImage(x, pdfScanner, filterProvider, resourceStore, isLenientParsing); },
                            x => { result = x; });

                yield return(result);
            }
        }
示例#5
0
 public ContentStreamProcessor(PdfRectangle cropBox, IResourceStore resourceStore, UserSpaceUnit userSpaceUnit, bool isLenientParsing,
                               IPdfTokenScanner pdfScanner,
                               XObjectFactory xObjectFactory)
 {
     this.resourceStore    = resourceStore;
     this.userSpaceUnit    = userSpaceUnit;
     this.isLenientParsing = isLenientParsing;
     this.pdfScanner       = pdfScanner;
     this.xObjectFactory   = xObjectFactory;
     graphicsStack.Push(new CurrentGraphicsState());
 }
示例#6
0
 internal PageContent(IReadOnlyList <IGraphicsStateOperation> graphicsStateOperations, IReadOnlyList <Letter> letters,
                      IReadOnlyDictionary <XObjectType, List <XObjectContentRecord> > xObjects,
                      IPdfTokenScanner pdfScanner,
                      XObjectFactory xObjectFactory,
                      bool isLenientParsing)
 {
     GraphicsStateOperations = graphicsStateOperations;
     Letters               = letters;
     this.xObjects         = xObjects;
     this.pdfScanner       = pdfScanner;
     this.xObjectFactory   = xObjectFactory;
     this.isLenientParsing = isLenientParsing;
 }
示例#7
0
 public IEnumerable <IPdfImage> GetImages()
 {
     foreach (var image in images)
     {
         if (image.TryGetFirst(out var xObjectContentRecord))
         {
             yield return(XObjectFactory.ReadImage(xObjectContentRecord, pdfScanner, filterProvider, resourceStore));
         }
         else if (image.TryGetSecond(out var inlineImage))
         {
             yield return(inlineImage);
         }
     }
 }
示例#8
0
 public ContentStreamProcessor(PdfRectangle cropBox, IResourceStore resourceStore, UserSpaceUnit userSpaceUnit, PageRotationDegrees rotation, bool isLenientParsing,
                               IPdfTokenScanner pdfScanner,
                               XObjectFactory xObjectFactory,
                               ILog log)
 {
     this.resourceStore    = resourceStore;
     this.userSpaceUnit    = userSpaceUnit;
     this.rotation         = rotation;
     this.isLenientParsing = isLenientParsing;
     this.pdfScanner       = pdfScanner;
     this.xObjectFactory   = xObjectFactory;
     this.log = log;
     graphicsStack.Push(new CurrentGraphicsState());
     ColorSpaceContext = new ColorSpaceContext(GetCurrentState);
 }