Solved

Adobe PDF API's

Posted on 2004-03-25
13
776 Views
Last Modified: 2013-12-03
I want to create a pdf file with "tags" of some sort in it.  Then, I will populate those fields with a VB program from a SQL database.  The goal is to have a sort of template that can be filled with data from the database and presented to the end user.

Has anyone here done anything with this?  If the answer is complicated, I am willing to split up the questions, making each worth 500 points.

I've got to go now; I will fill in any gaps later.
0
Comment
Question by:labreuer
  • 7
  • 6
13 Comments
 
LVL 8

Expert Comment

by:ampapa
Comment Utility
Here is a link to a similar question I answered: http://www.experts-exchange.com/Programming/Programming_Languages/Visual_Basic/Q_20834706.html?query=acrobat+pdf&searchType=topic

Let me know if I can fill in some more of the blanks...
0
 
LVL 1

Author Comment

by:labreuer
Comment Utility
This is designed to fill in form fields -- what sort of restriction does this place on the final format of the text?  For example, if I want one field to be bold and a larger font, is that doable?
0
 
LVL 8

Expert Comment

by:ampapa
Comment Utility
In Acrobat you can create a field on a document that can be formatted, yes.

I do a similar process but use an AxctiveX control called activepdf. It works great.

ampapa,
0
 
LVL 1

Author Comment

by:labreuer
Comment Utility
What are a few things you like better about activepdf, compared to Adobe Acrobat Professional?  I understand the activepdf toolkit is required to do this -- you use activepdf's pdf maker as well?
0
 
LVL 8

Expert Comment

by:ampapa
Comment Utility
I use toolkit from Access to populate Tax returns, it's a smooth setup and fairly seamless. Very little programming involved compared to some of the other attempts to create PDF documents with your data, then saving the PDF document with your data intact.

The essentials for my usage is to create a document in Acrobat with my fields specified (fonts, color, size, etc.) I save it as a template if you will then basically call ActivePDF and push my data from Access through to the template and save it as another PDF document, and rock on.

If your considering doing anything like what I described the cost is minimal to the amount of time it will save. I believe they have a full trial if your interested?
0
 
LVL 1

Author Comment

by:labreuer
Comment Utility
This definitely looks like a solution -- how much research did you do into this (e.g. did you find/try any other products)?
0
Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

 
LVL 8

Expert Comment

by:ampapa
Comment Utility
No, once I found it I stopped looking. I'm sure there are some others available as always there's more than one way to skin a cat, but ActivePDF worked well for my situation.

ampapa,
0
 
LVL 1

Author Comment

by:labreuer
Comment Utility
Do you have any examples of a pdf with forms, then after you've added the data and flattened the pdf?
0
 
LVL 8

Expert Comment

by:ampapa
Comment Utility
Unfourtunately they are tax retuens and I can't supply those to you but I could probably send you a form ready to be populated with data?
0
 
LVL 1

Author Comment

by:labreuer
Comment Utility
How complicated did your dynamic content get?  It seems that you might have only done very simple things with ActivePDF.  If I wanted to, for example, have a template that allowed for a table of dynamic size, it seems that ActivePDF would not be able to do this...
0
 
LVL 8

Accepted Solution

by:
ampapa earned 500 total points
Comment Utility
I'm not sure that you can create a dynamic table in a PDF document? I can't answer that. I guess you can if your generating the PDF  document on the fly?

All I can say is that ActivePDF is great for filling in data. Create a form with some fields map those fields to the same name as fields in your DB, add some source code and your off. I hope I'm not over simplifying things, but I thought it was done rather well, a little expensive but non the less.

This is from the help file I hope they don't mind, sorry the images won't post.

'***********************************************************
This example fills a PDF template using DBToForm.
To define the fields of an invoice:

1 Using Acrobat to define your PDF fields, create the input PDF. See Creating a PDF Template.  When defining PDF fields, name the fields the same as the database fields. When naming line items, name them dbFieldx where x is the line item number.  Below are examples of the corresponding Access database tables.  

Below are examples of the corresponding Access database tables.

Orders:
Field Name                    DataType

company                       text
name                            text


Details:
Field Name                   DataType
OrderID                        text
QTY                             number

 

Below is the defined Invoice PDF:
(picture of form with fields named similar to DB)

 
Example source:

<%

Set Toolkit = Server.CreateObject("APToolkit.Object")
' Open the output file
R = Toolkit.OpenOutputFile(Server.MapPath("myInvoice.PDF"))
' Open the input file
R = Toolkit.OpenInputFile(Server.MapPath("APInvoice.PDF"))
' Define the master query's variables
DSN = "DBQ=" & Server.MapPath("Toolkit.mdb") & _
";Driver={Microsoft Access Driver (*.mdb)};"
UserID = "Admin"
Password = ""
Options = -1
' Select all of the records from the orders file
SQLQuery = "select * from Orders"
' Set up the master query
Toolkit.SetMasterQuery DSN, UserID, Password, Options, SQLQuery
' Select all of the related records from the orderDetails file
SQLQuery = "select * from OrderDetails where OrderID ='|OrderID|"
' Set up the Related query
Toolkit.AddRelatedQuery DSN, UserID, Password, Options, SQLQuery
' Since our line items field names do not have a _
separator between the name and line number we need to tell the toolkit that
Toolkit.SetDBMultiRowSeparator ""
' Since we took the time to set up the form formatting, _
we should turn that on too
Toolkit.DoFormFormatting = True
' Finally, we want to make the file truly read-only with NO fields in it
Toolkit.SetDefaultDBMergeFlag –998
Toolkit.FlattenRemainingFormFields = True
' Execute with single page output!
Toolkit.DBToForm False
Set Toolkit = Nothing

%>  
0
 
LVL 1

Author Comment

by:labreuer
Comment Utility
Ok, you've definitely answered my question if I just need simple single-format fields, so I'm going to give you an A.  If I want more, I will probably have to look into dynamic PDF generation.
0
 
LVL 8

Expert Comment

by:ampapa
Comment Utility
Thanks for the grade.

I hope things work out for you.

ampapa,
0

Featured Post

What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

I’ve seen a number of people looking for examples of how to access web services from VB6.  I’ve been using a test harness I built in VB6 (using many resources I found online) that I use for small projects to work out how to communicate with web serv…
Most everyone who has done any programming in VB6 knows that you can do something in code like Debug.Print MyVar and that when the program runs from the IDE, the value of MyVar will be displayed in the Immediate Window. Less well known is Debug.Asse…
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…

743 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now