Wednesday, May 20, 2015

Updated Software: ByteScout PDF Extractor SDK 6.00.2071

ByteScout updated a developer library ByteScout PDF Extractor SDK 6.00.2071 May 14 2015

What's new ByteScout PDF Extractor SDK 6.00.2071:

  • PDF to XML, PDF To CSV, PDF To Text functionality improved
  • PDF To XLS command line sample added (based on vbscript)
  • PDF To HTML SDK adds new .DetectHyperLinks property (TRUE by default) to enable/disable automated links detection in the text
  • new SearchablePDFMaker (available for PRO licenses) to convert PDF into searchable PDF files
  • new properties in extractor: ConsiderFontNames, ConsiderFontSizes, ConsiderFontColors, ConsiderVerticalBorders in CFG files
  • header columns detection (when AutoAlighHeaderToColumns = true) improved
  • .DetectLinesInsteadOfParagraphs replaced with new .LineGroupingMode to control how lines are merged into paragraphs
  • IMPORTANT! PDF To XML fixes long time issue with incorrect Y coordinate for text objects (was point to the bottom left instead of top left)
  • .TableXMinIntersectionRequiredInPercents and .TableYMinIntersectionRequiredInPercents properties added
  • C++ source code sample added
  • XML Extractor fixes missing empty columns in PreserveFormatting=true mode
  • minor fixes in colors in some PDF files
  • support for multiple OCR languages added
  • PDF Multitool GUI: adds Copy to Clipboard button to TXT, CSV, XML and raster renderer dialogs
  • XLSExtractor: adds PageToWorksheet property to enable/disable generation of separate worksheets per page
  • new .TextEncodingCodePage property
  • PDFViewerControl: adds ValidateContextMenu allowing user to add custom items to context menu
  • PDF Viewer control: adds properties ShowTextObjects, ShowImageObjects, ShowVectorObjects
  • XMLExtractor now adds "OCRConfidence" attribute for recognized text
  • PDF/A checking functionality (in beta)
  • improving controls and text checking and alignment according to the original layout. The issue was caused by the shift of Y coordinates in controls while parsing: that was incorrect. The correct way is to shif...
  • XML Extractor updated: now produces CONTROL tag for checkboxes and text fields
  • changed using of current directory to temp directory
  • checkboxes,radioboxes, editboxes, comboboxes are better supported
  • now allows partial trust callers

Download evaluation version here

Friday, May 15, 2015

Updated Software: ByteScout PDF Multitool 6.00.2071

ByteScout PDF Multitool: automated table detection
ByteScout updated PDF Multitool Utility 6.00.2071 on May 12, 2015. 
It is a free utility to extract data from PDF, convert PDF to CSV, PDF to XML, PDF to XLS or XLSX, PDF to TIFF images, extract file attachments and much much more!

  • "PDF Viewer" was renamed to "PDF Multitool"!
  • PDF to XML, PDF To CSV, PDF To Text functionality improved
  • GUI improved and refined
  • Copy To Clipboard button added to instantly copy the extracted data into the clipboard
  • New line grouping mode option
  • minor fixes and improvements

  • More info about PDF Multitool 6.00.2071 freeware
    Download evaluation version here

    Tuesday, May 12, 2015

    Programming Learning: Hardest part of learning Java?

    Is programming learning hard for you? There are some opinions about learning Java:
    • Opinion 1. For those of you who have gone through Java lessons and teachings, what was the hardest part to understand? My main issue is still dealing with Generics. It's much easier when you have methods with parameters to follow, but gets confusing when you've got to write your own.
    • Opinion 2. Generics and Threading came easy for me as I frequently used C++ STL and PThreads before learning Java. Collection API was probably the most difficult. I understood it but putting it to work and selecting which one was practical to use when was the difficult part.
    • Opinion 3. PerIn the beginning it generics for me too, but I'm more familiar now with what I can do with it. Native interface is difficult for me now, but I think that's because I don't have a lot of experience with it. Just gotta practice.
    • Opinion 4. I'm with you. Using generics was pretty straight forward for me, although writing my own generic classes wasn't. Personally I was shocked with this:

    Since NaN is the only JavaScript value that is treated as unequal to itself, you can always test if a value is NaN by checking it for equality to itself 
    So it means that
    NaN !== NaN
  • Opinion 5. I'm in the process of learning Java now, and I am at the stage of learning about class objects and permissions and soon inheritance and polymorphism. Mos of this is simple, but they're fundamentals, and if someone hasn't handled the concepts before learning them all at once can really give them a headache.
  • photo credit: Stump jumper via photopin (license)

    Friday, May 08, 2015

    Question about Barcode Generator SDK

    Some time ago we received a question and published our answer at the forum:

    Q. We are looking to generate batch of barcodes in Excel. Will your component work with Excel?

    A. Yes, you may use our Barcode Generator SDK with MS Excel, Word or Access via VBA Script like this:

    ' ===========================================
    '1) Add the ActiveX reference in Tools -> References
    '2) Loop through the values from the Column A for which barcode has to be generated
    '3) Parse the value to Bytescout Barcode Object to generate the barcode using QR Code barcode type.
    '4) Save the generated Barcode Image
    '5) Insert the Barcode Image in the Column B
    '6) Repeat the steps 3 to 5 till the last Value in Column A
    Option Explicit
    ' declare function to get temporary folder (where we could save barcode images temporary)
    Declare Function GetTempPath _
    Lib "kernel32" Alias "GetTempPathA" _
    (ByVal nBufferLength As Long, _
    ByVal lpBuffer As String) As Long
    ' function to return path to temporary folder
    Public Function fncGetTempPath() As String
        Dim PathLen As Long
        Dim WinTempDir As String
        Dim BufferLength As Long
        BufferLength = 260
        WinTempDir = Space(BufferLength)
        PathLen = GetTempPath(BufferLength, WinTempDir)
        If Not PathLen = 0 Then
            fncGetTempPath = Left(WinTempDir, PathLen)
            fncGetTempPath = CurDir()
        End If
    End Function
    Sub Barcode_Click()
    'Fetch the Worksheet
    Dim mySheet As Worksheet
    Set mySheet = Worksheets(1)                 'Barcode_Data Sheet
    'temp path to save the Barcode images
    Dim filePath As String
    filePath = fncGetTempPath()            'Change the Path But should end with Backslash( \ )
    'Prepare the Bytescout Barcode Object
    Dim myBarcode As New Bytescout_BarCode.Barcode
    myBarcode.RegistrationName = "demo"         'Change the name for full version
    myBarcode.RegistrationKey = "demo"          'Change the key for full version
    'Barcode Settings
    myBarcode.Symbology = SymbologyType_QRCode  ' QR Code barcode, you may change to other barcode types like Code 39, Code 128 etc
    ' set barcode image quality resolution
    myBarcode.ResolutionX = 300                 'Resolution higher than 250 is good for printing
    myBarcode.ResolutionY = 300                 'Resolution higher than 250 is good for printing
    myBarcode.DrawCaption = True                'Showing Barcode Captions in the Barcode Image
    myBarcode.DrawCaptionFor2DBarcodes = True   ' show captions for 2D barcodes like QR Code
    ' first clean the B column from old images (if any)
    Dim Sh As Shape
    With mySheet
       For Each Sh In .Shapes
           If Not Application.Intersect(Sh.TopLeftCell, .Range("B1:B50")) Is Nothing Then
             If Sh.Type = msoPicture Then Sh.Delete
           End If
        Next Sh
    End With
    ' now generate new barcodes and insert into cells in the column B
    ' Repeat the steps for each row from 2 to 6
    Dim myVal As Integer
    For myVal = 2 To 6                          'change the code to all rows with values
        'Parse the Value from the Column A to Bytescout Barcode Object
        myBarcode.Value = mySheet.Cells(myVal, 1).Text
        'Fit the barcode into 80X30 mm rectangle
        myBarcode.FitInto_3 80, 30, 4           '4 refers to units of measurement as millimeter
        'Save the barcode image to a file in temporary folder
        myBarcode.SaveImage filePath & "myBarcode" & myVal & ".png"
    'Insert the Barcode image to the Column B and resize them to fit the cell.
    With mySheet.Pictures.Insert(filePath & "myBarcode" & myVal & ".png")
        .ShapeRange.LockAspectRatio = True ' lock aspect ratio
        .Left = mySheet.Cells(myVal, 2).Left + 1 ' set left
        .Top = mySheet.Cells(myVal, 2).Top + 1 ' set right
        .PrintObject = True ' allow printing this object
        .Placement = xlMove ' set placement mode to move but do not resize with the cell
        .ShapeRange.ScaleHeight 1, True ' set height scale to 1 (no scale)
        .ShapeRange.ScaleWidth 1, True ' set width scale to 1 (no scale)
    End With
    Next myVal ' move to next cell in the column
    ' Release the Barcode Object.
    Set myBarcode = Nothing
    End Sub

    If you have evaluation version of the ByteScout BarCode Generator SDK installed (you may download it for free from our website) then see
    the "BytescoutBarCodeSDKDemo.xls"
    in *Examples\MS Excel\VBA - Batch Generation*

    Tuesday, May 05, 2015

    Programming Learning: How to Start Learning Game Dev

    Are there some of your questions how to start game developing below?

    "I'm interested in learning a programming language with the ultimate goal of making a multi-player game.

    I'm leaning towards development Javascript, because it seems like many online games write their games in it. My question is what else will I have to learn in regards to programming to get this made? The game will be mostly text based and easy on animation."

    If so, we have some practical advices for you:
    • Learning game development on it's own is a project, let alone designing a multi-player game. It doesn't seem like you've designed a single player game yet, which is something I would recommend. If you're dead set on doing this right now, start with something that supports multiple users, but is basic like a chat app.
    • jQuery could be the way to go since you're looking to make a text-based game and jQuery has the ability to handle simple animation.
    • To code a game you would need extensive knowledge in html, css, php and it's functions to prevent security flaws and what not. Do your homework before making the dive, or you'll wind up quitting before you start.
    • PHP is the best choice for back end development. Use it for creating a simple web-based game from links and websites, then you can implement JavaScript.
    • I'm not an expert but often hear about Unity used among game-development beginners.
    • Also, take a look at the free programming courses listed. Codeacademy really is engaging.
    • Sure thing, just take it slow and understand that it's not going to happen over night. Development is a long term project.
    photo credit: The Gathering 2009 Day Two/Three/Four via photopin (license)

    Friday, May 01, 2015

    Programming Learning: In person offline programming courses!

    Some of these courses are so alluring it almost wants you to take a knowledge road trip. Also, if you're enrolled in college and talk to the office about creating a club, you can probably host your own coding club with other students.
    It's way more fun to learn with friends that's for sure:

    1. Starter League
      A nine-month program where students will learn programming. Based in Chicago.
    2. Galvanize it
      A programming school available in Denver, Co, San Francisco, CA, and Boulder, CO.
    3. Girls Who Code
      Clubs based around the US geared toward teaching girls programming.
    4. Coder Dojo
      A website which supplies prospective students with a directory of in person classes around the US.
    5. Girl Develop It
      Another group geared towards females, this website lists in person programming seminars in cities around the US.
    6. Code Chicago series of hands-on 10-12 Android, iOS, and web programming courses based in Chicago, IL.
    7. Dev Boot Camp
      Another boot camp type, this 19 week course teaches the basics of programming and it’s languages. Based in New York, Chicago, and SF.
    8. App Academy in SF and New York, this 12 week program teaches programming.
    9. Maker Square
      An 11 week course based in both San Francisco and Austin that teaches JavaScript and Ruby.
    10. Nashville Software School
      A 3 month Programming “Boot Camp” based in Nashville, TN.
    11. Epicodus
      A four month in preson class on programming in Portland, OR.
    12. Hacker Coding Academy
      San Francisco based 11-12 week course on Javascript.

    photo credit: DSCN5355 via photopin (license)

    Tuesday, April 28, 2015

    Updated Software: ByteScout Bitmap Visualizer

    ByteScout updated Bitmap Visualizer – free Visual Studio plugin on April 21, 2015. It is a visual studio debugger addon to preview Bitmap and Image objects while debugging.

    What's new Bitmap Visualizer freeware:

    •  Support for Visual Studio 2013 has been added 
    Download evaluation version here