Aspose::Pdf::Facades::AutoFiller Class Referencefinal

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. More...

Inherits Aspose::Pdf::Facades::ISaveableFacade.

Public Member Functions

void set_UnFlattenFields (System::ArrayPtr< System::String > value)
 Sets the fields which will not be flattened. If this property is not set, all the fields will be flattened. More...
 
System::SharedPtr< System::IO::Streamget_OutputStream ()
 Gets the OutputStream. One of four output modes. Its classical use case is Response.OutputStream. Please refer to the online demo. More...
 
void set_OutputStream (System::SharedPtr< System::IO::Stream > value)
 Sets the OutputStream. One of four output modes. Its classical use case is Response.OutputStream. Please refer to the online demo. More...
 
System::ArrayPtr< System::SharedPtr< System::IO::Stream > > get_OutputStreams ()
 Gets the many Output Streams. One of four output modes. More...
 
void set_OutputStreams (System::ArrayPtr< System::SharedPtr< System::IO::Stream >> value)
 Sets the many Output Streams. One of four output modes. More...
 
System::SharedPtr< System::IO::Streamget_InputStream ()
 Gets the input template stream. One of two input modes. More...
 
void set_InputStream (System::SharedPtr< System::IO::Stream > value)
 Sets the input template stream. One of two input modes. More...
 
System::String get_InputFileName ()
 Gets the input template file. One of two input modes. More...
 
void set_InputFileName (System::String value)
 Sets the input template file. One of two input modes. More...
 
System::String get_OutputFileName ()
 Gets the one big merged output file. One of the four output modes. More...
 
void set_OutputFileName (System::String value)
 Sets the one big merged output file. One of the four output modes. More...
 
System::String get_GeneratingPath ()
 Gets the Generating Path of the small pdf files if many small pdf files to be generated. It works with another property BasicFileNameBasicFileName. One of the four output modes. More...
 
void set_GeneratingPath (System::String value)
 Sets the Generating Path of the small pdf files if many small pdf files to be generated. It works with another property BasicFileNameBasicFileName. One of the four output modes. More...
 
System::String get_BasicFileName ()
 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 GeneratingPathGeneratingPath. More...
 
void set_BasicFileName (System::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 GeneratingPathGeneratingPath. More...
 
void Save ()
 Saves all the pdfs. More...
 
void Save (System::String destFile)
 Saves all the pdfs. More...
 
void Save (System::SharedPtr< System::IO::Stream > destStream)
 Saves all the pdfs. More...
 
void BindPdf (System::String srcFile)
 Binds a Pdf file. More...
 
void BindPdf (System::SharedPtr< System::IO::Stream > srcStream)
 Binds a Pdf file. More...
 
void BindPdf (System::SharedPtr< Document > srcDoc)
 Binds a Pdf document. More...
 
void Close ()
 Closes the object and output streams. More...
 
void Dispose ()
 Closes the object and output streams. More...
 
 AutoFiller ()
 
- Public Member Functions inherited from System::Object
ASPOSECPP_SHARED_API Object ()
 Creates object. Initializes all internal data structures. More...
 
virtual ASPOSECPP_SHARED_API ~Object ()
 Destroys object. Frees all internal data structures. More...
 
ASPOSECPP_SHARED_API Object (Object const &x)
 Copy constructor. Doesn't copy anything, really, just initializes new object and enables copy constructing subclasses. More...
 
Objectoperator= (Object const &x)
 Assignment operator. Doesn't copy anything, really, just initializes new object and enables copy constructing subclasses. More...
 
ObjectSharedRefAdded ()
 Increments shared reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
int SharedRefRemovedSafe ()
 Decrements and returns shared reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
int RemovedSharedRefs (int count)
 Decreases shared reference count by specified value. More...
 
Detail::SmartPtrCounter * WeakRefAdded ()
 Increments weak reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
void WeakRefRemoved ()
 Decrements weak reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
Detail::SmartPtrCounter * GetCounter ()
 Gets reference counter data structure associated with the object. More...
 
int SharedCount () const
 Gets current value of shared refernce counter. More...
 
ASPOSECPP_SHARED_API void Lock ()
 Implements C# lock() statement locking. Call directly or use LockContext sentry object. More...
 
ASPOSECPP_SHARED_API void Unlock ()
 Implements C# lock() statement unlocking. Call directly or use LockContext sentry object. More...
 
virtual ASPOSECPP_SHARED_API bool Equals (ptr obj)
 Compares objects using C# Object.Equals semantics. More...
 
virtual ASPOSECPP_SHARED_API int GetHashCode () const
 Analog of C# Object.GetHashCode() method. Enables hashing of custom objects. More...
 
virtual ASPOSECPP_SHARED_API String ToString () ASPOSE_CONST
 Analog of C# Object.ToString() method. Enables converting custom objects to string. More...
 
virtual ASPOSECPP_SHARED_API ptr MemberwiseClone () const
 Analog of C# Object.MemberwiseClone() method. Enables cloning custom types. More...
 
virtual ASPOSECPP_SHARED_API const TypeInfoGetType () const
 Gets actual type of object. Analog of C# System.Object.GetType() call. More...
 
virtual ASPOSECPP_SHARED_API bool Is (const TypeInfo &targetType) const
 Check if object represents an instance of type described by targetType. Analog of C# 'is' operator. More...
 
virtual ASPOSECPP_SHARED_API void SetTemplateWeakPtr (unsigned int argument)
 Set n'th template argument a weak pointer (rather than shared). Allows switching pointers in containers to weak mode. More...
 
template<>
bool Equals (float const &objA, float const &objB)
 
template<>
bool Equals (double const &objA, double const &objB)
 
template<>
bool ReferenceEquals (String const &str, std::nullptr_t)
 
template<>
bool ReferenceEquals (String const &str1, String const &str2)
 

Protected Attributes

bool UseConcatenationAnyway
 

Additional Inherited Members

- Public Types inherited from System::Object
typedef SmartPtr< Objectptr
 Alias for smart pointer type. More...
 
typedef System::Details::SharedMembersType shared_members_type
 structure to keep list of shared pointers contained in object. More...
 
- Static Public Member Functions inherited from System::Object
static bool ReferenceEquals (ptr const &objA, ptr const &objB)
 Compares objects by reference. More...
 
template<typename T >
static std::enable_if<!IsSmartPtr< T >::value, bool >::type ReferenceEquals (T const &objA, T const &objB)
 Compares objects by reference. More...
 
template<typename T >
static std::enable_if<!IsSmartPtr< T >::value, bool >::type ReferenceEquals (T const &objA, std::nullptr_t)
 Reference-compares value type object with nullptr. More...
 
template<typename T1 , typename T2 >
static std::enable_if< IsSmartPtr< T1 >::value &&IsSmartPtr< T2 >::value, bool >::type Equals (T1 const &objA, T2 const &objB)
 Compares reference type objects in C# style. More...
 
template<typename T1 , typename T2 >
static std::enable_if<!IsSmartPtr< T1 >::value &&!IsSmartPtr< T2 >::value, bool >::type Equals (T1 const &objA, T2 const &objB)
 Compares value type objects in C# style. More...
 
static const TypeInfoType ()
 Impleemnts C# typeof(System.Object) construct. More...
 

Detailed Description

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.

[C#]
//Note: mail.pdf is a template pdf which has seven text fields. NorthWind.mdb is the microsoft access db.
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.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
DbPath + "NorthWind.mdb";
mQueryCommand = new OleDbCommand();
mQueryCommand.Connection = mDbConnection;
mDbConnection.Open();
mQueryCommand.CommandText = "select CompanyName, ContactName, Address, PostalCode, City, Country from Customers;";
mDbDataAdapter = new OleDbDataAdapter(mQueryCommand);
mDbDataAdapter.Fill(mDataTable);
for (int i = 0; i<mDataTable.Rows.Count;i++)
{
mDataTable.Rows[i][mDataTable.Columns.Count - 1] = "Dear " + mDataTable.Rows[i][0].ToString() + ",";
System.Console.WriteLine("postalCode:" + mDataTable.Rows[i][3].ToString());
System.Console.WriteLine("Heading:" + mDataTable.Rows[i][mDataTable.Columns.Count - 1].ToString());
}
mDbDataAdapter.Dispose();
mDbConnection.Close();
AutoFiller autoFiller = new AutoFiller();
autoFiller.InputFileName = "mail.pdf";
autoFiller.OutputStream = Response.OutputStream;
autoFiller.ImportDataTable(mDataTable);
autoFiller.Save();
AutoFiller autoFiller = new AutoFiller();
autoFiller.InputFileName = "mail.pdf";
autoFiller.GeneratingPath = ".\\";
autoFiller.BasicFileName = "outputFile";
autoFiller.ImportDataTable(mDataTable);
autoFiller.Save();
[Visual Basic]
'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.
mQueryCommand As OleDbCommand = Nothing
mDbDataAdapter As OleDbDataAdapter = Nothing
mDbConnection As OleDbConnection = Nothing
mDataTable As DataTable = Nothing
mPath As String = Nothing
mTemplatePdf As String = Nothing
'Construct the data table.
mDataTable = New DataTable("MailMerge")
Dim columns As DataColumnCollection = mDataTable.Columns
'Create columns for the datatable.
'Every column's name should be the same as one field's name of the templatePdf.
columns.Add("CompanyName", Type.GetType("System.String"))
columns.Add("ContactName", Type.GetType("System.String"))
columns.Add("Address", Type.GetType("System.String"))
columns.Add("PostalCode", Type.GetType("System.String"))
columns.Add("City", Type.GetType("System.String"))
columns.Add("Country", Type.GetType("System.String"))
columns.Add("Heading", Type.GetType("System.String"))
'Connect to the database source and query the data.
mDbConnection = New OleDbConnection
mDbConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + DbPath + "NorthWind.mdb"
mQueryCommand = New OleDbCommand
mQueryCommand.Connection = mDbConnection
mDbConnection.Open()
'Query the data and insert into the datatable.
mQueryCommand.CommandText = "select CompanyName, ContactName, Address, PostalCode, City, Country from Customers;"
mDbDataAdapter = New OleDbDataAdapter(mQueryCommand)
mDbDataAdapter.Fill(mDataTable)
'Construct the last column of the Datatable.
Dim i As Integer
For i = 0 To mDataTable.Rows.Count - 1 Step i + 1
mDataTable.Rows(i)(mDataTable.Columns.Count - 1) = "Dear " + mDataTable.Rows(i)(0).ToString() + ","
System.Console.WriteLine("postalCode:" + mDataTable.Rows(i)(3).ToString())
System.Console.WriteLine("Heading:" + mDataTable.Rows(i)(mDataTable.Columns.Count - 1).ToString())
Next
mDbDataAdapter.Dispose()
mDbConnection.Close()
'End of Common part.
'case one:
'Input template pdf is a pdf file and output is a big merged stream.
Dim autoFiller As AutoFiller = New AutoFiller
autoFiller.InputFileName = "mail.pdf"
autoFiller.OutputStream = Response.OutputStream
autoFiller.ImportDataTable(mDataTable)
autoFiller.Save()
'case two:
'Input template pdf is a pdf file and output is a lot of small files.
Dim autoFiller As AutoFiller = New AutoFiller
autoFiller.InputFileName = "mail.pdf"
autoFiller.GeneratingPath = ".\";
autoFiller.BasicFileName = "outputFile"
autoFiller.ImportDataTable(mDataTable)
autoFiller.Save()

Constructor & Destructor Documentation

◆ AutoFiller()

Aspose::Pdf::Facades::AutoFiller::AutoFiller ( )

Member Function Documentation

◆ BindPdf() [1/3]

void Aspose::Pdf::Facades::AutoFiller::BindPdf ( System::String  srcFile)
virtual

Binds a Pdf file.

Parameters
srcFilePdf file name.

Implements Aspose::Pdf::Facades::IFacade.

◆ BindPdf() [2/3]

void Aspose::Pdf::Facades::AutoFiller::BindPdf ( System::SharedPtr< System::IO::Stream srcStream)
virtual

Binds a Pdf file.

Parameters
srcStreamPdf file stream.

Implements Aspose::Pdf::Facades::IFacade.

◆ BindPdf() [3/3]

void Aspose::Pdf::Facades::AutoFiller::BindPdf ( System::SharedPtr< Document srcDoc)
virtual

Binds a Pdf document.

Parameters
srcDocPdf document.

Implements Aspose::Pdf::Facades::IFacade.

◆ Close()

void Aspose::Pdf::Facades::AutoFiller::Close ( )
virtual

Closes the object and output streams.

Implements Aspose::Pdf::Facades::IFacade.

◆ Dispose()

void Aspose::Pdf::Facades::AutoFiller::Dispose ( )
virtual

Closes the object and output streams.

Reimplemented from System::IDisposable.

◆ get_BasicFileName()

System::String Aspose::Pdf::Facades::AutoFiller::get_BasicFileName ( )

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 GeneratingPathGeneratingPath.

◆ get_GeneratingPath()

System::String Aspose::Pdf::Facades::AutoFiller::get_GeneratingPath ( )

Gets the Generating Path of the small pdf files if many small pdf files to be generated. It works with another property BasicFileNameBasicFileName. One of the four output modes.

◆ get_InputFileName()

System::String Aspose::Pdf::Facades::AutoFiller::get_InputFileName ( )

Gets the input template file. One of two input modes.

◆ get_InputStream()

System::SharedPtr<System::IO::Stream> Aspose::Pdf::Facades::AutoFiller::get_InputStream ( )

Gets the input template stream. One of two input modes.

◆ get_OutputFileName()

System::String Aspose::Pdf::Facades::AutoFiller::get_OutputFileName ( )

Gets the one big merged output file. One of the four output modes.

◆ get_OutputStream()

System::SharedPtr<System::IO::Stream> Aspose::Pdf::Facades::AutoFiller::get_OutputStream ( )

Gets the OutputStream. One of four output modes. Its classical use case is Response.OutputStream. Please refer to the online demo.

◆ get_OutputStreams()

System::ArrayPtr<System::SharedPtr<System::IO::Stream> > Aspose::Pdf::Facades::AutoFiller::get_OutputStreams ( )

Gets the many Output Streams. One of four output modes.

◆ Save() [1/3]

void Aspose::Pdf::Facades::AutoFiller::Save ( )

Saves all the pdfs.

◆ Save() [2/3]

void Aspose::Pdf::Facades::AutoFiller::Save ( System::String  destFile)
virtual

Saves all the pdfs.

Parameters
destFileOutput file name.

Implements Aspose::Pdf::Facades::ISaveableFacade.

◆ Save() [3/3]

void Aspose::Pdf::Facades::AutoFiller::Save ( System::SharedPtr< System::IO::Stream destStream)
virtual

Saves all the pdfs.

Parameters
destStreamOutput stream.

Implements Aspose::Pdf::Facades::ISaveableFacade.

◆ set_BasicFileName()

void Aspose::Pdf::Facades::AutoFiller::set_BasicFileName ( System::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 GeneratingPathGeneratingPath.

◆ set_GeneratingPath()

void Aspose::Pdf::Facades::AutoFiller::set_GeneratingPath ( System::String  value)

Sets the Generating Path of the small pdf files if many small pdf files to be generated. It works with another property BasicFileNameBasicFileName. One of the four output modes.

◆ set_InputFileName()

void Aspose::Pdf::Facades::AutoFiller::set_InputFileName ( System::String  value)

Sets the input template file. One of two input modes.

◆ set_InputStream()

void Aspose::Pdf::Facades::AutoFiller::set_InputStream ( System::SharedPtr< System::IO::Stream value)

Sets the input template stream. One of two input modes.

◆ set_OutputFileName()

void Aspose::Pdf::Facades::AutoFiller::set_OutputFileName ( System::String  value)

Sets the one big merged output file. One of the four output modes.

◆ set_OutputStream()

void Aspose::Pdf::Facades::AutoFiller::set_OutputStream ( System::SharedPtr< System::IO::Stream value)

Sets the OutputStream. One of four output modes. Its classical use case is Response.OutputStream. Please refer to the online demo.

◆ set_OutputStreams()

void Aspose::Pdf::Facades::AutoFiller::set_OutputStreams ( System::ArrayPtr< System::SharedPtr< System::IO::Stream >>  value)

Sets the many Output Streams. One of four output modes.

◆ set_UnFlattenFields()

void Aspose::Pdf::Facades::AutoFiller::set_UnFlattenFields ( System::ArrayPtr< System::String value)

Sets the fields which will not be flattened. If this property is not set, all the fields will be flattened.

Member Data Documentation

◆ UseConcatenationAnyway

bool Aspose::Pdf::Facades::AutoFiller::UseConcatenationAnyway
protected