Class SnowDoc

  • All Implemented Interfaces:
    java.lang.Runnable

    public abstract class SnowDoc
    extends java.lang.Object
    implements java.lang.Runnable
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected int bitDepth  
      protected boolean canceled  
      java.lang.String documentID
      Field for storing a user-set document identifier
      protected Snow.SnbdFileio fileHandle  
      int fileSize
      Source file byte count
      int fileType
      File type ID as specified in Snow.Defines
      protected int height
      Page height represented as pixels at input resolution
      protected java.util.Locale locale  
      protected int pageCount  
      protected boolean renderFinished  
      protected boolean renderStarted  
      protected int resolution  
      Snow.Defines.SnowExt snowDocType
      Internal Document Type
      protected static java.util.Date systemDate  
      protected int width
      Page width represented as pixels at input resolution
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected SnowDoc()  
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      int bitDepth()  
      protected abstract void checkPage​(int pageNum)  
      abstract void decompress​(Snow.SnbdFileio fileHandle)
      Parses and lays out content on all pages of the document represented by fileHandle
      byte[] extractText​(int pageNum)  
      byte[] generateImage​(int imgType, int pageNum)
      Converts the specified page to the specified format
      static java.util.Date getDate()  
      int getLastSavedImageSize()  
      java.lang.String getLocale()  
      abstract int getNumberOfPages()  
      java.lang.String getRenderState()  
      abstract byte[] getText()  
      boolean hasPage​(int page)
      Check if a page exists on this Document
      abstract boolean hasText()  
      void interrupt()  
      protected void lambdaCheckPage​(int pageNum, java.lang.Runnable formatPageCheckCode)  
      boolean numberOfPagesReduced()  
      protected abstract void openRaster​(Snowbnd snow, int pageNum)  
      protected abstract byte[] openVector​(int pageNum)  
      abstract double pageHeight()  
      abstract double pageHeight​(int page)  
      abstract double pageWidth()  
      abstract double pageWidth​(int page)  
      byte[] redactRegex​(int pageNum, java.lang.String regexPattern, int redactionColor)
      Searches the specified page for regular expression matches and redacts any matches
      byte[] redactText​(int pageNum, java.lang.String searchString, boolean isCaseSensitive, int redactionColor)
      Searches the specified page for text and redacts any matches
      int resolution()  
      void saveImageAs​(byte[] dataOutput, int imgType, int pageNum)
      Converts the specified page to the specified format and saves it into a provided buffer
      void saveImageAs​(java.lang.String fileSave, int imgType, int pageNum)
      Converts the specified page to the specified format and saves it in a file system
      Snow.SNBD_SEARCH_RESULT[] searchRegex​(int pageNum, java.lang.String regexPattern)
      Searches a page of this document for text that matches the provided regular expression
      Snow.SNBD_SEARCH_RESULT[] searchRegexFromBuffer​(byte[] buff, java.lang.String regexPattern, int[] error)  
      Snow.SNBD_SEARCH_RESULT[] searchText​(int pageNum, java.lang.String searchString, boolean isCaseSensitive)
      Searches a page of this document for a string of text
      Snow.SNBD_SEARCH_RESULT[] searchTextFromBuffer​(byte[] buff, java.lang.String text, int case_sense, int[] error)  
      void setBitDepth​(int depth)  
      void setPageHeight​(int pgHeight)  
      void setPageWidth​(int pgWidth)  
      void setResolution​(int resolution)
      Sets pixels per inch for document layout.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.lang.Runnable

        run
    • Field Detail

      • snowDocType

        public Snow.Defines.SnowExt snowDocType
        Internal Document Type
      • documentID

        public java.lang.String documentID
        Field for storing a user-set document identifier
      • fileType

        public int fileType
        File type ID as specified in Snow.Defines
      • fileSize

        public int fileSize
        Source file byte count
      • resolution

        protected int resolution
      • bitDepth

        protected int bitDepth
      • height

        protected int height
        Page height represented as pixels at input resolution
      • width

        protected int width
        Page width represented as pixels at input resolution
      • pageCount

        protected int pageCount
      • fileHandle

        protected Snow.SnbdFileio fileHandle
      • locale

        protected java.util.Locale locale
      • systemDate

        protected static java.util.Date systemDate
      • renderStarted

        protected volatile boolean renderStarted
      • renderFinished

        protected volatile boolean renderFinished
      • canceled

        protected volatile boolean canceled
    • Constructor Detail

      • SnowDoc

        protected SnowDoc()
    • Method Detail

      • generateImage

        public byte[] generateImage​(int imgType,
                                    int pageNum)
                             throws com.snowbound.rastermaster.exceptions.SnowException,
                                    java.lang.InterruptedException
        Converts the specified page to the specified format
        Parameters:
        imgType - export format as specified in Defines
        pageNum - page to export
        Returns:
        buffer containing converted page
        Throws:
        com.snowbound.rastermaster.exceptions.SnowException
        java.lang.InterruptedException
      • saveImageAs

        public void saveImageAs​(java.lang.String fileSave,
                                int imgType,
                                int pageNum)
                         throws com.snowbound.rastermaster.exceptions.SnowException,
                                java.lang.InterruptedException
        Converts the specified page to the specified format and saves it in a file system
        Parameters:
        fileSave - path to save location
        imgType - export format as specified in Defines
        pageNum - page to export
        Throws:
        com.snowbound.rastermaster.exceptions.SnowException
        java.lang.InterruptedException
      • saveImageAs

        public void saveImageAs​(byte[] dataOutput,
                                int imgType,
                                int pageNum)
                         throws com.snowbound.rastermaster.exceptions.SnowException,
                                java.lang.InterruptedException
        Converts the specified page to the specified format and saves it into a provided buffer
        Parameters:
        dataOutput - byte array to save exported page in
        imgType - export format as specified in Defines
        pageNum - page to export
        Throws:
        com.snowbound.rastermaster.exceptions.SnowException
        java.lang.InterruptedException
      • openRaster

        protected abstract void openRaster​(Snowbnd snow,
                                           int pageNum)
                                    throws com.snowbound.rastermaster.exceptions.SnowException,
                                           java.lang.InterruptedException
        Throws:
        com.snowbound.rastermaster.exceptions.SnowException
        java.lang.InterruptedException
      • openVector

        protected abstract byte[] openVector​(int pageNum)
                                      throws com.snowbound.rastermaster.exceptions.SnowException,
                                             java.lang.InterruptedException
        Throws:
        com.snowbound.rastermaster.exceptions.SnowException
        java.lang.InterruptedException
      • decompress

        public abstract void decompress​(Snow.SnbdFileio fileHandle)
        Parses and lays out content on all pages of the document represented by fileHandle
        Parameters:
        fileHandle - SnbdFileio object that represents the document to decompress
      • getNumberOfPages

        public abstract int getNumberOfPages()
                                      throws java.lang.InterruptedException
        Returns:
        number of pages in the document
        Throws:
        java.lang.InterruptedException
      • pageHeight

        public abstract double pageHeight()
                                   throws java.lang.InterruptedException
        Returns:
        height of the first page
        Throws:
        java.lang.InterruptedException
      • pageHeight

        public abstract double pageHeight​(int page)
                                   throws com.snowbound.rastermaster.exceptions.PageNotFoundException,
                                          java.lang.InterruptedException
        Parameters:
        page - index of page to get the height of
        Returns:
        height of the specified page
        Throws:
        java.lang.InterruptedException
        com.snowbound.rastermaster.exceptions.PageNotFoundException
      • pageWidth

        public abstract double pageWidth()
                                  throws java.lang.InterruptedException
        Returns:
        width of the first page
        Throws:
        java.lang.InterruptedException
      • pageWidth

        public abstract double pageWidth​(int page)
                                  throws com.snowbound.rastermaster.exceptions.PageNotFoundException,
                                         java.lang.InterruptedException
        Parameters:
        page - index of page to get the width of
        Returns:
        width of the specified page
        Throws:
        java.lang.InterruptedException
        com.snowbound.rastermaster.exceptions.PageNotFoundException
      • hasText

        public abstract boolean hasText()
        Returns:
        true if the document contains text
      • getText

        public abstract byte[] getText()
        Returns:
        String (as byte[]) representation of all text in the document
      • hasPage

        public boolean hasPage​(int page)
                        throws java.lang.InterruptedException
        Check if a page exists on this Document
        Parameters:
        page - Zero-Indexed page number.
        Returns:
        True if page exists. False otherwise
        Throws:
        java.lang.InterruptedException - if snowdoc is on a thread, and that thread has been interrupted.
      • checkPage

        protected abstract void checkPage​(int pageNum)
                                   throws com.snowbound.rastermaster.exceptions.PageNotFoundException,
                                          java.lang.InterruptedException
        Throws:
        com.snowbound.rastermaster.exceptions.PageNotFoundException
        java.lang.InterruptedException
      • numberOfPagesReduced

        public boolean numberOfPagesReduced()
                                     throws java.lang.InterruptedException
        Throws:
        java.lang.InterruptedException
      • lambdaCheckPage

        protected void lambdaCheckPage​(int pageNum,
                                       java.lang.Runnable formatPageCheckCode)
                                throws com.snowbound.rastermaster.exceptions.PageNotFoundException,
                                       java.lang.InterruptedException
        Throws:
        com.snowbound.rastermaster.exceptions.PageNotFoundException
        java.lang.InterruptedException
      • searchText

        public Snow.SNBD_SEARCH_RESULT[] searchText​(int pageNum,
                                                    java.lang.String searchString,
                                                    boolean isCaseSensitive)
                                             throws com.snowbound.rastermaster.exceptions.SnowException,
                                                    java.lang.InterruptedException
        Searches a page of this document for a string of text
        Parameters:
        pageNum - index of page to search
        searchString - string to search for
        isCaseSensitive - is the search string case sensitive?
        Returns:
        SNBD_SEARCH_RESULT[] of any matches found
        Throws:
        com.snowbound.rastermaster.exceptions.SnowException
        java.lang.InterruptedException
      • redactText

        public byte[] redactText​(int pageNum,
                                 java.lang.String searchString,
                                 boolean isCaseSensitive,
                                 int redactionColor)
                          throws com.snowbound.rastermaster.exceptions.SnowException,
                                 java.lang.InterruptedException
        Searches the specified page for text and redacts any matches
        Parameters:
        pageNum - index of page to search
        searchString - string to search for
        isCaseSensitive - is the search string case sensitive?
        redactionColor - color to use for redaction painting
        Returns:
        byte[] representation of the page's redacted SNBD_EXTSTREAM
        Throws:
        com.snowbound.rastermaster.exceptions.SnowException
        java.lang.InterruptedException
      • searchRegex

        public Snow.SNBD_SEARCH_RESULT[] searchRegex​(int pageNum,
                                                     java.lang.String regexPattern)
                                              throws com.snowbound.rastermaster.exceptions.SnowException,
                                                     java.lang.InterruptedException
        Searches a page of this document for text that matches the provided regular expression
        Parameters:
        pageNum - index of page to search
        regexPattern - regular expression to search for
        Returns:
        SNBD_SEARCH_RESULT[] of any matches found
        Throws:
        com.snowbound.rastermaster.exceptions.SnowException
        java.lang.InterruptedException
      • redactRegex

        public byte[] redactRegex​(int pageNum,
                                  java.lang.String regexPattern,
                                  int redactionColor)
                           throws com.snowbound.rastermaster.exceptions.SnowException,
                                  java.lang.InterruptedException
        Searches the specified page for regular expression matches and redacts any matches
        Parameters:
        pageNum - index of page to search
        regexPattern - regular expression to search for
        redactionColor - color to use for redaction painting
        Returns:
        byte[] representation of the page's redacted SNBD_EXTSTREAM
        Throws:
        com.snowbound.rastermaster.exceptions.SnowException
        java.lang.InterruptedException
      • searchTextFromBuffer

        public Snow.SNBD_SEARCH_RESULT[] searchTextFromBuffer​(byte[] buff,
                                                              java.lang.String text,
                                                              int case_sense,
                                                              int[] error)
        Parameters:
        buff - SNBD_EXTSTREAM buffer of the page to search
        text - String to search for
        case_sense - is the search string case sensitive?
        error - container for return values
        Returns:
        SNBD_SEARCH_RESULT[] of any matches
      • searchRegexFromBuffer

        public Snow.SNBD_SEARCH_RESULT[] searchRegexFromBuffer​(byte[] buff,
                                                               java.lang.String regexPattern,
                                                               int[] error)
        Parameters:
        buff - SNBD_EXTSTREAM buffer of the page to search
        regexPattern - regular expression to search for
        error - container for return values
        Returns:
        SNBD_SEARCH_RESULT[] of any matches
      • extractText

        public byte[] extractText​(int pageNum)
                           throws com.snowbound.rastermaster.exceptions.SnowException,
                                  java.lang.InterruptedException
        Parameters:
        pageNum - page to extract
        Returns:
        SNBD_EXTSTREAM (as byte[]) representation of specified page
        Throws:
        com.snowbound.rastermaster.exceptions.SnowException
        java.lang.InterruptedException
      • getDate

        public static java.util.Date getDate()
      • getLocale

        public java.lang.String getLocale()
      • setPageHeight

        public void setPageHeight​(int pgHeight)
        Parameters:
        pgHeight - overrides internal page height during image generation
      • setPageWidth

        public void setPageWidth​(int pgWidth)
        Parameters:
        pgWidth - overrides internal page width during image generation
      • bitDepth

        public int bitDepth()
        Returns:
        number of bits per pixel in raster output
      • setBitDepth

        public void setBitDepth​(int depth)
        Parameters:
        depth - sets number of bits per pixel to use during raster output
      • resolution

        public int resolution()
        Returns:
        pixels per inch for document layout
      • setResolution

        public void setResolution​(int resolution)
        Sets pixels per inch for document layout. Must be set before decompress() to effect output.
        Parameters:
        resolution - pixels per inch to use for document layout.
      • getLastSavedImageSize

        public int getLastSavedImageSize()
        Returns:
        The result of the last internally performed Snowbnd operation
      • interrupt

        public void interrupt()
      • getRenderState

        public java.lang.String getRenderState()