AFPexplorer
|
|
|
|
|
|
|
|
|
|
This program was written to help me write other programs for working with AFP
files. I use this program whenever I am doing low-level AFP development. It
lists all structured fields, and all values (to the best of my knowledge).
Also, I've recently added the ability to render objects, and a built-in
hex-editor.
|
|
History:
01-06-2012:
Significantly increased speed of PTX processing. Most noticeable on huge PTX
fields with 20,000+ characters.
Added a "Render Object" button, that appears when a renderable field is
selected. This functionality previously required a right-click on the field
type.
01-05-2012:
Added some tolerance for segmented PTX fields, to avoid crashing the program.
Not complete yet.
09-11-2011:
Added extraction of PFB fonts. (experimental)
09-09-2011:
Search for PTX/NOP text now works better.
09-06-2011:
Added FontNames (and point size if available) to SCFL in PTX breakdown. This
will only work for text contained in an object with an MCF field.
Font-selection in the "View Field Data" window now works again. Didn't know it
was broken.
Added some info for FNN field. Then removed it.
Fixed ASCII/EBCDIC toggle in File Properties.
09-02-2011:
Fixed CPI breakdown not working with DBCS fonts.
08-26-2011:
Added support for new AFP field type: MMD. Need to test.
Added some support for new BCOCA barcode type: Royal Mail RED TAG.
Added support for Code128 Modifier 5 (Intelligent Mail Container Barcode).
07-19-2011:
Added 'Go To Resource' in the 'Contents' menu. Just enter a resource name.
05-31-2011:
Fixed missing information for GAD command CFARC.
Cleaned up some formatting of decimal numbers.
When rendering BCOCA objects, the barcode will be drawn with red debug marks,
indicating the separation of character-codes within the barcode.
05-27-2011:
BDD data now displays more accurately.
Fixed a bug with IPD data parsing image data vs commands.
Fixed GOCA extended color 8 being treated as white instead of black. Unsure of
exactly how to handle extended color 7.
For GAD breakdown, color commands now display the color-code, as well as the
translated color-name.
A single-click of either mouse button on the RenderedObject window will bring up
the prompt to change the Zoom level. This used to require a double-click.
05-25-2011:
Fixed display of BarcodeType for barcodes: PostNet, RM4SCC, OneCode.
Changed display of barcode data to show Ascii/Ebcdic data instead of hex.
05-23-2011:
Added the ability to extract resources to a single resource-group file.
Added drag-and-drop functionality to the program.
Added the ability to search for text in NOP fields, just like PTX fields.
Fixed an error when parsing certain IPD fields containing the Image LUT-ID
Parameter.
1-bit images using the color of PaperColor or White are now displayed against a
gray background when rendering the individual object.
The scroll bars on the RenderObject window now scroll the rendered image, like
they are supposed to do.
05-20-2011:
Added PtSize value to MCF field.
05-17-2011:
Added support for BSG and ESG (Begin Resource Environment Group, and End
Resource Environment Group) fields.
Fixed code for MDR field not showing resource name unless resource type was an
image.
05-16-2011:
Added a detailed breakdown for FNI fields.
Added a detailed breakdown for CPI fields, but this one is more complicated and
might not always work..
04-08-2011:
Updated PTX_SEC display to reflect the encoding used in the data, instead of
always converting the color to RGB.
02-03-2011:
Added support for RIDIC encoding.
Fixed rendering for 8-bit JPEG data.
Fixed support for short MDD fields.
01-27-2011:
More fixes to redering code. This time, images where IDD size is not correct.
01-26-2011:
Updated GOCA code, and rendering code.
11-27-2010:
Updated rendering code to support LZW compressed images.
11-18-2010:
Even more updated support for LND field.
11-15-2010:
Updated support for LND field.
09-16-2010:
Fixed handling of IPS field with X or Y offset value set to xFFFFFF.
07-29-2010:
New feature: Change MediumMap. Right-click on an IMM field to change the
reference.
Fixed a bug that would treat both an IMM and a BPG as new pages if other fields
(such as NOPs) occurred between the IMM and the BPG.
07-28-2010:
New feature: Add Resources. Right-click on a BDT field and choose 'Add
Resources'. This works, but currently does not check for duplicate resources.
07-13-2010:
Updated rendering code. Many fixes to GOCA rendering.
07-12-2010:
Fixed an issue with the SaveAs window, where the lists were not being cleared,
but were being re-populated.
Added the ability for a list to search by more than one typed character. I
think .Net broke this along the way.
07-08-2010:
Fixed an issue with the SaveAsText functionality, where some checked fields were
not being exported, due to a sorting error (ie Lack of Sorting).
06-30-2010:
Fixed an error that would occur when expanding a field if all the fields fit
exactly on one screen after expansion.
06-25-2010:
Fixed an error that prevented the program from opening an IPDS file through
commandline or file-association (but browsing and opening the file worked).
06-24-2010:
Attempting to View Field Data that is past the end of the file no longer results
in an error.
06-18-2010:
Added support for fields MPG (was incomplete) and MMT (was missing entirely).
06-15-2010:
New BIM rendering code that takes ImageMapping into account.
Fixed a small bug in the File Properties window when viewing a file that has no
association.
06-11-2010:
The program now supports AFP files that do not use the structured field
introducer x5A.
05-14-2010:
Fixes to some rendering code.
03-30-2010:
Maximum file size increased. No more 2.1 gig limitation.
The program will now treat the IMM field (if present) as the first field of the
page.
03-18-2010:
Fixed an annoying interface bug which would occasionally cause a row to overlap
another row.
I need samples. GOCA and BCOCA especially.
02-18-2010:
Added support for unicode filenames.
10-16-2009:
Added bit-order and row-order to ImageEncodingParameter in IPD breakdown.
10-13-2009:
File comments now appear correctly in the File Properties window.
10-02-2009:
Fixes to the rendering code.
09-15-2009:
Fixed display of NOP in PTX breakdown not converting EBCDIC to ASCII.
09-10-2009:
Added TBM to PTX breakdown.
09-09-2009:
Added DBCSsection to field CFI, and made ULwidth a floating-point value for
field FNP.
09-08-2009:
Added support for rendering BGR (GOCA) structures. NOT COMPLETE!
Added support for BDA and MBC fields.
09-04-2009:
Fixed rendering of image objects. The Object was being drawn outside of the
visible image area.
Added support for rendering BPS structures. PageSegments have no size
specified, so the code calculates the minimum size required to encapsulate all
objects (except text).
Page dimensions now evaluates MediumMaps, and prefers MediumMap dimensions over
PGD dimensions.
09-02-2009:
Added support for viewing non-banded JPEG images with multiple Image Segments.
Cleaned up some of the IOCA image processing, better support for multiple image
segments.
09-01-2009:
Fixed the GAD breakdown.
08-31-2009:
Added support for rendering 8bit grayscale image data.
08-27-2009:
Fixed MSU field only listing the first RepeatingGroup of SupressionNames and
SupressionIDs.
Fixed PGP field only listing the last RepeatingGroup of values.
08-26-2009:
Fixed a very rare error that would occur if the user tried to navigate to the
last page, and the BPG record for that page was in a field whose index was a
multiple of the offset chaching size.
Removed some background exceptions.
Fixed an error with MSU field not converting SupressionName from ascii/ebcdic.
Added display of SupressionID to MMC field and BSU/ESU data to PTX breakdown.
08-25-2009:
Fixed an error that would prevent BII images from being rendered.
Added basic support for MouseWheel.
08-21-2009:
Fixed an error that would occur when pressing CTRL-END if the file did not need
to be scrolled (numFields less than visFields).
Fixed an issue with the scrolling, where pressing DOWN could scroll past the
last field.
Disabled word-wrapping on the textbox arrays. This should have been disabled
and noticed durring the .Net conversion.
08-13-2009:
Tweaked the PageUp and PageDown code to scroll faster, and stop scrolling sooner
when the button is released.
08-05-2009:
Fixed an issue that would cause the drop-down box on the Search window to add
duplicate entries.
Fixed an issue with the PTX breakdown, where TRN data was not being converted
from EBCDIC to ASCII.
08-04-2009:
The program can now open read-only files. However, if the file is read-only,
field editing is disabled.
Cleaned up error message code.
07-23-2009:
Disabled the right-click menu when no file is loaded.
Fixed a condition that would try to close a file that was already closed.
07-22-2009:
Re-coded the Control Arrays that make up the main interface.
07-21-2009:
Added object rendering functionality. Right-click on a BPG, BMO, BIM, or BII
field to view it rendered to the screen.
07-20-2009:
Fixed all of the speed issues while viewing data as HEX. The solution was to
use the BitConverter.ToString method instead of doing the conversion myself.
Added the File Properties window.
07-16-2009:
Changed the Field Data window to use a Grid control, instead of dynamically
creating hundreds (or thousands) of labels.
Enabled the Copy Selection function on the Field Data window.
Added TRN text to PTX breakdown. It appears that VB.Net does not have the same
limitations on textboxes as VB6.
Added 'Extraction Complete' messagebox to the 'Extract Resources' button.
03-01-2009:
Upgraded source code from Visual Basic 6.0 to VB.Net 2005.
Fixed an error that would cause the wrong PtSize to be displayed on FND fields.
08-18-2007:
Fixed a bug in one of the IOCA functions, when the sequence type was zero, the
program would loop infinitely.
05-17-2007:
Added GOCA support, including a GOCA breakdown for GAD fields. Thanks to Marc
Goldstein for providing a sample file.
Modified the Save-As window, to allow saving of files with no pages.
02-13-2007:
Fixed an error that would cause the View Field Data interface to generate an
error when viewing PCL files.
01-12-2007:
More work on the View Field Data interface. Added ToolTips to display byte
value / offset, and customizable font.
01-10-2007:
Fixed the label that shows the offset in the View Field Data interface, so it
now updates correctly while scrolling.
Working on the ability to select and copy a range of bytes.
01-09-2007:
Increased the speed of the View Field Data interface by sharing the FileNumber
that is already open in the main interface.
01-08-2007:
Added the option to view numeric values of bytes in the View Field Data
interface (and edit those values).
Increased the row-spacing in the View Field Data window.
01-06-2007:
Increased the maximum number of visible lines in the View Field Data interface
from 50 to 100.
01-05-2007:
Bytes can now be modified through any of the data views (Hex, Binary, Ascii,
Ebcdic).
Cleaned up the View Field Data interface a bit.
01-04-2007:
Added the ability to modify bytes via the View Field Data interface.
Data can be modified as HEX, Binary, ASCII, or EBCDIC.
Added a confirmation prompt to the MakeNOP menu item.
11-05-2006:
Started adding support for PCL files to AFPexplorer.
Unfortunately, chained commands are not currently broken down.
May need to change program name to PRNexplorer or something more generic.
09-30-2006:
Modified the way files with CrLf are handled. The 2 bytes for the CrLf are now
counted as part of the FieldLength.
Prior to this change, the Cr and the Lf would both display as a 1-byte fields.
09-01-2006:
Added the funcitonality to export a file to text. Basically a text listing of
the data presented by AFPexplorer.
This functionality also supports filtering of fields.
08-17-2006:
Added support for obsolete fields CTC and FGD.
08-16-2006:
Modified the program to accept files with CrLf after each field without raising
an error.
Changed the maximum number of visible lines from 50 to 60. Might make this
dynamic, based on screen resolution.
08-14-2006:
Fixed an error where certain windows would be hidden behind the main form if the
'KeepOnTop' option was enabled.
04-10-2006:
Added support for some AFP fields I was going to ignore until I encountered
them.
BCA, MCA, MSU, IPG, MGO.
04-04-2006:
Added IOCA breakdown for IPD fields in AFP files. Very similar to the PTOCA
breakdown for PTX fields.
Added support for more IOCA commands.
Changed color-coding of fields a little bit.
Added Hex view to main interface. Hex view is slightly slower than normal Ascii
or Ebcdic view.
04-01-2006:
Added PTOCA breakdown for PTX fields in AFP files. This required some interface
modifications.
Added some search functionality. Search for text in PTX fields, or search for a
field by field-type.
More search functionality still to come.
Field modifier also still to come.
03-10-2006:
Added resource listing/extracting functionality. Copied directly from Viewer
program.
03-04-2006:
Added some color-coding to certain fields (NOP, BDT, and PTX for now).
At some point, color-coding will be configurable.
01-21-2006:
Changed MRU list to support nine entries instead of eight. I may make it ten,
with number ten being zero.
Through 2006:
Over time, nearly all structured fields and all values have been incorporated.
Late 2004:
Program is not fast enough. Uses too much memory. Complete re-write.
(overhaul took about 4 days)
Early 2004:
Program works well. 3 pre-defined color schemes are available.
Early 2003:
Started writing a Structured Field viewer. This will be essential to writing an
AFP viewer.