Skip to main content
Type: a handler of the Pages moved eventThis sample code demonstrates how the “Pages moved” event can be transformed into the “Document merge” event. The logic of this script is as follows: if all pages of the document are moved, then this document is fully embedded into the target document.The script is launched on the event Pages moved. The Events.OnDocumentsMerge procedure is a procedure that handles the “Document merge” event.
[VBScript]
Dim currentDocument, currentDocumentPagesMoved
set currentDocument = Pages( 0 ).Document
currentDocumentPagesMoved = 0
For i = 0 to Pages.Count - 1
  If Pages( i ).Document.Id <> currentDocument.Id Then
' The next document
    If currentDocument.Pages.Count = currentDocumentPagesMoved Then
' All pages are moved from the previous document. The event is spawned.
      Events.OnDocumentsMerge TargetDocument, currentDocument
    End If
Set currentDocument = Pages( i ).Document
  Else
Next
If currentDocument.Pages.Count = currentDocumentPagesMoved Then
' All pages are moved from the last document. The event is spawned.
  Events.OnDocumentsMerge TargetDocument, currentDocument
End If
[JScript]
var currentDocument = Pages( 0 ).Document;
var currentDocumentPagesMoved = 0;
for( i = 0; i < Pages.Count - 1; i++ ) {
  if( Pages( i ).Document.Id != currentDocument.Id ) {
// The next document
    if( currentDocument.Pages.Count == currentDocumentPagesMoved ) {
// All pages are moved from the previous document. The event is spawned.
      Events.OnDocumentsMerge( TargetDocument, currentDocument );
    }
currentDocument = Pages( i ).Document;
  } else {
currentDocumentPagesMoved = currentDocumentPagesMoved + 1;
  }
}
if( currentDocument.Pages.Count == currentDocumentPagesMoved ) {
// All pages are moved from the last document. The event is spawned.
  Events.OnDocumentsMerge( TargetDocument, currentDocument )
}
Type: a handler of the Document merge eventThis sample code demonstrates the easiest way to merge document registration parameters on document merge. When merging documents into a target document, only those parameters from new documents are added which were missing in it.The code should be stored in a shared module. The OnDocumentsMerge procedure must called at the moment of merging documents. For details, see the description of the Document merge event.
[VBScript]
Sub MergeProperty(ByVal TargetDocument, ByVal propertyName, ByVal propertyValue)
  If TargetDocument.Properties.Get(propertyName) = "" Then
' There is no such a parameter in the document.
      TargetDocument.Properties.Set(propertyName, propertyValue)
  End If
End Sub
Sub OnDocumentsMerge(ByVal Target, ByVal Document)
' Merging registration parameters.
  For i = 0 To Document.Properties.Count - 1
      MergeProperty(Target, Document.Properties(i).Name,
Document.Properties(i).Value)
  Next
End Sub
[JScript]
function MergeProperty( TargetDocument, propertyName, propertyValue )
{
  if( TargetDocument.Properties.Get( propertyName ) == "" ) {
// There is no such a parameter in the document.
    TargetDocument.Properties.Set( propertyName, propertyValue );
  }
}
function OnDocumentsMerge( Target, Document )
{
// Merging registration parameters.
  for( i = 0; i < Document.Properties.Count - 1; i++ ) {
MergeProperty( Target, Document.Properties(i).Name, Document.Properties(i).Value );
  }
}