c# pdfdocument : Create pdf with bookmarks from word Library application class asp.net html .net ajax Common%20Driver%20Interface%203009-part1126

91
Printer Driver Message Handling
PDF Driver Eventmessage
SendMessagesTo
GetDocumentTitle
GetGeneratedFilename
Create pdf with bookmarks from word - add, remove, update PDF bookmarks in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your C# Project with Rapid PDF Internal Navigation Via Bookmark and Outline
how to create bookmark in pdf with; bookmarks pdf file
Create pdf with bookmarks from word - VB.NET PDF bookmark library: add, remove, update PDF bookmarks in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your VB.NET Project with Rapid PDF Internal Navigation Via Bookmark and Outline
creating bookmarks in pdf from word; how to bookmark a pdf in reader
92
PDF Driver Event Message
When the message broadcast option is set in the Document Converter products, the printer driver broadcasts messages to all 
running applications each time one of the following events occur:
Printer Enabled
Start of document
Start of page
End of page
End of document
Reminder: Each Windows messages is made of three parts:
A message Id. This is a 32-bit value.
-
A first parameter known as wParam. This is a 16-bit value under Windows 98and a 32-bit value under Windows NT/2000/XP.
-
A second parameter known as lParam. This is a 32-bit value.
The message Id generated by the Document Converter products can beretrieved by calling the Windows API RegisterMessage 
function:
nPDFDriverMessage = RegisterWindowMessage( _T("PDF Driver Event") ).
This is needed to intercept messages generated by the printer driver.
Associated with each printer event, is an event code which is given in the wParam parameter. The following event codes are 
defined by the Windows Device Driver Kit:
// printer driver events
#define DOCUMENTEVENT_STARTDOCPRE
5
// before StartDoc is handled
#define DOCUMENTEVENT_STARTDOCPOST
13 
// after StartDoc is handled
#define DOCUMENTEVENT_STARTPAGE
6
// StartPage handled
#define DOCUMENTEVENT_ENDPAGE
7
// EndPage handled
#define DOCUMENTEVENT_ENDDOCPRE
8
// before EndDoc is handled
#define DOCUMENTEVENT_ENDDOCPOST
12
// after EndDoc is handled
#define DOCUMENTEVENT_LAST
14
// this event is privately defined by the Document Converter products
#define DOCUMENTEVENT_ENABLEDPRE (DOCUMENTEVENT_LAST + 1)   // before checking if printer is enabled
// the following can be returned from the event handling function
#define DOCUMENTEVENT_SUCCESS
1
#define DOCUMENTEVENT_UNSUPPORTED 0
#define DOCUMENTEVENT_FAILURE
-1
Event Parameters:
Windows 98/Me
Event
wParam
LOWORD(lParam)
HIWORD(lParam)
Before checking if printer is 
enabled
DOCUMENTEVENT_STARTDOCPRE
JobId
hDC
After StartDoc is handled
DOCUMENTEVENT_STARTDOCPOST JobId
hDC
StartPage
DOCUMENTEVENT_STARTPAGE
JobId
hDC
EndPage
DOCUMENTEVENT_ENDPAGE
JobId
hDC
Before EndDoc is handled
DOCUMENTEVENT_ENDDOCPRE
JobId
hDC
After EndDoc is handled
DOCUMENTEVENT_ENDDOCPOST
JobId
hDC
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
Bookmarks. inputFilePath = Program.RootPath + "\\" 3.pdf"; String outputFilePath = Program.RootPath + "\\" 3_optimized.pdf"; 'create optimizing options
creating bookmarks in a pdf document; bookmarks pdf documents
C# PDF File Split Library: Split, seperate PDF into multiple files
Split PDF file by top level bookmarks. The following C# codes explain how to split a PDF file into multiple ones by PDF bookmarks or outlines.
bookmark template pdf; create bookmarks pdf
93
Windows NT/2000/XP
Event
LOWORD(wParam)
HIWORD(wParam)
lParam
Before checking if printer is enabled DOCUMENTEVENT_ENABLEDPRE
0
hDC
Before StartDoc is handled
DOCUMENTEVENT_STARTDOCPRE
0
hDC
After StartDoc is handled
DOCUMENTEVENT_STARTDOCPOST JobId
hDC
StartPage
DOCUMENTEVENT_STARTPAGE
JobId
hDC
EndPage
DOCUMENTEVENT_ENDPAGE
JobId
hDC
Before EndDoc is handled
DOCUMENTEVENT_ENDDOCPRE
JobId
hDC
After EndDoc is handled
DOCUMENTEVENT_ENDDOCPOST
JobId
hDC
The drawback of this method of intercepting messages, is that the printer driver will broadcast messages to all running 
applications which might result in slowing down the whole system. To avoid this message broadcast, the printer driver can be 
programmed to send messages only to a specific application or window by calling te SendMessagesTofunction.
Sample message handling function
UINT  nPDFEventMessage = 0;
// this is the ID of the message sent by the driver
BEGIN_MESSAGE_MAP(CDLLTestAppDlg, CDialog)
// trap PDF driver events
ON_REGISTERED_MESSAGE( nPDFEventMessage, OnPDFEvent )
END_MESSAGE_MAP()
BOOL CDLLTestAppDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// get windows version number
OSVERSIONINFO
osvi;
memset( &osvi, 0, sizeof( osvi ) );
osvi.dwOSVersionInfoSize = sizeof( osvi );
GetVersionEx( &osvi );
m_bNT = (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT);
// get ID of message sent by PDF driver
nPDFEventMessage = RegisterWindowMessage( "PDF Driver Event" );
// send messages to our application only
TCHAR
className[64];
GetClassName( m_hWnd, className, sizeof(className) ); 
SendMessagesTo( theApp.m_converter, className );
// make sure event broadcast option is set
SetFileNameOptions( theApp.m_converter, BroadcastMessages );
return TRUE;
}
LONG CDLLTestAppDlg::OnPDFEvent( UINT wParam, LONG lParam )
{
// a Document Converter event has occured
// 
DWORD
jobId;
HDC
hDC;
WORD
eventId;
// get event ID
eventId = LOWORD( wParam );
if ( m_bNT )
{
// Windows NT/2000/XP
jobId = HIWORD( wParam );
hDC = (HDC)lParam;
}
else
{
// Windows 98/Me
jobId = LOWORD( lParam );
hDC = (HDC)HIWORD( lParam );
}
VB.NET PDF File Split Library: Split, seperate PDF into multiple
how to split a PDF file into multiple ones by PDF bookmarks or outlines Valid value for each index: 1 to (Page Count - 1). ' Create output PDF file path
pdf bookmark; delete bookmarks pdf
C# PDF File Compress Library: Compress reduce PDF size in C#.net
Bookmarks. inputFilePath = Program.RootPath + "\\" 3.pdf"; String outputFilePath = Program.RootPath + "\\" 3_optimized.pdf"; // create optimizing options
how to create bookmark in pdf automatically; export pdf bookmarks to text
94
switch ( eventId )
{
case DOCUMENTEVENT_ENABLEDPRE:
// before checking if printer is enabled
m_log.AddString( "Before checking if printer is enabled" );
// activate printer before starting to print
// this is needed with the developer version only
EnablePrinter( theApp.m_converter, "Evaluation Version Developer, "07EFCDAB011…BF2975B" );
break;
case DOCUMENTEVENT_STARTDOCPRE:
// before StartDoc is handled by the printer
char
buf[255] = "";
// display file name of document being printed
GetGeneratedFilename( theApp.m_converter, buf, sizeof( buf ) );
m_log.AddString( CString( "Destination file: " ) + buf );
m_log.AddString( "StartDoc called but not handled yet" );
break;
case DOCUMENTEVENT_STARTDOCPOST:
// after StartDoc is handled by the printer
m_log.AddString( "StartDoc called and handled by the driver" );
break;
case DOCUMENTEVENT_STARTPAGE:
// StartPage handled by the printer
m_log.AddString( "StartPage called and handled" );
break;
case DOCUMENTEVENT_ENDPAGE:
// EndPage handled by the printer
m_log.AddString( "EndPage called and handled" );
break;
case DOCUMENTEVENT_ENDDOCPRE:
// before EndDoc is handled by the printer
{
// get title of document being printed
char
buf[255] = "";
GetDocumentTitle( theApp.m_converter, jobId, buf, sizeof( buf ) );
// display title of document being printed
m_log.AddString( CString( "Document title: " ) + buf );
m_log.AddString( "EndDoc called but not handled yet" );
break;
}
case DOCUMENTEVENT_ENDDOCPOST:
// after EndDoc is handled by the printer
m_log.AddString( "EndDoc called and handled" );
break;
default:
return DOCUMENTEVENT_UNSUPPORTED;
}
return DOCUMENTEVENT_SUCCESS;
}
C# Create PDF Library SDK to convert PDF from other file formats
Create multipage PDF from OpenOffice and CSV file. Create and save editable PDF with a blank page, bookmarks, links, signatures, etc.
create bookmarks in pdf from excel; how to create bookmarks in pdf file
XDoc.Word for .NET, Advanced .NET Word Processing Features
& rotation; Outlines, bookmarks, & thumbnail display; Integrated annotation; More about Web Viewer ▶. Conversion. Word Create. Create Word from PDF; Create Word
how to add bookmarks to pdf files; bookmarks in pdf
95
SendMessagesTo Function
The SendMessagesTofunctionis used to direct the Document Converter product to send all event messages to a specific 
window or application. This is more efficient than the default behaviour of the printer driver, where it would send messages to all 
running applications and thus slow down the system significantly.
Syntax
long SendMessagesTo( HANDLE hPrinter, LPCSTR szWndClass );
Parameters
hPrinter 
[in]Handle to printer returned by any of the DriverInit function calls.
szWndClass
[in] Class of the Window to which the events are sent. 
Return Value
The return value is 1 if the function is successful, 0 otherwise. 
Remarks
This function should be used in conjunction with the BroadcastMessages option of the Document Converter products.
Example
// send messages to our application only
TCHAR
className[64];
GetClassName( m_hWnd, className, sizeof(className) ); 
SendMessagesTo( theApp.m_converter, className );
.NET PDF SDK - Description of All PDF Processing Control Feastures
& rotation; Outlines, bookmarks, & thumbnail display; Integrated annotation; More about Web Viewer ▶. Conversion. PDF Create. Create PDF from Word (docx, doc
export pdf bookmarks to text file; adding bookmarks to pdf
VB.NET Create PDF Library SDK to convert PDF from other file
Create multipage PDF from OpenOffice and CSV file. Create and save editable PDF with a blank page, bookmarks, links, signatures, etc.
how to add bookmarks to pdf document; convert word to pdf with bookmarks
96
GetDocumentTitle Function
The GetDocumentTitle function returns the title of the document that is currently being printed. This function should be called in 
the message handling loopand will return invalid results as soon as the document finishes printing.
Syntax
void GetDocumentTitle( HANDLE hPrinter, long JobID, LPSTR Buf, long MaxBuf );
Parameters
hPrinter 
[in]Handle to printer returned by any of the DriverInit function calls.
JobID
[in]Job ID as retrievedby the PDF message handling function.
Buf
[out] Address of buffer that will contain the document title.
MaxBuf
[in] Size of the Bufbuffer.The document title will be truncated if it is larger than the input buffer.
Return Value
On return, the Bufparameter will contain the title of the document that is currently being printed. 
Remarks
This function should be called from a PDF message handling function before the EndDocPost message is sent.
Example
Please refer to the PDF Driver Event section for a full sample
97
GetGeneratedFilename Function
The GetGeneratedFilename function returns the full path of the file that is currently being generated. This function should be 
called in the message handling loop and will return invalid results as soon as the processing of StartDoc is finished.
Syntax
voidGetGeneratedFilename( HANDLE hPrinter, LPSTR Buf, int MaxBuf );
Parameters
hPrinter 
[in]Handle to printer returned by any of the DriverInit function calls.
Buf
[out] Address of buffer that will contain the file name.
MaxBuf
[in] Size of the Buf buffer.The file name will be truncated if it is larger than the input buffer.
Return Value
On return, the Buf parameter will contain the full pathof the file that is currently being generated. 
Remarks
This function should be called from a PDF message handling function before the StartDocPost message is sent, i.e. in the 
StartDocPre event handler.
Example
Please refer to the PDF Driver Event section for a full sample
98
ActiveX Interface
Before using the Common Driver Interface as an ActiveX component from any ActiveX aware application, the developer should 
register the DLL in the system by calling:
Regsvr32 CDINTF300.DLL
from the location where this DLL is installed. This is done automatically by the default installation procedure of any of the 
document converter product.
The CDIntf control starting withversion 2.1 has been renamed to CDIntfEx to avoid confusion with the previous versions. The 
control can either be created dynamically through code or placed on a form like any other VB control. When placed on a form, the 
control remains invisible at run time.
To dynamically create the CDIntfEx object, the CDINTF300DLL should first be imported into the project. The procedure is quite 
similar in all programming environments. Here is what it would look like in VB:
99
To place the CDIntfEx control on a form, it should be imported into the project using the Projectà Components menu:
It should then appear in the components toolbar as follows:
Note to VB users:
VB users who had used previous versions of CDIntf or are trying to switch from dynamically created object to the visual 
component placed on a form, might receive the following error message from VB:
If this happens, the control should be manually removed from the project by following these steps:
1. Close the VB project
2. Open the .VBP file using any text editor
3. Locate and remove the line
4. Reference=*\G{4856F146-7516-11D3-BBE5-D53DCBD65107}#1.0#0# c:\WINDOWS\System32\cdintf.dll#CDIntf
5. Reload the project in VB and import the control
Common Driver 
Interface 
Component
100
Printer Installation and Activation
CDIntfEx.DriverInit
CDIntfEx.PDFDriverInit, CDIntfEx.HTMLDriverInit, CDIntfEx.RTFDriverInit, CDIntfEx.EMFDriverInit
CDIntfEx.DriverEnd
CDIntfEx.SetDefaultPrinter
CDIntfEx.RestoreDefaultPrinter
CDIntfEx.EnablePrinter
CDIntfEx.GetVersionInformation
CDIntfEx.PrinterAttributes
CDIntfEx.PrinterLanguage
Documents you may be interested
Documents you may be interested