view pdf in asp net mvc : Convert pdf to ascii text Library software class winforms html ajax MegaFox%201002%20Things%20You%20Wanted%20to%20Know%20About%20Extending%20Visual%20FoxPro%20Chapter%20082-part843

Chapter 8: Integrating PDF Technology    21 
##IMAGE: MF08008.tif 
Figure 8.8 The Acrobat Control for ActiveX exposes a number of methods for the 
developer to interact with the control in the Visual FoxPro form. This is the exposed in 
the Visual FoxPro 6 Class Browser. 
Convert pdf to ascii text - Library software class:C# PDF Convert to Text SDK: Convert PDF to txt files in, ASP.NET MVC, WinForms, WPF application
C# PDF to Text (TXT) Converting Library to Convert PDF to Text
Convert pdf to ascii text - Library software class:VB.NET PDF Convert to Text SDK: Convert PDF to txt files in, ASP.NET MVC, WinForms, WPF application
VB.NET Guide and Sample Codes to Convert PDF to Text in .NET Project
22    MegaFox: 1002 Things You Wanted to Know About Extending Visual FoxPro 
##IMAGE: MF08009.tif 
Figure 8.9 To view the property, events and methods in Visual FoxPro 7 you need to 
use the Object Browser. 
All of the features you use in Acrobat Reader via the menus and toolbars are exposed in 
the Acrobat ActiveX Control. There may be methods that might be handy to execute via your 
own exposed interface. A number of the Reader features are exposed through an interface of 
properties and methods. Note the method names usually start out with a lower case name 
(visible in the Object Browser and the Acrobat Javascript documentation). This is due to the 
standard that Javascript uses, which is the native “macro” language included in Acrobat.  
The printWithDialog() is nice because it automatically displays the printer selection and 
print driver option dialog that Acrobat displays when you select the File | Print menu option. 
You can also print directly to the Windows’ default printer with the Print() method. There are 
a number of print methods to suit most tastes. The gotoLastPage() method could be used in the 
cases when the customer likes to view the grand total information on the report which is on the 
last page, before reviewing the details. If your users prefer to see the report zoomed at a 
specific percentage you can use the setZoom() method. 
There is a second method to displaying PDFs in a Visual FoxPro form. If you have the full 
Acrobat product you will also have the ActiveX interface that will display a PDF file in a VFP 
form. This interface is not loaded with the Reader edition of Acrobat. However this object is 
well documented, both in the type library and in the Acrobat Software Developers Kit (SDK). 
Library software class:Generate and draw Code 128 for Java
Various barcode image formats, like ASCII, BMP, DIB, EPS Preview, JPEG, etc, are valid Code 128 Auto"); //Encode data for Code 128 barcode image text in Java
Library software class:Generate and draw Code 39 for Java
or not, text margin setting, show check sum digit or not choices for Code 39 linear barcode in java applications. Various barcode image formats, like ASCII, BMP
Chapter 8: Integrating PDF Technology    23 
The Acrobat Software Developers Kit can be downloaded from the Adobe 
developer page located at
The easiest way to work with this technique is to use the new VFP 7 Object Browser. 
Open up the Acrobat 5.0 Type Library object (see Figure 8.10). The main object is located 
under Interfaces. It is called CAcroAVDoc. This interface has the capability to get at the other 
needed interfaces as well as display the PDF. This object is created in the Init of the form. 
* Form Init()
 this.oAVDoc =CREATEOBJECT("AcroExch.AVDoc")
 this.Navigate(tcPDF)
##IMAGE: MF08014.tif 
Figure 8.10 The Acrobat 5.0 Type Library object has documented interfaces, method, 
and constants. 
The form will optionally accept a PDF file name as a parameter. If the Acrobat object 
cannot be instantiated the Error method will trap the condition and disable the user interface 
Library software class:VB.NET TIFF: TIFF Tag Viewer SDK, Read & Edit TIFF Tag Using VB.
TiffTagID.ImageDescription, "Insert a private tiff tag", TiffTagDataType.Ascii)) file.Save VB.NET TIFF manipulating controls, like TIFF text extracting control
Library software class:Data Matrix C#.NET Integration Tutorial
datamatrix.CodeToEncode = "C#DataMatrixGenerator"; //Data Matrix data mode, supporting ASCII, Auto, Base256, C40, Edifact, Text, X12. datamatrix.
24    MegaFox: 1002 Things You Wanted to Know About Extending Visual FoxPro 
objects on the form. After the object is created the custom Navigate method is called to open 
up and display the PDF file. To open the PDF file and display it in the form we use the new 
Visual FoxPro Hwnd property as a parameter to the OpenInWindowEx method. This allows 
Acrobat to display itself in a Visual FoxPro form. 
*ConstantsextractedfromAcrobat5.0 Type Library viaObjectBrowser
#DEFINEAVZoomNoVary     0   &&Fixedvalue zoom.
#DEFINEAVZoomFitPage    1   &&Fit page to window.
#DEFINEAVZoomFitWidth    2   &&Fit page widthtowindow.
#DEFINEAVZoomFitHeight    3   &&Fit page heightto window.
#DEFINEAVZoomFitVisibleWidth 4   &&Fit visible widthtowindow.
#DEFINEAVZoomPreferred    5   &&Use page'spreferredzoom.
#DEFINEpdRotate0      0   &&Rotated0degrees.
#DEFINEpdRotate90      90   &&Rotated90degrees.
#DEFINEpdRotate180    180   &&Rotated180 degrees.
#DEFINEpdRotate270    270   &&Rotated270 degrees.
#DEFINEPDDontCare      0   &&Leavetheviewmodeasitis.
#DEFINEPDUseNone      1   &&Displaythe documentwithout
#DEFINEPDUseThumbs     2   &&Displaythe documentandthumbnail
#DEFINEPDUseBookmarks    3   &&Displaythe documentandbookmarks.
#DEFINEPDFullScreen     4   &&Displaythe documentin fullscreen
#DEFINEPDDocNeedsSave    1   &&Document hasbeenmodified andneeds
tobe saved.
#DEFINEPDDocRequiresFullSave 2   &&Document cannotbe saved
incrementally;itmustbe written usingPDSaveFull.
#DEFINEPDDocIsModified    4   &&Document hasbeenmodified.
#DEFINEPDDocDeleteOnClose  8   &&Document is basedonatemporary
#DEFINEPDDocWasRepaired   16   &&Document wasrepaired when itwas
#DEFINEPDDocNewMajorVersion  32   &&Document'smajor versionisnewer
#DEFINEPDDocNewMinorVersion  64   &&Document'sminor versionisnewer
#DEFINEPDDocOldVersion   128   &&Document'sversion is olderthan
#DEFINEPDDocSuppressErrors 256   &&Don'tdisplay errors.
#DEFINEPDDocIsEmbedded   512   &&Document is embeddedin acompound
#DEFINEPDDocIsLinearized  1024   &&Document is linearized(getonly).
#DEFINEPDDocIsOptimized  2048   &&Document is optimized.
#DEFINEPDSaveIncremental   0   &&Writechanges only.
#DEFINEPDSaveFull      1   &&Writetheentire file.
#DEFINEPDSaveCopy      2   &&Writeacopyofthefileintothe
#DEFINEPDSaveLinearized   4   &&Savethe file in a linearized
#DEFINEPDSaveWithPSHeader  8   &&Writes a PostScriptheader aspart of
the savedfile.
#DEFINEPDSaveBinaryOK    16   &&Specifiesthatit'sOKtostore in
Library software class:PDF-417 C#.NET Integration Tutorial
PDF417; //Set PDF 417 encoding valid input: All ASCII characters, including 0-9 PDF417DataMode.Auto // Data mode, Auto, Byte, Numeric,Text supported //Set
Library software class:Image Converter | Convert Image, Document Formats
formats; Convert in memory for higher speeds; Multiple image formats Support, such as TIFF, GIF, BMP, JPEG Rich documents formats support, like ASCII, PDF,
Chapter 8: Integrating PDF Technology    25 
#DEFINEPDSaveCollectGarbage 32   && Removeunreferenced objects,often
reducing file size.
#DEFINEAV_EXTERNAL_VIEW   1   && Open thedocument with thetoolbar
#DEFINEAV_DOC_VIEW     2   && Draw thepagepaneand scrollbars.
#DEFINEAV_PAGE_VIEW     4   && Draw only thepagepane.
 IFFILE(tcPDF)
  WITH this.oAVDoc
  *It'simportanttoclose each doc, everytime.If youdon't,whenyou
  *try viewingthe samepage, itwon'tdisplay anything-you have to kill
  *the object references andclose VFP, plus kill Adobe. It maintains a 
  *collection of open documents ,butweare only usingone documentat a
  *and thezeromakes sure thedocument isnot saved.It keepsthings
  *and tokeepthe memoryusage to a minimum.
  .Close(0)
  .OpenInWindowEx(tcPDF,this.Hwnd, AV_EXTERNAL_VIEW,;
         .T., 0,PDUseNone,AVZoomPreferred,;
         100,30, 0)
  this.oAVPage = .GetAVPageView()
  *Set thezoomoptions
  this.ResizeAcrobat()
  IF !ISNULL(this.oAVPage)
   *Turnon, presetthe zoom controlonthe form.Thenzoomtothe
   *correctPDF size.
   this.oAVPage.ZoomTo(0,100)
   this.oAvPDDoc = .GetPDDoc()
  ENDIF
  this.cOpenPDF= this.FormatFileName(tcPDF)
  this.Refresh()
  ENDWITH
 ELSE
  MESSAGEBOX("PDFFileselecteddoesnotexist",;
      0 + 64,this.Caption)
We decided to include all the #DEFINEs so you can see the various options available. The 
Navigate method first closes an existing PDF if one is open, then opens up the selected PDF 
and displays it. The Navigate method also instantiates two more Acrobat objects. The first is 
based on the CAcroAVPageView interface. There are a number of methods available on this 
object to manipulate to a specific location in the document and determine what the user will 
see. Methods include ScrollTo (to scroll to a specific location on a page), ZoomTo (to zoom 
the document to a certain percentage), DoGoBack (to return to the previous position in the 
view history stack), and DoGoForward (to return to the next view in the history stack). The 
second is based on the CAcroPDDoc interface. This object provides methods GetNumPages 
(to find out the number of pages, handy when printing the documents or ranges of pages), 
Library software class:VB.NET Image: Generate GS1-128/EAN-128 Barcode on Image & Document
AddFloatingItem(item) rePage.MergeItemsToPage() REFile.SaveDocumentFile(doc, "c:/ean128.pdf", New PDFEncoder Data, All 128 ASCII characters (Char from 0 to 127).
Library software class:Generate and Print 1D and 2D Barcodes in Java
Various barcode image formats, like ASCII, BMP, DIB, EPS Preview options include show text or not, text margin setting like QR Code, Data Matrix and PDF 417 in
26    MegaFox: 1002 Things You Wanted to Know About Extending Visual FoxPro 
GetFileName (to know what PDF is open), DeletePages/CreateThumbs/DeleteThumbs (if you 
want to manipulate the contents of the documents), and Save (does what you would expect). 
We did not implement all of these methods, we thought that it would take all the fun away 
from you and left that as an exercise for you to become familiar with the different objects. 
The sample form will open up without showing a PDF if you do not pass the file as a 
parameter. The user can then use the ellipses button (three dots) to select a PDF. This button 
uses the 
function to obtain the PDF name then calls the Navigate method. The user 
can resize it and have the PDF viewer resize itself as well. The only real drawback of this 
technique is that it is only available to users that have the full version of Acrobat installed. 
What is Acrobat Forms Author technology? 
Acrobat ships with a cool feature called Acrobat Forms Author Technology that is provided 
via a plug-in (add-on or extension to the base product). This technology allows end users to 
convert paper forms into electronic forms that have the exact look of the original paper forms. 
These forms can be displayed in Acrobat and the end users can enter data in the same exact 
format they used when filling out the paper directly. This form might be a company standard, 
an industry directive, or a governmental dictate. 
If your users are as demanding as ours, you have probably run into the situation where 
you have been asked to produce an interface form that duplicates the existing paper version. 
You go off to develop this slick interface and demo the prototype to the users. The first thing 
they mention is that it does not mimic the paper version of the form “exactly”. The flip side is 
printing reports that mimic the paper version. While this is usually easier than the data entry 
part of the equation, generating reports with various lines and boxes, detail lines that exceed 
the facilities of the Visual FoxPro Report Designer or even some of the third party report 
writers can be a challenge. Once and awhile it is impossible. Acrobat Forms can assist us in 
getting data via data entry and outputting data to the forms for printing. 
Library software class:Generate 2D Barcodes in .NET Winforms
Moreover, the generation of Truncated PDF-417 and Macro PDF417 are supported. ASCII Mode, Base256, C40, EDIFACT, Text, and X12 data mode are supported.
Library software class:Code 128 Bar Code .NET Windows Forms SDK
symbology and capable of encoding full 128 characters in ASCII table. code128 winformscode128.Symbology = Symbology.code128; // set code128 code text to encode
Chapter 8: Integrating PDF Technology    27 
##IMAGE MF08010.tif 
Figure 8.11 This form is the city of Sterling Heights Building Permit form with some 
data filled in as the user would see it in Acrobat. 
The Forms Author plug-in capability is included with the full version of Acrobat. The data 
entry mode is available in the Reader version as well as full Acrobat, and a new product called 
Acrobat Approval. So what are the advantages? For one, the forms can be replicated 
electronically just like they are on paper. Since Acrobat printing is truly What-You-See-Is-
What-You-Get (WYSIWYG) the forms can be printed after being filled in. They can be saved 
with the data entered, which provides an audit trail. Most importantly, the information can be 
extracted and saved in a database for further analysis. 
Visual FoxPro developers might be asking the question, why would I need Acrobat forms 
when I have a great forms designer in Visual FoxPro? The difference is that Acrobat Forms 
can also be implemented in a distributed environment via the Internet without the overhead of 
the ActiveDoc technology used in Visual FoxPro. This means that the PDF file can be 
accessed on the web, users can enter in data, and the information can be submitted to the web 
server for processing and the data extracted and stored into a database. 
There are a couple of concepts in developing these forms that are very familiar to Visual 
FoxPro developers. The Acrobat Forms “designer” has similar functionality as the Visual 
FoxPro form designer. You change the mode of Acrobat with the PDF from “entry” to 
“designer” via the Form Tool icon on the left-side toolbar icon (second from the bottom on the 
left side toolbar in Figure 8.12). This toggles the mode so the form editor is available. Right-
28    MegaFox: 1002 Things You Wanted to Know About Extending Visual FoxPro 
click on any object will bring up the shortcut menu. One of the many menu options is 
Properties. Selecting this option will introduce the Acrobat form field property sheet (see 
Figure 8.13 for one page in this dialog). There are properties to name the objects, comment 
their use, adjust fonts, format the entry, set colors, require data, make it read only, have default 
values, set the tab order, and align the text. There are settings to run code for events and 
perform validation. Sound familiar? Sounds like what we do with the Visual FoxPro Class and 
Form Designers on a regular basis. Object types include Text (TextBox), CheckBox, 
ComboBox, ListBox, RadioButton (OptionGroup), Button (CommandButton) and Signature 
(no Visual FoxPro equivalent). 
The property dialog is very comfortable to Visual FoxPro developers. The biggest 
difference is that the code is written in JavaScript. Dropping objects on the PDF form is 
completed by changing the PDF into “designer mode” as noted earlier, and clicking and 
dragging to size the new object. This will open the field properties dialog. You select the 
object type and start setting the various properties. Each subsequent time you drag on another 
object it will default to the same object type as the previous one added. 
##IMAGE MF08011.tif 
Figure 8.12 This is the same form, but now seen in “designer mode”. 
Implementation of a PDF with Forms is identical to a regular PDF file. These files can be 
opened, data entered, forms printed with the Reader version of Acrobat. The PDF can also be 
Chapter 8: Integrating PDF Technology    29 
saved with the data included using the full version of Acrobat. The Amyuni product does not 
have any functionality concerning Acrobat Forms. 
##IMAGE MF08012.tif 
Figure 8.13 This is the Appearance page on the Acrobat Form Object Property Sheet 
for a Text object. 
To this point we have not discussed the interaction with Visual FoxPro. The data captured 
in an Acrobat Form is exported via the File | Export | Form Data… menu option. This option is 
only available with the Business Tools or full Acrobat editions in version 4 of Acrobat. 
Version 5 requires the Approval or full Acrobat version. The export process creates a FDF file. 
This file is a flat text file that includes tags and data. Here is the information in the FDF file as 
it was exported from the SHBuildPermitData.pdf (included with downloads): 
1 0 obj
/FDF<</Fields[<</V /Off /T (chkNonResidentialTheater)>><</V /Off /T
(chkResidentialChurch)>> 
<</V/Off/T (chkResidentialGasStation)>><</V/Off/T
(chkResidentialHospital)>> 
<</V/Off/T (chkResidentialHotelMotel)>><</V/Yes/T
<</V/Off/T (chkResidentialOffice)>><< /V /Off /T(chkResidentialOther)>> 
<</V/Off/T (chkResidentialParkingStructure)>><< /V /Off /T
(chkResidentialPlanNumberOnFile)>> 
<</V/Off/T (chkResidentialPublicUtility)>><</V /Off /T
(chkResidentialSchool)>> 
30    MegaFox: 1002 Things You Wanted to Know About Extending Visual FoxPro 
<</V /Off /T (chkResidentialSingle)>> <</V/Off/T(chkResidentialStore)>> 
<</V /Off /T (chkResidentialTwoOrMore)>><</V/Off/T(chkTypeAddition)>>
<</V /Off /T (chkTypeAlteration)>> << /V/Off /T(chkTypeConcrete)>>
<</V /Off /T (chkTypeDeck)>><</V /Off /T (chkTypeDemolition)>>
<</V /Off /T (chkTypeFireRepair)>> << /V/Off /T(chkTypeGarage)>>
<</V /Off /T (chktypeMobileHome)>> << /V/Yes /T(chkTypeNewBuilding)>>
<</V /Off /T (chkTypePool)>><</V /Off /T (chkTypeRelocate)>> 
<</V /Off /T (chkTypeRepair)>><</V/Off/T(chkTypeRoofing)>>
<</V /Off /T (chkTypeShed)>><</V (11/15/2001)/T(txtAppDate)>>
<</V (12/31/2099)/T (txtContactorHomeExpirationDate)>><< /V (38-9999999)/T
(txtContactorHomeFedId)>> 
<</V (987654321)/T(txtContactorHomeLicenseNumber)>> << /V(VFPSpecialists)/T
<</V (Sterling Heights)/T(txtContactorHomeOwnerCity)>> <</V(48313)/T
(txtContactorHomePostalCode)>> 
<</V (MI)/T(txtContactorHomeState)>> <</V(5865551234)/T
(txtContactorHomeTelephoneNumber)>> 
<</V (Weasel andShiftyInsuranceGroup,Inc.)/T
(txtContactorHomeWorkerCompIns)>> 
<</V (SteveBodnar, SteveSawyer,orRickSchummer)/T(txtContactPerson)>>
<</V (3134181290)/T (txtContactPhoneNumber)>> <</V(Acme Construction)/T
<</V (9999ElmsStreet)/T(txtContractorHomeOwnerAddress)>><< /V (New Geeks
and GurusnortherDetroit office)/T (txtDescriptionOfWorkOther)>>
<</V (D3726312873621878)/T(txtDriverLicense)>> << /V(999999999999)/T
<</V (5869400081)/T (txtOwnerPhoneNumber)>><</V(42424Front Street)/T
(txtOwnersAddress)>> 
<</V (Sterling Heights)/T(txtOwnersCity)>><</V(Geeksand Gurus, Inc.)/T
<</V (48314)/T (txtOwnersPostalcode)>><</V(MI)/T(txtOwnersState)>> 
<</V (Downtown SterlingHeights)/T (txtSiteLocation)>><< /V (9876Main
Street)/T(txtStreetAddress)>> 
/Root 10R
At this point we can see that the data entered can be output to a flat file. This file can be 
parsed using Visual FoxPro’s Low-Level File Input and Output commands and added to tables 
which are much easier for us to process. It would require that some fundamentally mundane 
code be written to separate the information from the tags and to get this information into a 
table. While most of us would not mind writing this code, wouldn’t it be cool if there was a 
better mechanism to extract the data from the FDF format? There is and it is called the FDF 
Toolkit, from Adobe. 
How can I extract data out of a PDF form file? 
Documents you may be interested
Documents you may be interested