Category: Master Guide

When merging PDFs with varying interactive elements, how can a merge-PDF tool intelligently handle and preserve the functionality of form fields and embedded media without requiring manual reconfigurations?

The Ultimate Authoritative Guide to PDF Merging with Interactive Elements using merge-pdf

When merging PDFs with varying interactive elements, how can a merge-PDF tool intelligently handle and preserve the functionality of form fields and embedded media without requiring manual reconfigurations?

As a Cloud Solutions Architect, the seamless integration and manipulation of complex digital documents are paramount. In today's data-driven landscape, PDF documents are not merely static repositories of information; they are dynamic canvases for interaction, data collection, and rich media embedding. Merging these documents, especially those laden with interactive elements like form fields, JavaScript, multimedia, and annotations, presents a significant technical challenge. The objective is to achieve a consolidated PDF that not only combines content but also retains the inherent interactivity, ensuring a consistent and functional user experience without the need for laborious manual adjustments. This guide will delve into the intricacies of this challenge, focusing on the capabilities of the merge-pdf tool to intelligently handle and preserve these vital interactive components.

Executive Summary

The merging of PDF documents containing interactive elements such as form fields, annotations, multimedia, and JavaScript poses a complex problem for traditional PDF manipulation tools. These elements, when combined from disparate sources, can conflict, become corrupted, or lose their intended functionality. This authoritative guide explores the advanced capabilities of the merge-pdf tool to address these challenges. We will examine the underlying mechanisms that enable merge-pdf to intelligently identify, process, and preserve the integrity of interactive PDF components during the merging process. The focus is on achieving a seamless merge that requires minimal to no manual reconfigurations, thereby enhancing efficiency and reducing the risk of errors. By understanding the technical nuances and practical applications, organizations can leverage merge-pdf to streamline their document workflows, ensuring that critical interactive functionalities remain intact across consolidated PDF documents.

Deep Technical Analysis

Understanding Interactive PDF Elements

Before dissecting the merging process, it's crucial to understand the types of interactive elements commonly found in PDFs and their underlying structures:

  • Form Fields: These are the bedrock of data collection in PDFs. They can be text fields, checkboxes, radio buttons, dropdown lists, signature fields, and more. Each field has properties like name, type, value, appearance, and associated actions. Merging PDFs with overlapping form field names can lead to conflicts, where the system may not know which field to prioritize or how to render the data correctly.
  • Annotations: This category includes text highlights, sticky notes, stamps, drawings, and link annotations. While often considered less critical than form fields, their preservation is important for collaborative documents and document review processes.
  • JavaScript: Embedded JavaScript can perform a variety of functions, from form validation and calculation to dynamic content generation and document manipulation. Merging scripts from different PDFs can result in syntax errors, conflicts in variable scope, or unintended execution sequences.
  • Multimedia: PDFs can embed audio, video, and 3D models. The challenge here is ensuring these embedded objects are correctly linked and accessible after the merge, and that their playback mechanisms are not disrupted.
  • Digital Signatures: These are crucial for document authentication and integrity. Merging PDFs with existing digital signatures can invalidate them, as the signature is tied to the specific content of the document.
  • Links and Bookmarks: Internal and external hyperlinks, as well as bookmarks, provide navigation within a PDF. Their accuracy and functionality must be maintained during the merge.

The Challenge of Merging Interactive PDFs

The inherent difficulty in merging interactive PDFs stems from several factors:

  • Name Collisions: Form fields and other named elements often share common names (e.g., "firstName", "address"). When merging two PDFs with fields of the same name, a tool needs a strategy to resolve this. Simply overwriting can lead to data loss, while keeping both can create ambiguity.
  • JavaScript Conflicts: Different scripts might operate on the same document events or global variables, leading to unpredictable behavior or outright errors. The order of execution and the scope of variables become critical.
  • Object References: Interactive elements are often represented by objects within the PDF structure. Merging can disrupt these object references, leading to broken links or inaccessible content.
  • Page-Level vs. Document-Level Elements: Some interactive elements are tied to specific pages, while others are document-level. A merge operation needs to correctly interpret and reposition these elements.
  • Flattening vs. Preservation: Many basic PDF merging tools might "flatten" interactive elements, converting them into static images or text. This is undesirable when the goal is to preserve functionality.

How merge-pdf Intelligently Handles Interactive Elements

The merge-pdf tool, particularly when implemented with robust libraries (often built upon the PDF specification's intricacies), employs sophisticated strategies to overcome these challenges. While the exact implementation details can vary based on the underlying library (e.g., iText, PDFBox, MuPDF), the core principles of intelligent handling remain consistent:

1. Form Field Management:

  • Unique Naming Convention: A primary strategy is to automatically rename conflicting form fields by appending a unique identifier (e.g., the source PDF's index or a generated UUID) to the original field name. This ensures that all fields within the merged document have distinct names, preventing collisions. The tool might offer configuration options to control this renaming behavior.
  • Field Merging Strategies: For specific field types (like radio buttons), the tool might intelligently group them based on their original names and associated options, ensuring that the user experience of selecting one option from a group is preserved.
  • Attribute Preservation: Crucial attributes of form fields, such as their type, read-only status, required status, default values, and associated actions (e.g., "Calculate" or "Go To Page"), are carefully extracted and carried over to the merged document.
  • Order of Appearance: The tool typically respects the order of pages from the input PDFs when constructing the merged document. This means form fields will appear in the merged document in a logical sequence corresponding to their original placement.

2. Annotation Preservation:

Annotations are generally treated as page-level content and are copied over directly. The challenge often lies in ensuring their positioning is correct relative to the content on the merged page. Advanced tools will:

  • Accurate Positioning: Ensure that annotations are placed correctly on the new page canvas, respecting any scaling or translation that might occur if page sizes or resolutions differ.
  • Annotation Types: Support for a wide range of annotation types, from simple text annotations to more complex Rich Media annotations.

3. JavaScript Handling:

This is arguably the most complex aspect. Intelligent handling involves:

  • Script Isolation: To prevent conflicts, scripts might be executed within isolated scopes. When a script is triggered, the tool ensures it operates on the correct context of the merged document.
  • Event Redirection: Event handlers (e.g., `onFormSubmit`, `onPageOpen`) might need to be remapped to ensure they trigger in the merged document. The tool identifies these handlers and ensures they are associated with the appropriate merged document events.
  • Global Variable Management: A sophisticated tool will recognize and manage global variables to avoid collisions. This might involve prefixing global variables with unique identifiers.
  • Limited Execution Environments: For security and stability, embedded JavaScript might be executed in a sandboxed environment, mimicking the behavior of a PDF viewer.
  • Configuration for Script Inclusion: Users might have the option to control which scripts are included or excluded, or to provide custom logic for merging scripts.

4. Multimedia and Rich Media Embedding:

Preserving multimedia requires careful handling of embedded files and their associated metadata:

  • File Referencing: The tool ensures that the references to embedded multimedia files remain valid within the merged document structure.
  • Player Compatibility: While the tool itself doesn't render media, it ensures that the PDF structure supporting the playback of embedded media (e.g., using Adobe Reader's Flash Player or HTML5 video/audio tags) is maintained.
  • Association with Content: Multimedia elements that are linked to specific content areas are kept associated.

5. Digital Signature Integrity:

Preserving digital signatures during a merge is exceptionally difficult because a signature validates the exact byte stream of a document. Any modification, including merging, invalidates the signature. Intelligent tools typically:

  • Alerting Users: Inform the user that merging will invalidate existing digital signatures.
  • Options for Re-signing: Provide options to re-sign the merged document after the operation, or to leave the signatures as is, clearly marked as invalid.
  • Signature Field Preservation: The signature fields themselves (the UI elements where one would sign) can be preserved, but the actual cryptographic signature will be void.

6. Link and Bookmark Management:

  • Internal Link Recalculation: Links that point to specific page numbers within a PDF will need to be recalibrated if the pages they refer to are shifted in the merged document. The tool analyzes internal link targets and updates them based on the new page structure.
  • External Link Preservation: External hyperlinks (URLs) are generally preserved as they are.
  • Bookmark Hierarchy: Bookmarks are typically preserved, and their hierarchical structure maintained. Their page references will be updated if necessary.

Underlying Technologies and Libraries

The effectiveness of merge-pdf hinges on the robust PDF manipulation libraries it employs. Common examples include:

  • Apache PDFBox: An open-source Java library that provides a comprehensive set of tools for working with PDF documents, including merging, form field manipulation, and annotation handling.
  • iText: A powerful, commercial (with an open-source AGPL version) Java library for creating, manipulating, and displaying PDF documents. It offers advanced features for form handling, digital signatures, and multimedia.
  • MuPDF: A lightweight PDF, XPS, and EPUB viewer and toolkit that also offers robust low-level PDF manipulation capabilities.
  • Ghostscript: While primarily a PostScript interpreter and PDF renderer, Ghostscript can be used for certain PDF manipulations, though its strength in preserving interactive elements might be less pronounced than specialized libraries.

A well-architected merge-pdf tool will abstract the complexities of these underlying libraries, providing a user-friendly interface while leveraging their full power for intelligent handling of interactive elements.

Configuration and Customization

To truly achieve "intelligent" handling without manual reconfiguration, a merge-pdf tool should offer:

  • Default Intelligent Behavior: The tool should, by default, attempt to preserve interactive elements with sensible strategies (e.g., unique naming for fields).
  • Optional Overrides: For advanced users, there should be options to control specific aspects of the merge, such as:
    • How to handle form field name collisions (e.g., `rename`, `overwrite`, `error`).
    • Whether to preserve or flatten specific types of interactive elements.
    • Custom JavaScript merging logic.
    • Strategies for handling digital signatures.
  • Preview Capabilities: The ability to preview the merged document before finalizing can help identify any unexpected behavior.

5+ Practical Scenarios

Scenario 1: Merging Contract Agreements with Fillable Forms

Problem:

A legal department receives multiple contract drafts, each with identical form fields (e.g., "Client Name", "Agreement Date", "Terms and Conditions Acceptance"). These need to be merged into a master document for review, and the fillable nature of these fields must be preserved for later population.

Solution with merge-pdf:

merge-pdf intelligently renames each form field from the input PDFs. For instance, "Client Name" from the first PDF might become "Client Name_1", and from the second, "Client Name_2". This prevents conflicts. Crucially, the tool preserves the field types (text fields) and their properties, allowing a user to later fill in the consolidated document without any manual field re-creation.

Code Example (Conceptual):


# Assuming merge_pdf is a Python library or CLI tool
from merge_pdf import merge

input_pdfs = ["contract_v1.pdf", "contract_v2.pdf", "contract_v3.pdf"]
output_pdf = "master_contract.pdf"

# The merge function implicitly handles form field renaming for uniqueness
merged_document = merge(input_pdfs, output_pdf)

print(f"Successfully merged {len(input_pdfs)} contracts into {output_pdf}.")
print("Form fields are preserved and uniquely named.")
        

Scenario 2: Consolidating Research Papers with Embedded Multimedia

Problem:

A research institution needs to combine several scientific papers into a single reference document. These papers contain embedded video clips demonstrating experiments or interactive 3D models of molecular structures. The multimedia must remain playable.

Solution with merge-pdf:

merge-pdf, leveraging robust underlying libraries, ensures that the references to embedded multimedia files are correctly maintained. It preserves the object structure that enables these embedded media players to function within the merged PDF. The tool does not alter the multimedia files themselves but ensures their integration into the new document structure is seamless.

Technical Consideration: The playback of embedded multimedia often relies on specific PDF viewer capabilities (e.g., Adobe Reader's Flash Player for older formats, or HTML5 support for newer ones). merge-pdf ensures the PDF structure is compatible with these viewers.

Scenario 3: Merging Survey Responses with JavaScript Calculations

Problem:

A company collects survey data in multiple PDF forms. Each form has fields that use JavaScript for real-time calculations (e.g., totaling scores). These individual survey responses need to be merged into a single report, and the calculation logic must remain active.

Solution with merge-pdf:

merge-pdf intelligently handles the embedded JavaScript. It preserves the scripts and their associated events. When the merged document is opened, the JavaScript functions designed for calculation will execute correctly within the context of the combined data, provided the field names are managed (as in Scenario 1) and the script logic is not overly dependent on specific document-level states that are altered by the merge. The tool might isolate scripts to prevent cross-contamination.

Advanced Handling: For complex scripts, a more advanced configuration might be needed to explicitly define how global variables are managed or how event handlers are re-associated with fields in the merged document.

Scenario 4: Consolidating Meeting Minutes with Annotations and Links

Problem:

A project manager needs to merge minutes from several team meetings. These minutes contain annotations (e.g., highlighted action items, sticky notes) and hyperlinks to external project resources. All annotations and links must be preserved and functional.

Solution with merge-pdf:

merge-pdf copies annotations as page-level elements, maintaining their content and position relative to the original page content. Hyperlinks (both internal to the document and external URLs) are also preserved. The tool recalculates internal links if page numbers change due to the merge, ensuring navigation remains accurate.

Scenario 5: Merging Invoices with Digital Signatures (and acknowledging limitations)

Problem:

An accounting department receives multiple invoices that have been digitally signed for authenticity. These need to be merged into a consolidated monthly report. The goal is to retain the visual representation of the signatures while understanding their validity.

Solution with merge-pdf:

merge-pdf will typically preserve the visual appearance of the digital signature fields. However, due to the cryptographic nature of digital signatures, any merge operation will invalidate them. An intelligent tool will:

  • Warn the user: Clearly communicate that merging will break the digital signature's validation.
  • Preserve the signature field: The space where the signature was applied will remain, possibly with a visual indicator of invalidity or simply as a static appearance.
  • Allow for re-signing: The user can then re-sign the consolidated document if necessary.

This scenario highlights where "intelligent handling" means informing the user about inherent limitations.

Scenario 6: Merging Forms with Conditional Logic (Advanced)

Problem:

A complex application form uses JavaScript to show or hide fields based on user input in other fields (e.g., revealing shipping address fields only if "Ship to a different address" is checked). Merging such forms into a single document requires the conditional logic to be preserved.

Solution with merge-pdf:

This is a highly advanced use case. An intelligent merge-pdf tool would attempt to preserve the JavaScript logic responsible for conditional visibility. This involves:

  • Accurate field name mapping: Ensuring that fields referenced in the JavaScript have unique names in the merged document.
  • Script context preservation: The JavaScript needs to execute within the correct scope of the merged document, referencing the correct fields.
  • Potential for script modification: In some cases, the tool might need to automatically modify the JavaScript to account for the new document structure or field naming. This is often user-configurable or requires specialized libraries.

Without specific advanced configuration, such complex conditional logic might require manual adjustment post-merge.

Global Industry Standards

The intelligent merging of interactive PDFs is governed by the fundamental specifications that define the PDF format itself. While there isn't a single "standard" for PDF merging tools that dictates how interactivity must be preserved, the adherence to these underlying specifications ensures compatibility and predictable behavior.

ISO 32000 Series (PDF Specification)

The International Organization for Standardization (ISO) publishes the PDF specification as ISO 32000. This standard defines:

  • Document Structure: The object-oriented structure of a PDF document, including objects for pages, fonts, images, and importantly, interactive form elements, annotations, and JavaScript.
  • Form Field Types and Properties: Defines the various types of form fields (Text, Button, Check Box, Radio Button, Choice, Signature) and their associated properties (e.g., `FT` for Field Type, `T` for Field Name, `V` for Field Value, `AA` for Additional Actions).
  • JavaScript in PDF: The "JavaScript for Acrobat" API, which defines how scripts can be embedded and executed within PDF documents. This includes document-level scripts, page-level scripts, and field-level scripts.
  • Annotations: The structure and types of annotations, including their appearance, flags, and relationships to document content.
  • Multimedia: The specifications for embedding rich media objects.

Any tool that claims to preserve interactive elements must correctly interpret and reconstruct these elements according to ISO 32000. A tool's intelligence lies in its ability to resolve conflicts and maintain relationships between these objects as defined by the standard.

XFA (XML Forms Architecture)

While not part of the core ISO PDF specification, XFA is a proprietary Adobe technology that allows for highly dynamic and interactive forms. Merging XFA forms presents a significantly greater challenge, as they are more akin to web applications embedded within a PDF. Standard merge-pdf tools often struggle with XFA, and specialized solutions are usually required. Most general-purpose merge-pdf tools will either flatten XFA content or present it as static images.

Accessibility Standards (WCAG, PDF/UA)

While not directly dictating merge behavior, accessibility standards like the Web Content Accessibility Guidelines (WCAG) and PDF/UA (Universal Accessibility) indirectly influence how interactive elements should be handled. For instance, ensuring form fields are properly labeled and navigable is crucial for screen reader users. An intelligent merge tool should ideally preserve these accessibility features.

  • PDF/UA (ISO 14289): This standard focuses on ensuring PDF documents are accessible. When merging, preserving the logical reading order and ensuring interactive elements are correctly tagged is vital for PDF/UA compliance.

Best Practices for Intelligent Merging

Based on these standards, best practices for intelligent PDF merging include:

  • Prioritize Uniqueness: Always ensure that form field names and other unique identifiers are distinct in the merged document.
  • Maintain Object Relationships: Preserve the connections between fields, scripts, and document events.
  • Respect Page Structure: Ensure elements are placed correctly on the merged pages.
  • Handle Script Scope: Implement mechanisms to prevent JavaScript conflicts.
  • Inform Users: Be transparent about limitations, especially concerning digital signatures and complex XFA forms.
  • Adhere to ISO 32000: Ensure all operations are compliant with the PDF specification.

Multi-language Code Vault

This section provides code snippets in various popular programming languages demonstrating how one might interact with a conceptual merge-pdf tool or library. The focus is on illustrating the *invocation* of merging capabilities, assuming the underlying library handles the intelligent preservation of interactive elements. Actual implementation of the intelligent logic would be within the library itself.

Python Example (using a hypothetical pdf_merger library)

This example uses a conceptual Python library that abstracts the complex PDF merging logic.


from pdf_merger import merge_pdfs, MergeOptions

# List of input PDF files
input_files = ["document1.pdf", "document2.pdf", "document3.pdf"]
output_file = "merged_interactive.pdf"

# Configure merge options to prioritize preservation of interactive elements
# The library's defaults are assumed to be intelligent
merge_options = MergeOptions(
    preserve_form_fields=True,
    preserve_javascript=True,
    preserve_annotations=True,
    preserve_multimedia=True,
    form_field_collision_strategy="rename_unique" # e.g., add suffixes
)

try:
    merge_pdfs(input_files, output_file, options=merge_options)
    print(f"Successfully merged '{', '.join(input_files)}' into '{output_file}'.")
    print("Interactive elements have been intelligently preserved.")
except Exception as e:
    print(f"An error occurred: {e}")
        

JavaScript Example (Node.js with a hypothetical pdf-merge-tool package)

This example uses Node.js and assumes an npm package for PDF merging.


// Assuming 'pdf-merge-tool' is an installed npm package
const pdfMerger = require('pdf-merge-tool');

const inputFiles = ['report_part1.pdf', 'report_part2.pdf'];
const outputFile = 'full_report.pdf';

// Options to ensure interactive elements are preserved
const mergeOptions = {
    preserveFormFields: true,
    preserveJavascript: true,
    preserveAnnotations: true,
    preserveMultimedia: true,
    // Other potential options for advanced handling might exist
};

pdfMerger.merge(inputFiles, outputFile, mergeOptions)
    .then(() => {
        console.log(`PDFs merged successfully into ${outputFile}.`);
        console.log('Interactive elements should be functional.');
    })
    .catch((error) => {
        console.error('Error merging PDFs:', error);
    });
        

Java Example (using Apache PDFBox's `PDFMergerUtility`)

Apache PDFBox is a popular library. While it provides merging capabilities, direct control over *intelligent* preservation of all interactive elements might require more granular code than a simple merge utility. However, we can illustrate the basic merge and assume PDFBox's default behavior is to preserve as much as possible.


import org.apache.pdfbox.multipdf.PDFMergerUtility;
import org.apache.pdfbox.pdmodel.PDDocument;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class PdfMerger {

    public static void main(String[] args) {
        List<String> inputPdfPaths = new ArrayList<>();
        inputPdfPaths.add("invoice_A.pdf");
        inputPdfPaths.add("invoice_B.pdf");
        String outputFilePath = "monthly_invoices.pdf";

        PDFMergerUtility merger = new PDFMergerUtility();
        merger.setDestinationFileName(outputFilePath);

        try {
            // Load documents to ensure they are processed correctly
            // PDFBox's PDFMergerUtility generally preserves interactive elements by default
            // More advanced manipulation of specific elements would require
            // direct PDDocument manipulation.
            for (String path : inputPdfPaths) {
                merger.addSource(new File(path));
            }

            merger.mergeDocuments(null); // null indicates use default merge process

            System.out.println("Successfully merged PDFs into: " + outputFilePath);
            System.out.println("Interactive elements are preserved to the extent supported by PDFBox's default merge.");

        } catch (IOException e) {
            System.err.println("Error merging PDFs: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
        

Command-Line Interface (CLI) Example (using a hypothetical merge-pdf-cli tool)

Many tools offer a CLI for quick integration into scripts.


# Assuming 'merge-pdf-cli' is installed and in your PATH
# The tool's options are crucial for intelligent handling.
# '-pff' for preserve form fields, '-pj' for preserve javascript, etc.

merge-pdf-cli \
  --input document_part1.pdf document_part2.pdf \
  --output combined_document.pdf \
  --preserve-form-fields \
  --preserve-javascript \
  --preserve-annotations \
  --preserve-multimedia

echo "PDF merge command executed. Check combined_document.pdf for interactive elements."
        

These examples demonstrate how a user or developer would *invoke* a PDF merging process with instructions to preserve interactivity. The actual intelligence lies within the underlying libraries and the merge-pdf tool's implementation of them.

Future Outlook

The landscape of document processing is continuously evolving, and the intelligent merging of PDFs with interactive elements is no exception. Several trends and advancements are shaping the future:

AI and Machine Learning for Intelligent Merging

Artificial intelligence and machine learning are poised to play a significant role. Future merge-pdf tools might:

  • Contextual Understanding: AI could analyze the content and structure of PDFs to better understand the relationships between interactive elements, even when names are ambiguous.
  • Proactive Conflict Resolution: Instead of simply renaming fields, AI might suggest more semantically appropriate ways to merge them, based on the context of the data.
  • Smart JavaScript Adaptation: ML models could learn to predict and adapt JavaScript behavior across merged documents, resolving complex dependencies and avoiding errors more effectively than rule-based systems.
  • Automated Tagging for Accessibility: AI could automatically tag interactive elements to meet PDF/UA standards during the merge process, ensuring accessibility.

Enhanced Cloud-Native PDF Services

The shift towards cloud computing will lead to more powerful, scalable, and API-driven PDF merging services. These services will:

  • Serverless Processing: Offer highly scalable, on-demand PDF merging without the need for managing infrastructure.
  • Microservices Architecture: Break down complex PDF operations into specialized microservices, allowing for more granular control and specialized handling of interactive elements.
  • Integration with Workflow Automation: Seamlessly integrate with other cloud services (e.g., document management systems, RPA platforms) to automate complex document workflows.

Support for Emerging Interactive Technologies

As new interactive technologies emerge, PDF merge tools will need to adapt. This includes:

  • Advanced Multimedia Formats: Better support for newer video, audio, and 3D model formats.
  • Web Technologies Integration: Deeper integration with web technologies, potentially allowing for the embedding of web components or even small web applications within PDFs, and preserving their interactivity upon merging.
  • Blockchain Integration: While not directly related to merging interactivity, future PDF workflows might involve blockchain for verifiable document integrity, and merge tools will need to be compatible with such systems.

Cross-Platform Compatibility and Ubiquity

The demand for consistent PDF handling across various devices and operating systems will continue to grow. Future tools will focus on:

  • Universal Rendering Engines: Employing robust rendering engines that ensure interactive elements behave identically across different platforms and PDF viewers.
  • Web-Based PDF Editors: The rise of sophisticated web-based PDF editors will mean that merging can occur directly in the browser, with advanced interactive element preservation.

Focus on User Experience and Customization

While intelligence is key, user control remains important. Future tools will likely offer:

  • Intuitive Visual Editors: Allowing users to visually map or reconfigure interactive elements if automated handling isn't perfect.
  • Granular Control over Preservation: More fine-grained options to choose exactly which types of interactive elements to preserve and how.
  • Pre-defined Templates for Merging: For common scenarios (like contract merging), pre-configured settings to ensure optimal preservation of specific interactive elements.

In conclusion, the future of merging PDFs with interactive elements points towards increasingly sophisticated, AI-driven, and cloud-native solutions. The goal will always be to abstract complexity, providing users with a seamless experience where the integrity and functionality of their dynamic documents are maintained, regardless of how many sources are combined.