public final class AutoFiller extends Object implements ISaveableFacade
Represents a class to receive data from database or other datasource, fills them into the designed fields of the template pdf and at last generates new pdf file or stream. It has two template file input modes:input as a stream or a pdf file. It has four types of output modes:one merged stream, one merged file, many small streams, many small files. It can recieve literal data contained in a System.Data.DataTable.
//Note: mail.pdf is a template pdf which has seven text fields. NorthWind.mdb is the microsoft access db. ////Common part: Get the data from the database NorthWind.mdb fill it into the DataTable.
OleDbCommand mQueryCommand; OleDbDataAdapter mDbDataAdapter; OleDbConnection mDbConnection; //Construct the data table. DataTable mDataTable = new DataTable("MailMerge"); DataColumnCollection columns = mDataTable.Columns; columns.add("CompanyName",typeof(string)); columns.add("ContactName",typeof(string)); columns.add("Address",typeof(string)); columns.add("PostalCode",typeof(string)); columns.add("City",typeof(string)); columns.add("Country",typeof(string)); columns.add("Heading",typeof(string)); //Connect to the database source and query the data. mDbConnection = new OleDbConnection(); mDbConnection.setConnectionString ( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + DbPath + "NorthWind.mdb"); mQueryCommand = new OleDbCommand(); mQueryCommand.setConnection ( mDbConnection); mDbConnection.open(); mQueryCommand.setCommandText ( "select CompanyName, ContactName, Address, PostalCode, City, Country from Customers;"); mDbDataAdapter = new OleDbDataAdapter(mQueryCommand); mDbDataAdapter.fill(mDataTable); for (int i = 0; i<mDataTable.getRows().size();i++) { mDataTable.getRows()[i][mDataTable.getColumns().size() - 1] = "Dear " + mDataTable.Rows[i][0].ToString() + ","; System.out.println("postalCode:" + mDataTable.getRows()[i][3].toString()); System.out.println("Heading:" + mDataTable.getRows()[i][mDataTable.getColumns().Size() - 1].toString()); } mDbDataAdapter.dispose(); mDbConnection.close();
////End of Common part. ////case one: ////Input template pdf is a pdf file and output is a big merged stream.
AutoFiller autoFiller = new AutoFiller(); autoFiller.setInputFileName ( "mail.pdf"); autoFiller.setOutputStream ( Response.getOutputStream()); autoFiller.importDataTable(mDataTable); autoFiller.save();
////case two: ////Input template pdf is a pdf file and output is a lot of small files.
AutoFiller autoFiller = new AutoFiller(); autoFiller.setInputFileName ( "mail.pdf"0; autoFiller.setGeneratingPath ( ".\\"); autoFiller.setBasicFileName ( "outputFile"); autoFiller.importDataTable(mDataTable); autoFiller.save();
Constructor and Description |
---|
AutoFiller() |
Modifier and Type | Method and Description |
---|---|
void |
bindPdf(IDocument srcDoc)
Binds a Pdf document.
|
void |
bindPdf(InputStream srcStream)
Binds a Pdf file.
|
void |
bindPdf(String srcFile)
Binds a Pdf file.
|
void |
close()
Closes the object and output streams.
|
void |
dispose()
Closes the object and output streams.
|
String |
getBasicFileName()
Gets the basic file name if many small files will be generated.
|
String |
getGeneratingPath()
Gets the Generating Path of the small pdf files if many small pdf files to be generated.
|
String |
getInputFileName()
Deprecated.
|
InputStream |
getInputStream()
Deprecated.
|
String |
getOutputFileName()
Deprecated.
|
OutputStream |
getOutputStream()
Deprecated.
|
void |
save()
Deprecated.
|
void |
save(OutputStream destStream)
Saves all the pdfs.
|
void |
save(String destFile)
Saves all the pdfs.
|
void |
setBasicFileName(String value)
Sets the basic file name if many small files will be generated.
|
void |
setGeneratingPath(String value)
Sets the Generating Path of the small pdf files if many small pdf files to be generated.
|
void |
setInputFileName(String value)
Deprecated.
|
void |
setInputStream(InputStream value)
Deprecated.
|
void |
setOutputFileName(String value)
Deprecated.
|
void |
setOutputStream(OutputStream value)
Deprecated.
|
void |
setUnFlattenFields(String[] value)
Sets the fields which will not be flattened.
|
public void setUnFlattenFields(String[] value)
Sets the fields which will not be flattened. If this property is not set, all the fields will be flattened.
value
- array of String value@Deprecated public OutputStream getOutputStream()
Gets the OutputStream. One of four output modes. Its classical use case is Response.OutputStream. Please refer to the online demo.
This method is Deprecated.@Deprecated public void setOutputStream(OutputStream value)
Sets the OutputStream. One of four output modes. Its classical use case is Response.OutputStream. Please refer to the online demo.
This method is Deprecated.value
- the output stream@Deprecated public InputStream getInputStream()
Gets the input template stream. One of two input modes.
@Deprecated public void setInputStream(InputStream value)
Sets the input template stream. One of two input modes.
value
- InputStream element@Deprecated public String getInputFileName()
Gets the input template file. One of two input modes.
@Deprecated public void setInputFileName(String value)
Sets the input template file. One of two input modes.
value
- String value@Deprecated public String getOutputFileName()
Gets the one big merged output file. One of the four output modes.
@Deprecated public void setOutputFileName(String value)
Sets the one big merged output file. One of the four output modes.
value
- String valuepublic String getGeneratingPath()
Gets the Generating Path of the small pdf files if many small pdf files to be generated. It
works with another property BasicFileName
BasicFileName. One of the four output
modes.
public void setGeneratingPath(String value)
Sets the Generating Path of the small pdf files if many small pdf files to be generated. It
works with another property BasicFileName
BasicFileName. One of the four output
modes.
value
- String valuepublic String getBasicFileName()
Gets the basic file name if many small files will be generated. The generated file will be
like "BasicFileName0","BasicFileName1",... It works with another property
GeneratingPath
GeneratingPath.
public void setBasicFileName(String value)
Sets the basic file name if many small files will be generated. The generated file will be
like "BasicFileName0","BasicFileName1",... It works with another property
GeneratingPath
GeneratingPath.
value
- String value@Deprecated public void save()
Saves all the pdfs.
public void save(String destFile)
Saves all the pdfs.
save
in interface ISaveableFacade
destFile
- Output file name.public void save(OutputStream destStream)
Saves all the pdfs.
save
in interface ISaveableFacade
destStream
- Output stream.public void bindPdf(String srcFile)
Binds a Pdf file.
public void bindPdf(InputStream srcStream)
Binds a Pdf file.
public void bindPdf(IDocument srcDoc)
Binds a Pdf document.
public void close()
Closes the object and output streams.
public void dispose()
Closes the object and output streams.
dispose
in interface com.aspose.ms.System.IDisposable