Dealing with Predictors when decoding PDFs

I've seen a lot of questions about how to "unpredict" Xref streams. The answer usually goes something like "RTFM!"
Well, I have R'd the FM, and it's still complicated. So, to save others the pain I've gone through, here's a slightly more detailed rundown.
A great blog explaining how PNG prediction works (which, yes, can be applied to text) is here:
http://www.atalasoft.com/cs/blogs/rickm/archive/2008/05/02/using-png-predictors-to-enhance -gzip-pkzip-flate-compression.aspx
A fun fact not covered in the blog: PNG prediction happens bottom-up, so when you decode you need to run your algorithm top-down.
Basic steps:
Assuming you've already decoded (inflated, un-gzipped or whatever) the string...
You'll need to know the predictor type and the column width, at a bare minimum. This is provided in the Xref stream dictionary.
-Predictor type will be /Predictor in the /DecodeParms subdictionary. Usually this is 12 (PNG Up prediction)
-Column width will be /W. Usually this is [1 2 1]
Armed with this information:
1) Strip off the last 10 characters of the string. This is the CRC and is unnecessary to extract the raw data.
2) Sum up the column widths. For the example above [1 2 1] would be 4. This is one less than the number of bytes in each row.
3) Split the string into rows by the column width: sum+1, or in our example, 5.
4) The first byte on the row will be the predictor type. You can actually change the predictor line-by-line, though I haven't seen an example of this actually happening. For PNG Up prediction (12, as above), the first byte should be 0x02. You should either strip this off (i.e. assume all lines use the same prediction), or write code to change the algorithm based on this number. The simpler solution, albeit potentially hazardous for your reader, is to strip it off.
5) Either way, you should now have a row equal to the <width> (4 in our example). You now convert the row byte-by-byte. Since PNG Up unprediction works top-down, the first row is already effectively decoded. I create a "prevRow" array with <width> rows, filled with zeroes.
6) Loop through each row, and within that loop loop through each byte in the row. Convert the byte from binary to int and add it to the same byte in the previous row. Pseudocode: unpredictedByte = prevRow[currrentByte] + row[currentByte]
7) Convert the int back to binary. You'll see why in a second.
8) Once you have all your rows unpredicted, loop through them again, splitting them into binary strings based on the W parameter. In our example: 1 2 1. I.e. the first string is 1 byte, the second string is 2 bytes, the third string is 1 byte.
9) Conver the ENTIRE STRING to int (this is why we had to go back to binary, since the strings can be of arbitrary length).
10) Your first column should be the Xref entry type: 0 = f. I.e. a "free" or deleted object. My reader ignores these. 1 = n. I.e. an "in use" object. You'll want to save these for the future. 2 = a compressed object. You'll also want to save these, but they'll require a little more work before they're usable.
11) If our first column is 1 (an in-use object), the second column is the offset address for that object. I add it to my Xref table array.
12) If our first column is 2 (a compressed object), you have to decompress the object stream to get the actual object references and offsets. See PDF Specification section 7.5.7 (page 45).
The code in PHP looks like this:
          $prevRow = array_fill(0, $totalWidth, 0); //Treat prevRow as an array of ints for math
                for($j=0; $j<count($rows); $j++) {
                    $row = substr($rows[$j], 1); //Chop off the filter-type byte (should be 02 for UP prediction)
                    $offsets[$j] = '';
                    //Reconstruct the string character by character
                    for($i=0; $i<strlen($row); $i++) {
                        $decodedByte = ord($row[$i]); //Convert the binary character to an int so we can do math on it
                        $decodedByte = $decodedByte+$prevRow[$i]; //Add the current row's character to the previous row's character
                        $decodedByte = $decodedByte & 0xFF; //Seems pointless to me, but Zend Framework does this
                        $prevRow[$i] = $decodedByte; //Update for our next pass
                        //WARNING: Assumes 1 2 1 column structure.
                        if($i == 0)
                            $types[$j] = $decodedByte;
                        else if($i == 1 || $i == 2)
                            $offsets[$j] .= chr($decodedByte); //Convert back to binary
                        if($i == 3)
                            $generations[$j] = $decodedByte;
                    } //Close for $i
                }//Close for $j

Thanks! But this doesn't seem correct:
$bytesPerRow = ceil($bytesPerComponent/$columns);
I have seen the following usage in some of the open source PDF Viewers:
RowLength = (columns*colors*bpc +7)/8 + (colors*bpc +7)/8 - This is used in PDFBox and XPDF
Alternatively, this also seems to be correct:
RowLength = (columns*colors*bpc +7)/8 + 1
This is the link to the pdf - www.uop.edu.jo/download/PdfCourses/Cplus/The%20MathWorks_2.pdf

Similar Messages

  • How to deal with images when detecting/resizing screen?

    Hi there,
    I am trying to learn how to detect screen resolution and
    resize a flash movie to those dimensions. The one thing I'm
    wondering first is, how to deal with images in the movie.
    Do I need a variety of different movie sizes that I serve up
    depending on the resolution, or is there some way of linking to
    higher rez image that can be scaled down to fit the screen?
    Thanks!

    as far as I know this has always been a bit of an issue when
    using
    images inside a scaled movie. If you display a high res image
    inside a
    scaled down movie, flash can't "reoptimize" it so the image
    looks
    jagged. Of course the other way around is even worse..
    Serving images based on the screen res could be possible if
    you detect
    it using javascript but could be a night mare to maintain and
    test it...
    I guess the questions I would ask myselkf are:
    1. what is my audience? What resolution the majority of them
    will have?
    2. Is there anyway I can keep the image size fixed, and scale
    to fit he
    rest of the design?
    3. How much time do I have to implement the customized
    version?
    It really depends on your project..but to answer to your
    quuestion yes
    you can detect.
    http://www.pageresource.com/jscript/jscreen.htm
    and your flash will have to interpret and load images from
    different
    directories based on the var passed

  • How to deal with NULL when using OCI

    I tried to select some data from a table, and some of them are
    null.
    Can anybody tell me how to deal with the null value?
    Thanks!

    See the documentation on 'indicator variables'. This is the
    correct way of dealing with reading and/or writing NULL data
    for a table.

  • How to deal with security when migrating application from weblogic 5.1 to weblogic 6.1?

    Dear All,
    I have one statement int weblogic 5.1 weblogic.propertis as follow,
    weblogic.security.realmClass=com.tbcn.security.realm.TestRealm
    but after converting to weblogic 6.1 there are no corresponding statement in
    the file config.xml. And when i start the new application, error occured.
    what should I do?
    The error message is:
    <2001/8/27 am 11:33:42> <Notice> <Management> <Loading configuration file
    .\config\tbcn\config.xml
    <2001/8/27 am 11:33:49> <Emergency> <Server> <Unable to initialize the
    server: 'Fatal initializatio
    Throwable: java.lang.NullPointerException
    java.lang.NullPointerException
    at
    weblogic.security.SecurityService.initializeRealm(SecurityService.java:261)
    at
    weblogic.security.SecurityService.initialize(SecurityService.java:115)
    at weblogic.t3.srvr.T3Srvr.initialize(T3Srvr.java:385)
    at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:197)
    at weblogic.Server.main(Server.java:35)
    '>
    The WebLogic Server did not start up properly.
    Exception raised: java.lang.NullPointerException
    java.lang.NullPointerException
    at
    weblogic.security.SecurityService.initializeRealm(SecurityService.java:261)
    at
    weblogic.security.SecurityService.initialize(SecurityService.java:115)
    at weblogic.t3.srvr.T3Srvr.initialize(T3Srvr.java:385)
    at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:197)
    at weblogic.Server.main(Server.java:35)
    Reason: Fatal initialization exception

    Dear Satya,
    My weblogic propertis file as follow,
    # CORE PROPERTIES
    # You should set these before you start the WebLogic Server the first time.
    # If you need more instructions on individual properties in this
    # section, check the same section in the Optional Properties, where
    # we've left the long explanations. Or, better yet, go to our
    # website and read all about properties, at:
    # http://www.weblogic.com/docs51/admindocs/properties.html
    # CORE SYSTEM PROPERTIES
    # TCP/IP port number at which the WebLogic Server listens for connections
    weblogic.system.listenPort=7001
    # CORE SECURITY-RELATED PROPERTIES
    # Read important information about security at:
    # http://www.weblogic.com/docs51/admindocs/properties.html
    # REQUIRED: The system password MUST be set in order to start the
    # WebLogic Server. This password is case-sensitive, at least 8 characters.
    # The username for the privileged user is ALWAYS "system".
    # This username and password also includes httpd access (see
    # HTTPD properties below).
    weblogic.password.system=12345678
    # RECOMMEND Set to 'everyone' if HTTPD is enabled
    weblogic.allow.execute.weblogic.servlet=everyone
    # Set individual ACLs to restrict access to HTTP-related resources,
    # such as the Administration servlets.
    # To make your own servlets generally available, follow this
    # pattern (provide a weblogic.allow.execute) for your packages and
    # set ACLs as appropriate.
    # CORE SECURITY-RELATED PROPERTIES FOR SSL
    # Read important information about SSL at:
    # http://www.weblogic.com/docs51/classdocs/API_secure.html
    # Enable SSL
    # (default if property not defined is false)
    weblogic.security.ssl.enable=true
    # SSL listen port
    weblogic.system.SSLListenPort=7002
    # Servlets for SSL
    # Authentication servlet for creating tokens for applets
    weblogic.httpd.register.authenticated=weblogic.t3.srvr.ClientAuthenticationS
    ervlet
    # Limits number of unclaimed stored tokens
    weblogic.security.certificateCacheSize=3
    # Capture CA root of client servlet
    weblogic.httpd.register.AdminCaptureRootCA=admin.AdminCaptureRootCA
    # Certificates for SSL
    # Name of acceptable CA roots
    # For client authentication change value to a valid .pem file
    #weblogic.security.clientRootCA=SecureServerCA.pem
    # Server certificates for SSL
    weblogic.security.certificate.server=democert.pem
    weblogic.security.key.server=demokey.pem
    weblogic.security.certificate.authority=ca.pem
    # registration for certificate generator servlet
    weblogic.httpd.register.Certificate=utils.certificate
    weblogic.allow.execute.weblogic.servlet.Certificate=system
    # CORE HTTPD ADMINISTRATIVE PROPERTIES
    # True permits the HTTPD to run (default)
    # Uncomment this property to disable HTTPD
    #weblogic.httpd.enable=false
    # If authentication is required, add username/password for each user
    # who will be included in an ACL, as in this commented-out example:
    #weblogic.password.peter=#8gjsL4*
    # SYSTEM PROPERTIES
    # System properties in this section are set to system defaults
    # Performance pack. The shared library must be accessible from your
    # PATH (NT) or from your shared library path (UNIX; the name of the
    # variable varies: LD_LIBRARY_PATH, SHLIB_PATH, etc.)
    weblogic.system.nativeIO.enable=true
    # Outputs logging information to the console as well as to the log file
    weblogic.system.enableConsole=true
    # Sets the directory or URL for the WebLogic Admin help pages
    # The help pages are shipped in the "docs/adminhelp" directory, in the
    # default document root in public_html
    weblogic.system.helpPageURL=/weblogic/myserver/public_html/docs51/adminhelp/
    # If you prefer to access the most recent help pages, you can do so online
    # by commenting out the previous property and uncommenting this one:
    #weblogic.system.helpPageURL=http://www.weblogic.com/docs51/adminhelp/
    # Properties for tuning the server's performance
    # Number of WebLogic Server execute threads.
    weblogic.system.executeThreadCount=15
    # Other optional system properties
    # Limits size of weblogic.log (in K) and versions old log
    weblogic.system.maxLogFileSize=1024
    # Adjust minimum length of password
    weblogic.system.minPasswordLen=8
    # UNIX only: If running on port 80 on UNIX, enable the setUID program
    #weblogic.system.enableSetUID=false
    # UNIX only: Unprivileged user to setUID to after starting up
    # WebLogic Server on port 80
    #weblogic.system.nonPrivUser=nobody
    # CLUSTER-SPECIFIC PROPERTIES
    # Cluster-specific properties in this section are set to system defaults.
    # CLUSTER USERS: Note that ALL Cluster-specific properties should be set
    # in the per-cluster properties file ONLY.
    # Time-to-live (number of hops) for the cluster's multicast messages
    # (default 1, range 1-255).
    #weblogic.cluster.multicastTTL=1
    # Sets the load-balancing algorithm to be used between
    # replicated services if none is specified. If not specified,
    # round-robin is used.
    #weblogic.cluster.defaultLoadAlgorithm=round-robin
    # SERVER-SPECIFIC CLUSTER PROPERTIES
    # Cluster-related properties in this section are set to system defaults.
    # CLUSTER USERS: Note that these server-specific cluster-related properties
    # should be set in the per-server properties file ONLY.
    # Sets the weight of the individual server for the weight-based
    load-balancing.
    # Range is 0 - 100.
    # Larger numbers increase the amount of traffic routed to this server.
    #weblogic.system.weight=100
    # SYSTEM STARTUP FILES - Examples
    # CLUSTER USERS: Note that ONLY startup registrations for pinned RMI
    # objects should be registered in the per-server properties file.
    # All other startup classes should be registered in the per-cluster
    # properties file.
    # For more info on writing and using startup file, see the
    # Developers Guide "Writing a WebLogic Client application," at
    # http://www.weblogic.com/docs51/classdocs/API_t3.html
    # Register a startup class by giving it a virtual name and
    # supplying its full pathname.
    #weblogic.system.startupClass.[virtual_name]=[full_pathname]
    # Add arguments for the startup class
    #weblogic.system.startupArgs.[virtual_name]={argname]=[argvalue]
    # This example shows the entry for examples/t3client/StartupQuery.java
    #weblogic.system.startupClass.doquery=examples.t3client.StartupQuery
    #weblogic.system.startupArgs.doquery=\
    # query=select * from emp,\
    # db=jdbc:weblogic:pool:demoPool
    # SYSTEM SHUTDOWN FILES - Examples
    # For more info on writing and using shutdown file, see the
    # Developers Guide "Writing a WebLogic Client application," at
    # http://www.weblogic.com/docs51/classdocs/API_t3.html
    # Register a shutdown class by giving it a virtual name and
    # supplying its full pathname.
    #weblogic.system.shutdownClass.[virtual_name]=[full_pathname]
    # Add arguments for the shutdown class
    #weblogic.system.shutdownArgs.[virtualName]={argname]=[argvalue]
    # This example shows the entry for examples/t3client/ShutdownTest.java
    #weblogic.system.shutdownClass.ShutdownTest=examples.t3client.ShutdownTest
    #weblogic.system.shutdownArgs.ShutdownTest=\
    # outfile=c:/temp/shutdown.log
    # SECURITY-RELATED PROPERTIES FOR WORKSPACES
    # For backward compatibility, the following entries disable Access
    # Control on Workspaces
    weblogic.allow.read.weblogic.workspace=everyone
    weblogic.allow.write.weblogic.workspace=everyone
    # JOLT FOR WEBLOGIC PROPERTIES
    # These properties configure a BEA Jolt connection pool for use with
    # the simpapp and bankapp examples, and register a servlet for use with
    # with the simpapp example. The default server address provided here
    # points to a public TUXEDO server that is hosted by BEA for use with
    # this example.
    # Servlet registration for simpapp example:
    #weblogic.httpd.register.simpapp=examples.jolt.servlet.simpapp.SimpAppServle
    t
    # Pool creation and cleanup
    # note this example is set up to work with the public
    # demo TUXEDO server available from BEA's website:
    #weblogic.system.startupClass.demojoltpoolStart=\
    # bea.jolt.pool.servlet.weblogic.PoolManagerStartUp
    #weblogic.system.startupArgs.demojoltpoolStart=\
    # poolname=demojoltpool,\
    # appaddrlist=//beademo1.beasys.com:8000,\
    # failoverlist=//beademo1.beasys.com:8000,\
    # minpoolsize=1,\
    # maxpoolsize=3
    #weblogic.system.shutdownClass.demojoltpoolStop=\
    # bea.jolt.pool.servlet.weblogic.PoolManagerShutDown
    #weblogic.system.shutdownArgs.demojoltpoolStop=\
    # poolname=demojoltpool
    # WEBLOGIC ENTERPRISE CONNECTIVITY PROPERTIES
    # The registrations enable a BEA IIOP connection pool and
    # register servlets for use with the simpapp and university examples.
    # Configure for your environment and uncomment to use.
    # Uncommenting these properties requires WebLogic Enterprise Connectivity
    # and an operating WebLogic Enterprise Server.
    # Servlet registration for simpapp servlet example
    #weblogic.httpd.register.SimpappServlet=\
    # examples.wlec.servlets.simpapp.SimpappServlet
    #weblogic.allow.execute.weblogic.servlet.SimpappServlet=everyone
    # Servlet registration for simpapp EJB example
    # (You'll need to add the wlec_ejb_simpapp.jar to the
    # weblogic.ejb.deploy property in this file.)
    #weblogic.httpd.register.ejbSimpappServlet=\
    # examples.wlec.ejb.simpapp.ejbSimpappServlet
    #weblogic.allow.execute.weblogic.servlet.ejbSimpappServlet=everyone
    # Pool creation and cleanup for the simpapp example
    #weblogic.CORBA.connectionPool.simplepool=\
    # appaddrlist=//wlehost:2468,\
    # failoverlist=//wlehost:2468,\
    # minpoolsize=2,\
    # maxpoolsize=3,\
    # username=wleuser,\
    # userrole=developer,\
    # domainname=simpapp
    # Servlet registration for university Servlet example:
    #weblogic.httpd.register.UniversityServlet=\
    # examples.wlec.servlets.university.UniversityServlet
    #weblogic.allow.execute.weblogic.servlet.UniversityServlet=everyone
    # Pool creation and cleanup for the University example:
    #weblogic.CORBA.connectionPool.Univpool=\
    # appaddrlist=//wlehost:2498,\
    # failoverlist=//wlehost:2498,\
    # minpoolsize=2,\
    # maxpoolsize=3,\
    # username=wleuser,\
    # userrole=developer,\
    # apppassword=wlepassword,\
    # domainname=university
    # WEBLOGIC FILE PROPERTIES
    # Maps a volume name to a path, for client file read/write
    #weblogic.io.fileSystem.[volumeName]=[fullPathName]
    # WEBLOGIC JMS DEMO PROPERTIES
    # CLUSTER USERS: Note that ALL JMS deployment should be done in the
    # per-cluster properties file ONLY.
    # You set up a JDBC connection pool if you want persistent messages
    # (including durable subscriptions). To use JMS and EJBs in the same
    # transaction, both must use the same JDBC connection pool. Uncomment
    # the following property to use the default JDBC connection pool
    # 'demo', which is defined in the Demo connection pool section of this file.
    #weblogic.jms.connectionPool=demoPool
    # The JMS Webshare example demonstrates how the ClientID for a
    # durable subscriber is configured in the connection factory:
    #weblogic.jms.topic.webshareTopic=jms.topic.webshareTopic
    #weblogic.jms.connectionFactoryName.webshare=jms.connection.webshareFactory
    #weblogic.jms.connectionFactoryArgs.webshare=ClientID=webshareUser
    #weblogic.httpd.register.webshare=examples.jms.webshare.WebshareServlet
    # The JMS trader example shows how to use JMS with an EJB. In addition
    # to uncommenting the following properties, you must also set up and
    # deploy the EJB example examples.ejb.basic.statelessSession.Trader in
    # ejb_basic_statelessSession.jar to try out this JMS example:
    #weblogic.jms.topic.exampleTopic=javax.jms.exampleTopic
    #weblogic.jms.connectionFactoryName.trader=jms.connection.traderFactory
    #weblogic.jms.connectionFactoryArgs.trader=ClientID=traderReceive
    #weblogic.httpd.register.jmstrader=examples.jms.trader.TraderServlet
    # Registers the underlying servlet
    #weblogic.httpd.register.jmssender=examples.jms.sender.SenderServlet
    # These properties are used with the ServerReceive JMS example,
    # which demonstrates how to establish a JMS message consumer
    # in a startup class:
    #weblogic.system.startupClass.serverReceive=\
    # examples.jms.startup.ServerReceive
    #weblogic.system.startupArgs.serverReceive=\
    # connectionFactory=javax.jms.TopicConnectionFactory,\
    # topic=javax.jms.exampleTopic
    # These properties are used with the PoolReceive JMS example,
    # which demonstrates how to establish a pool of JMS message consumers
    # in a startup class:
    #weblogic.system.startupClass.poolReceive=\
    # examples.jms.startup.PoolReceive
    #weblogic.system.startupArgs.poolReceive=\
    # connectionFactory=javax.jms.TopicConnectionFactory,\
    # topic=javax.jms.exampleTopic
    #weblogic.allow.create.weblogic.jms.ServerSessionPool=everyone
    # WEBLOGIC RMI DEMO PROPERTIES
    # CLUSTER USERS: Note that pinned RMI objects should be registered
    # in the per-server properties file ONLY. All other RMI startup
    # classes should be registered in the per-cluster properties file.
    # Remote classes registered at startup after the pattern:
    #weblogic.system.startupClass.[virtualName]=[fullPackageName]
    # These examples can be compiled to see RMI in action. Uncomment to use:
    #weblogic.system.startupClass.hello=examples.rmi.hello.HelloImpl
    #weblogic.system.startupClass.multihello=examples.rmi.multihello.HelloImpl
    #weblogic.system.startupClass.stock=examples.rmi.stock.StockServer
    # WEBLOGIC EJB DEMO PROPERTIES
    # CLUSTER USERS: Note that ALL EJB deployment should be done in the
    # per-cluster properties file ONLY.
    # See WebLogic Demo Connection Pool below for a connection pool
    # to use with these examples.
    # Deploys EJBeans. Uncomment the appropriate lines below and
    # modify DBMS-related info and paths to match your particular installation:
    # TBCN EJB PROPERTIES
    weblogic.ejb.deploy=\
    C:/weblogic/myserver/AccountSB.jar, \
    C:/weblogic/myserver/AddressEntryDet.jar, \
    C:/weblogic/myserver/AddressEntry.jar, \
    C:/weblogic/myserver/Affiliate.jar, \
    C:/weblogic/myserver/ContactPerson.jar, \
    C:/weblogic/myserver/ContactSB.jar, \
    C:/weblogic/myserver/Factory.jar, \
    C:/weblogic/myserver/FactorySups.jar, \
    c:/weblogic/myserver/LoginUsers.jar, \
    c:/weblogic/myserver/Member.jar, \
    c:/weblogic/myserver/MemberQuotaUsage.jar,\
    c:/weblogic/myserver/MemberToCategory.jar,\
    c:/weblogic/myserver/Organization.jar, \
    c:/weblogic/myserver/Person.jar, \
    c:/weblogic/myserver/QuotaType.jar,\
    c:/weblogic/myserver/Registration.jar, \
    c:/weblogic/myserver/TempAccounts.jar, \
    c:/weblogic/myserver/TempDomain.jar, \
    c:/weblogic/myserver/UserAccount.jar, \
    c:/weblogic/myserver/UserRole.jar, \
    c:/weblogic/myserver/BuyerProducts.jar, \
    c:/weblogic/myserver/Catalog.jar, \
    c:/weblogic/myserver/Categories.jar, \
    c:/weblogic/myserver/CategoryToCategory.jar, \
    c:/weblogic/myserver/CountryToCategory.jar, \
    c:/weblogic/myserver/InvitedMember.jar, \
    c:/weblogic/myserver/ProductOrigin.jar, \
    c:/weblogic/myserver/ProductOtherFee.jar,\
    c:/weblogic/myserver/ProductSups.jar, \
    c:/weblogic/myserver/Products.jar,\
    c:/weblogic/myserver/ProductToCategory.jar, \
    c:/weblogic/myserver/SecondaryQcEntry.jar, \
    c:/weblogic/myserver/CodeClass.jar,\
    c:/weblogic/myserver/ConfirmationSB.jar, \
    c:/weblogic/myserver/PurchasedPackage.jar,\
    c:/weblogic/myserver/RejectReasonCode.jar, \
    c:/weblogic/myserver/ServiceOrder.jar,\
    c:/weblogic/myserver/ServiceOrderLog.jar,\
    c:/weblogic/myserver/ServiceOrderState.jar,\
    c:/weblogic/myserver/ServiceOrderType.jar,\
    c:/weblogic/myserver/ServicePackageDetails.jar, \
    c:/weblogic/myserver/ServicePackage.jar, \
    c:/weblogic/myserver/ServicePayment.jar, \
    c:/weblogic/myserver/ServiceReqSB.jar, \
    c:/weblogic/myserver/TAM.jar, \
    c:/weblogic/myserver/SubscriptionEB.jar, \
    c:/weblogic/myserver/PostingCategoryEB.jar, \
    c:/weblogic/myserver/PostingBrowsedEB.jar, \
    c:/weblogic/myserver/PostingInfoEB.jar, \
    c:/weblogic/myserver/TransactionLogEB.jar, \
    c:/weblogic/myserver/PostingSB.jar
    #weblogic.ejb.deploy=\
    # d:/weblogic/myserver/ejb_basic_beanManaged.jar, \
    # d:/weblogic/myserver/ejb_basic_containerManaged.jar, \
    # d:/weblogic/myserver/ejb_basic_statefulSession.jar, \
    # d:/weblogic/myserver/ejb_basic_statelessSession.jar, \
    # d:/weblogic/myserver/ejb_extensions_finderEnumeration.jar, \
    # d:/weblogic/myserver/ejb_extensions_readMostly.jar, \
    # d:/weblogic/myserver/ejb_subclass.jar, \
    # d:/weblogic/myserver/jolt_ejb_bankapp.jar
    # Servlet used by the EJB basic beanManaged example
    # Uncomment to use:
    weblogic.httpd.register.beanManaged=\
    examples.ejb.basic.beanManaged.Servlet
    # Add a list of users (set the password with
    weblogic.password.[username]=XXX)
    # to set an ACL for this servlet:
    #weblogic.allow.execute.weblogic.servlet.beanManaged=user1,user2,etc
    #weblogic.password.user1=user1Password
    #weblogic.password.user2=user2Password
    # WEBLOGIC XML DEMO PROPERTIES
    # These properties are required to run the XML examples.
    # Uncomment to use.
    # CLUSTER USERS: Note that ALL servlets should be set up
    # in the per-cluster properties file ONLY.
    #weblogic.httpd.register.StockServlet=examples.xml.http.StockServlet
    # BizTalk example properties
    #weblogic.jms.queue.tradeIncoming=biztalk.jms.tradeIncoming
    #weblogic.jms.queue.tradeError=biztalk.jms.tradeError
    #weblogic.httpd.register.BizTalkServer=examples.xml.biztalk.BizHttpProtocolA
    dapter
    #weblogic.httpd.initArgs.BizTalkServer=bizQueue=biztalk.jms.tradeIncoming
    # WEBLOGIC ZAC DEMO PROPERTIES
    # These registrations enable the ZAC Publish Wizard.
    weblogic.zac.enable=true
    # Set the publish root for a WebLogic Server. Edit and
    # uncomment to use.
    #weblogic.zac.publishRoot=d:/weblogic/zac
    # Set an ACL for each package you publish. The [name] is
    # the "Package name" you assign in the ZAC Publish Wizard.
    # Publish a package, edit this property, and uncomment to use.
    #weblogic.allow.read.weblogic.zac.[name]=[user list]
    #weblogic.allow.write.weblogic.zac.[name]=system
    # HTTPD ADMINISTRATIVE PROPERTIES
    # Enables logging of HTTPD info in common log format and
    # sets the log file name (default is "access.log" in "myserver")
    weblogic.httpd.enableLogFile=true
    weblogic.httpd.logFileName=access.log
    # Tracks HTTPD requests with events delivered to WEBLOGIC.LOG.HTTPD
    weblogic.httpd.enableEvents=false
    # Enables HTTP sessions
    weblogic.httpd.session.enable=true
    # Sets an optional cookie name. The default name is "WebLogicSession".
    # Prior to version 4.0, the default was "TengahSession". To make
    # this backward compatible with cookies generated from previous
    # installations, you should set this property to "TengahSession".
    # Uncomment this line and set this to any string of your choice,
    # or comment out this property to use the default.
    #weblogic.httpd.session.cookie.name=WebLogicSession
    # MIME types
    weblogic.httpd.mimeType.text/html=html,htm
    weblogic.httpd.mimeType.image/gif=gif
    weblogic.httpd.mimeType.image/jpeg=jpeg,jpg
    weblogic.httpd.mimeType.application/pdf=pdf
    weblogic.httpd.mimeType.application/zip=zip
    weblogic.httpd.mimeType.application/x-java-vm=class
    weblogic.httpd.mimeType.application/x-java-archive=jar
    weblogic.httpd.mimeType.application/x-java-serialized-object=ser
    weblogic.httpd.mimeType.application/octet-stream=exe
    weblogic.httpd.mimeType.text/vnd.wap.wml=wml
    weblogic.httpd.mimeType.text/vnd.wap.wmlscript=wmls
    weblogic.httpd.mimeType.application/vnd.wap.wmlc=wmlc
    weblogic.httpd.mimeType.application/vnd.wap.wmlscriptc=wmlsc
    weblogic.httpd.mimeType.image/vnd.wap.wbmp=wbmp
    # In seconds, the keep-alive for HTTP and HTTPS requests
    weblogic.httpd.http.keepAliveSecs=60
    weblogic.httpd.https.keepAliveSecs=120
    # WEBLOGIC JDBC DRIVER PROPERTIES
    # Enables JDBC driver logging and sets the file name for the log
    # The weblogic.jdbc.logFile is placed in the per-server
    # directory (default is "myserver")
    weblogic.jdbc.enableLogFile=false
    weblogic.jdbc.logFileName=jdbc.log
    # WEBLOGIC JDBC CONNECTION POOL MANAGEMENT
    # CLUSTER USERS: Note that ALL JDBC connection pools should be set up
    # in the per-cluster properties file ONLY.
    # For creating JDBC connection pools. This example shows a connection
    # pool called "oraclePool" that allows 3 T3Users "guest," "joe," and "jill"
    # to use 4 JDBC connections (with a potential for up to 10 connections,
    # incremented by two at a time, with a delay of 1 second between each
    # attempt to connect to the database), to an Oracle database server called
    # "DEMO." If more than 4 connections are opened, after 15 minutes, unused
    # connections are dropped from the pool until only 4 connections remain
    open.
    # Every 10 minutes, any unused connections in the pool are tested and
    # refreshed if they are not viable.
    #weblogic.jdbc.connectionPool.oraclePool=\
    # url=jdbc:weblogic:oracle,\
    # driver=weblogic.jdbc.oci.Driver,\
    # loginDelaySecs=1,\
    # initialCapacity=4,\
    # maxCapacity=10,\
    # capacityIncrement=2,\
    # allowShrinking=true,\
    # shrinkPeriodMins=15,\
    # refreshMinutes=10,\
    # testTable=dual,\
    # props=user=SCOTT;password=tiger;server=DEMO
    # Get more details on each argument for this property in the
    # Administrators Guide on setting properties at:
    # http://www.weblogic.com/docs51/admindocs/properties.html
    # Set up ACLs for this connection pool with the following:
    weblogic.allow.reserve.weblogic.jdbc.connectionPool.oraclePool=everyone
    # guest,joe,jill
    #weblogic.allow.reset.weblogic.jdbc.connectionPool.oraclePool=\
    # joe,jill
    #weblogic.allow.shrink.weblogic.jdbc.connectionPool.oraclePool=\
    # joe,jill
    # This property is an ACL that specifies the users who can
    # create dynamic connection pools:
    #weblogic.jdbc.connectionPoolcreate.admin=joe,jill
    # Read more about setting up and using connection pools in the
    # developers guide for WebLogic JDBC at:
    # http://www.weblogic.com/docs51/classdocs/API_jdbct3.html#T5a
    # TBCN JDBC CONNECTION POOL MANAGEMENT
    weblogic.jdbc.connectionPool.oraclePool=\
    url=jdbc:oracle:thin:@202.109.102.151:1521:tbcn,\
    driver=oracle.jdbc.driver.OracleDriver,\
    loginDelaySecs=1,\
    initialCapacity=2,\
    maxCapacity=10,\
    capacityIncrement=2,\
    allowShrinking=true,\
    shrinkPeriodMins=15,\
    refreshMinutes=10,\
    testTable=dual,\
    props=user=tbcn;password=ca91768
    weblogic.allow.reserve.weblogic.jdbc.connectionPool.oraclePool=everyone
    weblogic.jdbc.TXDataSource.oracleDataSource=oraclePool
    weblogic.jdbc.DataSource.oracleReadOnlyDataSource=oraclePool
    # WEBLOGIC DEMO CONNECTION POOL PROPERTIES
    # CLUSTER USERS: Note that ALL JDBC connection pools should be set up
    # in the per-cluster properties file ONLY.
    # This connection pool uses the sample Cloudscape database shipped
    # with WebLogic. Used by the EJBean, JHTML, JSP and JMS examples.
    # Uncomment to use:
    #weblogic.jdbc.connectionPool.demoPool=\
    # url=jdbc:cloudscape:demo,\
    # driver=COM.cloudscape.core.JDBCDriver,\
    # initialCapacity=1,\
    # maxCapacity=2,\
    # capacityIncrement=1,\
    # props=user=none;password=none;server=none
    # Add a TXDataSource for the connection pool:
    #weblogic.jdbc.TXDataSource.weblogic.jdbc.jts.demoPool=demoPool
    # Add an ACL for the connection pool:
    #weblogic.allow.reserve.weblogic.jdbc.connectionPool.demoPool=everyone
    # WEBLOGIC HTTP SERVLET PROPERTIES
    # CLUSTER USERS: Note that ALL servlets should be set up
    # in the per-cluster properties file ONLY.
    # WebLogic offers different types of servlets for various uses.
    # Classpath servlet registration
    # The ClasspathServlet is used to serve classes from
    # the system CLASSPATH. It is used by applets to load
    # classes they depend upon, and is registered against
    # the virtual name 'classes' here by default. This means
    # you should set your applet codebase to "/classes".
    # You can register multiple virtual names for this servlet.
    # Note that it can also be used to serve other
    # resources/files from the system CLASSPATH.
    # Don't confuse the ClasspathServlet with the ServletServlet. The
    # ClasspathServlet is used for serving classes for client-side Java only.
    # The ServletServlet is used to invoke unregistered servlets.
    # See the Administrators Guide "Setting up WebLogic as an HTTP server"
    # http://www.weblogic.com/docs51/admindocs/http.html#classfile for more
    info.
    weblogic.httpd.register.classes=weblogic.servlet.ClasspathServlet
    # We also set an open ACL for everyone to call the ClasspathServlet
    # so that applets work without requiring further changes.
    weblogic.allow.execute.weblogic.servlet.classes=everyone
    # File servlet registration
    # FileServlet searches below the documentRoot for the requested file
    # and serves it if found. If the requested file is a directory,
    # FileServlet will append the defaultFilename to the requested path
    # and serve that file if found.
    weblogic.httpd.register.file=weblogic.servlet.FileServlet
    weblogic.httpd.initArgs.file=defaultFilename=index.html
    weblogic.httpd.indexFiles=zh_TW/index.htm
    # ServerSideInclude servlet registration
    # SSIServlet searches below the documentRoot for the
    # requested .shtml file and serves it if found.
    weblogic.httpd.register.*.shtml=weblogic.servlet.ServerSideIncludeServlet
    # Example URL: http://localhost:7001/portside/welcome.shtml
    # for the file /weblogic/myserver/public_html/portside/welcome.shtml
    # PageCompileServlet (used by JHTML)
    # See the information below under WebLogic JHTML
    # JSPServlet (used by JSP)
    # See the information below under WebLogic JSP
    # ServletServlet registration
    # Allows unregistered servlets in the servlet classpath (see Servlet
    # reload properties below) to be r

  • Problem with fonts when reading PDFs

    Hi,
    I have just updated my PC to Windows 7 and Adobe Reader 9.2.
    When I open PDF files I've previously viewed OK they now are shown with Adobe fonts.
    Some always, some may be OK the first time but not subsequently and some don't have the problem.
    I assume the ones that are OK were produced with a different PDF creator package?
    What's changed in Adobe 9/Windows 7?
    Thanks

    Thanks for taking the time to answer Claudio.
    I understand what you are saying but these documents are ones I've been accessing every week for the last year and have only just started getting the problem.
    I also notice that the ones that I don't have a problem with were created with a different program, earlier than the others as the guy who produces them had changed the program he uses.
    If I haven't already said, I have successfully opened one of the problem ones and it was OK, closed it and re-opened it and I get the Abobe font instead of the Times New Roman.

  • Permissions with problem when encrypting pdf with certificate

    I am using the following javascript code to encrypt a pdf using a certificate:
                        var thePermissions = {
                             allowAll: false,
                             allowAccessibility: false,
                             allowContentExtraction: false,
                             allowChanges: "none",
                             allowPrinting: "none"
                         var theCertificate = security.importFromFile(
                             "Certificate",
                             "/c/user.cer"
                         var theUserEntity = {
                             firstName: "The",
                             lastName: "User",
                             fullName: "The User",
                             certificates: theCertificate,
                             defaultEncryptCert: theCertificate
                         var theGroup = { userEntities: [ theUserEntity ], permissions: thePermissions };
                         encryptForRecipients( { oGroups: [ theGroup ] } );
                        saveAs("encrypted.pdf");
    The file "encrypted.pdf" resulting is in fact encrypted, but the permissions doesn't seem to be correct. For instance, the Document Properties show that there are no document restrictions (DocumentProperties.PNG), but when the details are shown, it seems that the correct restrictions apply (DocumentSecurity.PNG). As can be seen in the permissions variable, there should be no permissions to the pdf generated. Can someone possibly help me with this?
    Additional info: there should have no human interaction in the process, the certificate is not fixed (preventing using encryptUsingPolicy), and will be selected based on the file name of the original pdf.

    Hi Leonard,
    I see the same thing executing the script from the JavaScript console. There is a slight wrinkle in the steps to reproduce. Even if everything worked as it's supposed to, you would still need to close and then reopen the file in order to get the perm restrictions to take effect. This is because when you initially encrypt the file you are still the document owner, and thus none of the perms have yet taken effect. However, once you do close and then reopen the file (thus forcing an authentication), the file should open with the perms being enforced, but alas, they are not.
    Interestingly, if you go into the Document Properties and then select the Security tab (or just click the Permissions Details button in the DMB) you see that the Restriction Summary shows that everything is allowed, but when you click the Show Details button, which just displays the restrictions applicable to the encryption handler, it shows the correct settings. Of course the real bug isn't that the restriction summary is incorrect, but rather that it is correct and all of the supposedly restricted operations are allowable.
    I'll enter this as a bug against 10 along with the ER to add the encryption algorithm as an option to the encryptForRecipients JS function.
    Steve

  • Stop/start of BW 7.0 system-- how to deal with deltas when moving instance?

    Dear BW guru's,
    we are moving a BW 7.0 system to a new datacenter, where the R3 source systems remain the same.
    What should we consider when we want to stop the system, move it, and restart the next day, when the source systems cannot be stopped?
    Specifically I may need to clear the delta queues in BW before stopping and moving the system.
    After the system has been installed in it's new location, can we just the delta process chains without any other action, and will it extract the delta's from source system where it left of before?
    is there something I am overlooking?
    thanks for tapping your collective brainpower,
    -jh

    Hi,
    When you are miving instance and source would be on during that period then you may look for follwoing.
    Stop the loads and resume the delta after movement.
    If there are some jobs for fetching data in R3/ for BW data source then those needs to be stopped and rescheduled as some time those jobs define the delta in BW.
    If there are pseudo delta or some hardcoding for extracting delte then need to take care of the as well.
    I hope it will help.
    Thanks,
    S

  • Dealing with concurrency when accessing BO

    Hi,
    I'm currently facing the following problem. I have kind of a "singleton" BO which manages number ranges for BOs. The generation of new IDs happens in the "before save" action of the respective BO. Now assuming two BOs are saved at the same time (by different users) they both can get the same ID. Does anybody know how I can aquire somthing like a lock while saving until the save transaction is completed?
    - Daniel

    Hi Daniel,
    ok, I know the problem of locking in ByDesign...you could try the following steps:
    1. Before you execute the save operation, you execute a new action "LockingTest" (UI-Designer event handler entry)
    2. In this action you manipulate a value in your singelton BO, e.g.:
    Singelton.value1 = Singelton.value2
    3. After that you can check in UI-Designer if an error is occured ($controller.ErrorOccured) (ruby script in event handler)
    4. If you get no error, the business object is locked for you (otherwise it is locked by another user/BO)
    I had to check it in a seperate window (modal dialog)...was in FP2.6...I don`t know if it now works in same window...
    5. now you can generate and set a new ID
    6. save your BO (singelton BO will automatically saved as well)
    7. Now your singelton is unlocked again
    Save operations always depend on your current UI screen. Only if you save in UI, changes will be written back in database and only if you execute a action and come back to UI, you can lock BOs (FP2.6, FP3.0?).
    I used similar steps for one of my developments...not very elegant but it worked for me. Currently, I can not access my old UI code (solution in in maintance mode) but I think I can do it again next week...so if you have further question...
    I hope it works for you too...
    Regards,
    Andreas

  • How to create a hyperlink when exporting .pdf?

    Hi guys,
    I've been doing quite a bit of research on how to make an object into a hyperlink when exporting my .ai as .pdf.
    So far I've come across guides that show the method of using Object > Slice and the Attributes' Image Map, but none of them seem to work when I open my exported .pdf.
    How do you guys create objects with links when exporting .pdf?
    Thanks in advance.

    InDesign, most probably.
    Or create the PDF in Illustrator and use Acrobat (Pro) afterwards to make links.
    Depends on what's inside the document.

  • Error in dealing with parameters

    I am facing a very strange problem with sting parameters
    i use a method that deals with string when i give it the sting as a static value it works
    but when i try to get a value fron the DB and give this value to the method it doesn't work
    Sample
    Test("Test") ; works
    String test="";
    doesn't work
    so any idea about this issue

    That's right kayaman -- I see you are sea worthy on our new ship.
    To the OP, kayaman gave you the correct information so I will not elaborate on it. However, my concern is with your casual use of the word parameter. In java, when you define a method like so:
    public class MyClass
      public int getValueAt(int index)
        // blah, blah, blah
    }<tt>int index</tt> is the PARAMETER(s) of the method. Now, when you call the method in a program:
    MyClass mc = new MyClass();
    int n = mc.getValueAt(10);The <tt>10</tt> becomes the ARGUMENT(s) to the method. In other words, the argument(s) you pass to the method during runtime, must fit the parameter(s) of the method when you defined it.
    Edited by: pierrot_2 on Sep 26, 2010 9:54 AM

  • Dealing with X crashes

    Hey all,
    I play a lot of games via PoL/WINE, and I was curious about something: how do you guys deal with X when it crashes? In the past, I would always just CTRL+ALT+F1 into a TTY and kill the process. But since HAL has been depreciated and keyboard/mouse control now belongs to X, I'm basically forced to reboot the whole machine. Being the control-freak and rageaholic that I am, a kitten dies every time I have to reboot my computer just to reset X. Are there any good systems out there that take input handling away from X?
    Cheers,
    ~Cronanius

    brebs wrote:
    This makes little sense. If X has crashed, why does it need to be killed? It will be dead already.
    HAL was deprecated (note that word, it's not "depreciated") aons ago - how is that relevant?
    In my experience, a naughty wine game doesn't prevent Ctrl-Alt-F1.
    +1
    I run wine in a separate X and I can go back to my regular X session and kill the rogue one. It's useful when I run into some display problems - the monitor turns itself off and I often can't kill the game blind. If X running wine had already crashed, I'm back in the console.

  • Since 10.4.6 Update: "ATSServer" with high CPU-usage when opening PDFs

    Since I've updated to 10.4.6 my system is very slow when I open PDFs (in "Preview" or "Acrobat").
    This is caused by the process "ATSServer" which goes through every file in "~/Library/Fonts" (I have over 4.800 files there - but just a view are activated by "FontBook") and so it takes very high CPU-usage.
    I didn't have this problem bevore the update and I didn't make any changes on my font settings.
    I've cleaned the font cache, but it doesn't help.
    Any ideas?
    Ciao
    Mephizo
    PS: Excuse my poor English.
    PowerBook G4 17'' 1.67 GHz   Mac OS X (10.4.6)  
    PowerBook G4 17'' 1.67 GHz   Mac OS X (10.4.6)  

    I haven't noticed any change myself, Dan, but I have the 2 GHz model.
    One thing I HAVE noticed though after OS updates is that they can often result in a fair amount of file and free space fragmentation immediately after installation. OSX's routines will deal with fragmentation of small files , but not of large ones (over 20 Meg), and it won't deal very effectively with free space fragmentation. If your HD is getting full this can cause significant slowdowns, especially where video is involved.
    You should also run DiskUtility and check for any directory and permissions issues.
    Cheers
    Rod

  • Chinese characters copying incorrectly when saving pdfs with Preview

    So this is a very strange problem. When I save a .pdf that I have annotated in Preview, it saves fine and everything continues to display correctly. However, if I then try to copy Chinese characters from the pdf, it pastes gibberish. F'rex:
    灿烂辉煌 becomes "3456"
    and
    遇到的问题 becomes " !"
    Does anyone know what is going on and how to deal with it?

    The strange part is that initially the Chinese characters copy fine. It's only after I save the .pdf that copying goes all wonky.
    I think there is a bug related to annotation.
    Is there any way to control what encoding Preview uses when saving?
    No. PDF is the worst possible format to use for any kind of editing.
    Have you tried Adobe Reader? Or Skim?
    http://skim-app.sourceforge.net/
    Preview is not always the best option.

  • Need help with Adobe barcode decoder version 7.0 (PDF 417), changing the service logon user id

    Hello I am fairly new to the adobe barcode decoder (PDF 417) application. We have an application that was developed about a while ago, now we are in the process of hosting the whole service in a new machine. Before hosting in new machine we were testing few things in the existing system; currently the adobe barcode decoder is running on an windows server 2003 with the "Local system account" in the Log on tab of the service. We would like to test whether the service can be run using an NT account. We did change the account from LocalSystem to one of the network account and when we start the service, it will stop immediately and getting the following error in the event log.
    Event Type: Error
    Event Source: AdobeBarcodeDecoder
    Description:
    The description for Event ID ( 1 ) in Source ( AdobeBarcodeDecoder ) cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer. The following information is part of the event: Problem with the USB key: INITIALIZE.
    any help to solve this issue is really appreciated. We checked the access rights of the account that is trying to run the service and the account is part of the local administrators group. But When we change the service account back to "Local System Account" it is working fine. Any idea or am I missing any step?
    Thanks
    Suganya

    I just saw several of the following errors in the WindowsUpdate.log on one of my clients which prompted me to look closer, but this may not have correlation:
    2015-02-17 06:39:01:095
    112 4fc
    DtaStor JetSeek failed to find a record
    However, software updates are deploying and installing just fine it seems. I did update my Site Server yesterday manually, like I always do after every Patch Tuesday. 
    Am I not supposed to patch my Site Server manually, or should I add it to the Software Update Management scheme I have set up in SCCM? 
    Thanks

  • Trying to drag pdf files i have and combine them into one pdf file in the account i just purchased with Adobe. when i drag a pdf file over Adobe doesn't accept it. says it can not convert this type of file. but it is an Adobe file. Do I need to change it?

    Trying to drag pdf files i have and combine them into one pdf file in the account i just purchased with Adobe. when i drag a pdf file over Adobe doesn't accept it. says it can not convert this type of file. but it is an Adobe file. Do I need to change it in some other form befor dragging it?

    Hello djensen1x,
    Could you please let me know what version of Acrobat are you using.
    Also, tell me your workflow of combining those PDF files?
    Please share the screenshot of the error message that you get.
    Hope to get your response.
    Regards,
    Anubha

Maybe you are looking for

  • Finder won't open when I click on the icon

    OSX Yosemite iMac 21.5 in , late 2009 Processor 3.06 GHz Intel Core 2 Duo Memory 8 GB 1067 MGz DDR3 NVIDIA GeForce 9400 256 MB Out of the blue my Finder App will not open when I click the icon.  Finder will open if I click and hold the Finder icon an

  • Repository Administration Utility - error while adding a new user

    Hello all, I'm currently experiencing some difficulties when I try to add a new user with the RAU tool. First I had problems installing the repository, in the CJSYSFOL stage (ORA-04063: package body "REPOS_MANAGER.JR_REG_IO" has errors). After granti

  • Inetd service/program crashes with core dump in Solaris 8 zone/container

    I have developed a service in C that is launched from inetd when something comes on a specific port. When a connection is opened to the port a core dump is created in the same directory where the executable file is located. If you run the same servic

  • Using email to send photos

    In using Apple mail as the application for iphoto, every time I send to pc users (which is a lot) I get responses back asking me to resend as an attachment in jpeg form. I am doing that, but they say they can't save them or even right click and save

  • Differences between AIX and Windows for SAP

    Dear All, I have a problem regarding SAP Software.We want to change our company software .First we order SAP On Windows with Oracle10g But Now We want SAP on AIX with Oracle10g. SAP delivered us software on Windows platform. Please Suggest me for thi