function createAttachedDocumentsPdf($product)
{
    $attachedDocuments = $product->get_all_linked_attachments();
    //	trigger_error("Started to convert products to PDF!", E_USER_NOTICE);
    if (empty($attachedDocuments)) {
        return null;
    }
    $docHandler = null;
    $catArgs = array();
    $filenameArgs = array();
    $filenames = array();
    $attachArgs = array();
    $ids = range('A', chr(ord('A') + count($attachedDocuments) - 1));
    foreach ($attachedDocuments as $attachment_id) {
        $revision_id = $attachment_id;
        $revision_check = new DocumentRevision();
        if (!$revision_check->retrieve($attachment_id)) {
            $document = new Document();
            if ($document->retrieve($attachment_id)) {
                $revision_id = $document->document_revision_id;
                $purpose = $document->document_purpose_c;
            }
        } else {
            $document = new Document();
            if ($document->retrieve($revision_check->document_id)) {
                $purpose = $document->document_purpose_c;
            }
        }
        if ($purpose == 'Catalog') {
            //1.7.6 include only documents marked For Product Catalog
            $revision = new DocumentRevision();
            if ($revision->retrieve($revision_id)) {
                if ($revision->file_ext != 'pdf') {
                    //SugarCE determines file type unreliably, so only extension is used
                    if (!$docHandler) {
                        $docHandler = new DocumentHandler();
                    }
                    $filename = getDocumentFilename($revision_id);
                    // skuria failo varda su nuoroda
                    // we need a descriptive filename for word macros and pdf attachments
                    $realFilenameWithExtension = getRealFilename($revision);
                    copy($filename, $realFilenameWithExtension);
                    $filenames[] = $realFilenameWithExtension;
                    $attachmentFilename = $docHandler->convertToPdf($realFilenameWithExtension);
                    if ($attachmentFilename) {
                        $catArgs[] = current($ids);
                        $filenameArgs[] = current($ids) . '=' . $attachmentFilename;
                        $filenames[] = $attachmentFilename;
                        next($ids);
                    } else {
                        // file was not possible to convert
                        $attachArgs[] = $realFilenameWithExtension;
                        $GLOBALS['log']->fatal('OQC DocumentHandler: file ' . $realFilenameWithExtension . ' is not possible to convert to pdf!');
                        continue;
                    }
                } else {
                    $attachmentFilename = getDocumentFilename($revision_id);
                    $catArgs[] = current($ids);
                    $filenameArgs[] = current($ids) . '=' . $attachmentFilename;
                    next($ids);
                }
            }
        }
    }
    $testPdfFiles = implode('', $catArgs);
    //test if there are any pdf file available for pdftk
    //$GLOBALS['log']->error('OQC pdf testfiles'.$testPdfFiles);
    $testAttachFiles = implode('', $attachArgs);
    //test if there are attachement files
    if (empty($testPdfFiles)) {
        foreach ($filenames as $attachfile) {
            unlink($attachfile);
        }
        return null;
    }
    $outputFilename = tempnam(TMP_DIR, '');
    $finalFilename = tempnam(TMP_DIR, '');
    $contractFilename = tempnam(TMP_DIR, '');
    if (!empty($testPdfFiles)) {
        // merge files
        $pdfTkArgs = implode(' ', $filenameArgs) . ' cat ' . implode(' ', $catArgs) . " output {$outputFilename} keep_first_id";
        if (execute(PDFTK, $pdfTkArgs) == 0) {
            copy($outputFilename, $contractFilename);
            //owerwrite source file
        } else {
            $GLOBALS['log']->error('Failed to merge PDF files!');
            //cleanup of temporary files
            unlink($finalFilename);
            unlink($outputFilename);
            unlink($contractFilename);
            foreach ($filenames as $attachfile) {
                unlink($attachfile);
            }
            return null;
        }
    }
    if (!empty($testAttachFiles) && !empty($testPdfFiles)) {
        $pdfTkArgs = "{$contractFilename} attach_files " . implode(' ', $attachArgs) . " output {$finalFilename}";
        if (execute(PDFTK, $pdfTkArgs) == 0) {
            copy($finalFilename, $contractFilename);
        } else {
            $GLOBALS['log']->error('Failed to attach documents to final PDF!');
        }
    }
    //cleanup of temporary files
    unlink($finalFilename);
    unlink($outputFilename);
    foreach ($filenames as $attachfile) {
        unlink($attachfile);
    }
    $contractFilenamePdf = str_replace("\\", "/", dirname($contractFilename) . DIRECTORY_SEPARATOR . basename($contractFilename, '.tmp') . '.pdf');
    rename($contractFilename, $contractFilenamePdf);
    //$GLOBALS['log']->error('OQC: Attachment filename is '.$contractFilenamePdf);
    //return str_replace("\\","/",$contractFilename.'.pdf');
    return $contractFilenamePdf;
}