My Projects

Major Projects

1. Auto Galley: As same as Adobe Acrobat ‘Watch Folder’ concept, I have developed a system in Perl. It using 3B2 Typesetting Software for Pagination Purpose. In the Dedicated System, the Auto Galley Tool will continuously watching the assigned folders. If any XML file placed in the “XML” folder, immediately tool will collect the xml and all its relevant details and trigger the respective 3B2 version. In 3B2 Auto Galley Template was constructed on the way it automatically runs the xml in the respective template from the input given by Auto Galley Tool. 3B2 will paginate the article, formatting the tables, placing all the floats respective to their citations. Finally, it will place the article file in the “Pagination” folder, and it will create PDF and place it in the “PDF” folder. After completing the process, it will pass the message to Auto Galley Tool. Then tool will update the HTML log about the whole process. If there are XML errors, Style oriented problems, image missings are all stored in the HTML log.

2. XML Workflow: 3B2 Typesetting Software will Completely support XML based Typesetting. Apart from its own way of handling XML files, it also provide the compatabilities of using all XML features such as XSLT, XPATH, XPOINTER, XQUERY, XML Parser. Also it supports DATABASE Connectivity. I have Developed Templates using all these cutting-edge Technologies. It opens the possibility of delivering all the final deliverables in one stretch, without any pre-conversion or post-conversion. It also helps to create Well-formed and well-structured XML within the process of creating print delivery, without any extra work. In this process,we can create all the following final deliverables without any manual or extra work, when an article is ready for print.

1. Print PDF
2. Web PDF (with Bookmarks, internal & external links, XMP Metadata)
3. XML
4. TeX to Image
5. Tables to Image
6. Figures with web deliverable requirements (jpeg, png, gif formats with various resolutions)

3. XML TO PDF: I have created XSLT for major Publishers DTD, for converting XML to XSL-FO and then from XSL-FO to PDF. For this process, I have used major Open Source softwares such as LIBXML for XML Validation, SAXON for XSL-FO Conversion, FOP for PDF Conversion.

Some of the Tools Developed for Various production purposes

APP (3B2) File ReporterName:APPreporter

Purpose: Selected 3d file has been checked against respective Template and the complete report has been generated for the Following Points:
Margin sizes of each page
Text area sizes of each page
Image Details
Tracking details
Modified and Deleted Tags list
Script: Perl Script
GUI: Perl/Tk

XML Extraction and Postscript Generation from 3B2(APP)Name:APPExtractionPDF


Purpose: Extracting XML/making Postscript files from 3B2 files without Opening 3B2 Application straightaway
Script: Perl Script
GUI: Perl/Tk

Get the list of fonts Used in a 3B2(APP) fileName:APPFontChecker

Purpose: To get List of fonts (Long Name and Short Name) used in a 3d/3f file without opening 3B2 Application
Script: Perl Script
GUI: Perl/Tk

Issue Makeup SheetName:PaginationSheetCreator

Purpose: In the final ISSUE delivery stage Pagination Sheet has been prepared by the Production Team for the purpose of Customer requirement as well as for Costing. In this sheet, Journal Name, Journal Acronym, Volume and Issue Numbers, Total Number of Pages, List of Article Titles with Author Names, First page Number, Last Page Number, Total Pages, Blank Page details, Colour figure details with the Page numbers are all captured in the Customer Specified Word Document Format. All this process takes 2 to 3 hours of manual work (as per Team Coordinator’s report). The total process has been Automated by developing this Tool. It collects the required details from the 3d files of the selected folder (including Sub folders), and creates a Pagination Sheet in Word Document.
Script: Perl Script
GUI: Perl/Tk

List out the Tags used in a 3d file
Name:3B2TagList.pl

Purpose: 3B2 has too many Tag types for Different type of purposes. Without having 3B2 or opening 3B2 we can view the total number of streams with their names used in the selected 3d file, for the following tag types: Text rows, Styles, References, Object Graphics, Raster Graphics, Exception Dictionaries, Kerning Tables, Ligature rows, Index rows, Index Ctrl rows, Contents rows, Contents Ctrl rows, Print Ctrl rows, Arbortext APP Scripts, Maths Definitions, Anchor Ctrl rows, Footnote Ctrl rows, Accolade Ctrl rows, Namespaces, Perl Scripts, XML Text rows, XSL Style Sheets
Script: Perl Script
GUI: Tk

Extracting all the important Details from 3B2 TemplatesName:Collect3B2TemplateDetails.pl
Purpose: To get the all important details such as “Template Name, 3B2 Version, Figure Calling method , LibXml/3b2 Parser, save parser error, comp, Allow 3B2 Variables Enabled or not, Allow 3B2 node Tests Enabled or not, 3b2 global NS, 3b2 to x3b2 NS, ignore XML Declaration enabled or not, ignore undefined entity references enabled or not, replace undefined entity references enabled or not, validate against internal DTD enabled or not, Expand XInclude elements enabled or not, Keep tree if not well formed enabled or not, create links to external files enabled or not, load external files enabled or not, Default Font used in the Template for Running text, Trim Width, Trim Height, Text Width, Text Height, Inside Margin, Number of Cols, versionAlert Name, version Alert for which version, Author Query Template name and path for the respective template, altFigFrm, AllFonts” of the 3d files in the selected folder (including sub folder), for maintenance and updation.
Script: Perl Script
GUI: Tk

Compare two 3B2 filesName:TemplateCompare.pl

Purpose: To compare two 3d files/3f files/3d Vs 3f file
Script: Perl Script
GUI: Tk

To Embed XMP Metadata in the PDFName:xmpPDF.pl

Purpose: To Embed XMP metadata in the PDF files by collecting all the respective details from the source files to generate XMP metadata
Script: Perl Script
Perl Modules: Exiftool
GUI: Tk

Extract XML from 3d FileName:Extract3d.pl

Purpose: To extract xml from the selected 3d or 3d folder with the options of parsing, unicode conversion, XML indentation, removing Processing instructions and Comments without having 3B2
Script: Perl Script
GUI: Tk

Add Line numbers in the PDFName:PSLineNumber.pl
Purpose: To add Line Numbers in the margins exactly straight to each line in the postscript
Script: Perl Script

Publish Against Print files AutomationName:PAPAutomation.pl

Purpose: By reading the customer’s Excel file, collect the paths of the 3d files in the server, and get the informations of in which version 3d file has been processed, Open appropriate version and make PS and Extract XML from the 3d files also listout a log file of the Figures called within each file.
Script: Perl Script
GUI: Tk

Tool for viewing Unicode characters and its DescriptionName: UncodeFontViewer.pl

Purpose: Tool has been developed to view the characters in the Unicode font upto utf-32 encoding method, with its character description.
Script: Perl Script
GUI: Tk

Combine Multiple Special Article XML files in a single 3d fileName:mergeXMLs
Purpose: Many Publishers required Book Reviews, Short Notes, and some special articles needs to be run on for Print Version, whereas for XML deliveries those should be separate XML files with different DOI numbers. So this Perl Script was created in order to Combine Multiple XML files in the given order and Extract them as separate XML files in the Final Delivery.
Script: Perl Script

Get the Article Sequence number list from SQL DatabaseName:Sqlto3b2
Purpose: For Some Publishers they wants to runon the whole issue for Print Version, whereas each article XML should be delivered to Customer as individual XML files. So In order to achieve the above mentioned Print Version requirement, “Sqlto3B2” script has been developed. This Script will prompt the user for Volume number and Issue number. After getting that detail, script will check the Database for XML list with Article Sequence Number details and automatically loads all XML file into the Template in the given sequence number order.
Script: Perl Script

Conitnuous Page Numbering for Chapters residing in different foldersName: AutoPageNumbering
Purpose: If each Chapter/Issue of a Book/Journal is kept in separate sub folders/or same folder within that book folder. Operators need to update Continuous page numbers manually by opening each 3d file. It takes lot of time to make continous page numbering for a Book/Issue. This script was written to avoid this manual process.
Programming Language: Perl
GUI: Perl/Tk

Page Number List for Chapters residing in different foldersName:PageNumberingViewer
Purpose: 3B2 will only show the list of 3d files in a single window if they are in a same folder. Otherwise we cannot view and check the continuous page numbering given for all chapter 3d files of a book residing in various sub folders. The script will solve this problem to view and check all 3d files residing in various subfolders.
Programming Language: Perl
GUI: Perl/Tk

Unicode to Entity ConversionName:unicodeConversion.pl
Purpose: Using Hexadecimal Entities in XML is a emerging Concept and great Advancement in the area of Text encoding. But Operators are very familiar with ISO Entities. Name based ISO entities is more readable and understandable method than the number based Hexadecimal entities for human. So Operators can easily identify a character or add a character if it is used in ISO Entity format. So for the purpose of Human understanding, at the time of loading XML into 3B2, which are all the Hexadecimal entities has its equivalent ISO entities has been converted and reverted back at the final XML extraction stage by using this script.
Script: Perl Script

Advertisements