コード例 #1
1
ファイル: makePDF.php プロジェクト: bobjacobsen/EventTools
<?php

$p = PDF_new();
/*  open new PDF file; insert a file name to create the PDF on disk */
if (PDF_begin_document($p, "", "") == 0) {
    die("Error: " . PDF_get_errmsg($p));
}
PDF_set_info($p, "Creator", "hello.php");
PDF_set_info($p, "Author", "Rainer Schaaf");
PDF_set_info($p, "Title", "Hello world (PHP)!");
PDF_begin_page_ext($p, 595, 842, "");
$font = PDF_load_font($p, "Helvetica-Bold", "winansi", "");
PDF_setfont($p, $font, 24.0);
PDF_set_text_pos($p, 50, 700);
PDF_show($p, "Hello world!");
PDF_continue_text($p, "(says PHP)");
PDF_end_page_ext($p, "");
PDF_end_document($p, "");
$buf = PDF_get_buffer($p);
$len = strlen($buf);
header("Content-type: application/pdf");
header("Content-Length: {$len}");
header("Content-Disposition: inline; filename=hello.pdf");
print $buf;
PDF_delete($p);
コード例 #2
0
ファイル: SC_Pdf.php プロジェクト: khrisna/eccubedrm
 function display()
 {
     if (isset($this->pdf)) {
         // ページを閉じる
         $this->closePage();
         // PDFの終了
         PDF_end_document($this->pdf, NULL);
         // 出力用データの取得
         $buf = PDF_get_buffer($this->pdf);
         $len = strlen($buf);
         header("Content-type: application/pdf");
         header("Content-Length: {$len}");
         header("Content-Disposition: inline; filename=" . date("YmdHis") . ".pdf");
         /*
          * session_start()を事前に呼び出している場合に出力される以下のヘッダは、
          * URL直接呼び出し時にエラーを発生させるので空にしておく。
          *
          * Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
          * Progma: no-cache
          *
          */
         header("Cache-Control: ");
         header("Pragma: ");
         print $buf;
         // PDF解放
         PDF_delete($this->pdf);
     } else {
         print "PDFが生成されていません。";
     }
     exit;
 }
コード例 #3
0
function carl_merge_pdfs_pdflib($pdffiles, $titles = array(), $metadata = array(), $metadata_encoding = 'UTF-8')
{
    if (gettype($pdffiles) != 'array') {
        trigger_error('$pdffiles must be an array');
        return false;
    }
    if (!function_exists('PDF_new')) {
        trigger_error('You must have PDFlib installed in order to run carl_merge_pdfs()');
        return false;
    }
    if (empty($pdffiles)) {
        return NULL;
    }
    $i = 0;
    $indoc = 0;
    $pdfver = '1.0';
    $maxpdfver = '1.0';
    $p = PDF_new();
    if (defined('PDFLIB_LICENSE_KEY_FILE')) {
        PDF_set_parameter($p, 'licensefile', PDFLIB_LICENSE_KEY_FILE);
    } else {
        trigger_error('Please define the constant PDFLIB_LICENSE_KEY_FILE with the filesystem location of your PDFlib license keys.');
    }
    /* This means we must check return values of load_font() etc. */
    //PDF_set_parameter($p, 'errorpolicy', 'return');
    /* -----------------------------------------------------------------
     * Loop over all input documents to retrieve the highest PDF version
     * used
     * -----------------------------------------------------------------
     */
    foreach ($pdffiles as $pdffile) {
        /* Open the input PDF */
        if (function_exists('PDF_open_pdi_document')) {
            $indoc = PDF_open_pdi_document($p, $pdffile, '');
        } else {
            $indoc = PDF_open_pdi($p, $pdffile, '', 0);
        }
        // pre-pecl 2.1
        if ($indoc < 1) {
            trigger_error('Error: ' . PDF_get_errmsg($p));
            continue;
        }
        /* Retrieve the PDF version of the current document. If it is higher 
         * than the maximum version retrieved until now make it to be the
         * maximum version.
         */
        if (function_exists('PDF_pcos_get_number')) {
            $pdfver = PDF_pcos_get_number($p, $indoc, 'pdfversion') / 10;
        } else {
            $pdfver = PDF_get_pdi_value($p, 'version', $indoc, 0, 0) / 10;
        }
        if ($pdfver > $maxpdfver) {
            $maxpdfver = $pdfver;
        }
        /* Close the input document.
         * Depending on the number of PDFs and memory strategy, PDI handles
         * to all documents could also be kept open between the first and
         * second run (requires more memory, but runs faster). We close all
         * PDFs after checking the version number, and reopen them in the
         * second loop (requires less memory, but is slower).
         */
        if (function_exists('PDF_close_pdi_document')) {
            PDF_close_pdi_document($p, $indoc);
        } else {
            PDF_close_pdi($p, $indoc);
        }
        // pre-pecl 2.1
    }
    /* ---------------------------------------------------------------
     * Open the output document with the maximum PDF version retrieved
     * --------------------------------------------------------------- 
     */
    if ($maxpdfver > '1.0') {
        $optlist = 'compatibility=' . $maxpdfver;
    } else {
        $optlist = '';
    }
    if (PDF_begin_document($p, '', $optlist) == -1) {
        trigger_error('Error: ' . PDF_get_errmsg($p));
    }
    foreach ($metadata as $key => $value) {
        PDF_set_info($p, $key, $value);
    }
    //PDF_set_info($p, 'Creator', 'Test Creator');
    //PDF_set_info($p, 'Title', $title . ' $Revision: 1.1 $');
    //echo '4 ';
    /* --------------------------------------------------------------------
     * Loop over all input documents to merge them into the output document       * used
     * --------------------------------------------------------------------
     */
    foreach ($pdffiles as $pdffile) {
        $endpage = $pageno = $page = 0;
        /* Open the input PDF */
        if (function_exists('PDF_open_pdi_document')) {
            $indoc = PDF_open_pdi_document($p, $pdffile, '');
        } else {
            $indoc = PDF_open_pdi($p, $pdffile, '', 0);
        }
        // pre-pecl 2.1
        if ($indoc < 1) {
            trigger_error('Error: ' . PDF_get_errmsg($p));
            continue;
        }
        if (function_exists('PDF_pcos_get_number')) {
            $endpage = (int) PDF_pcos_get_number($p, $indoc, '/Root/Pages/Count');
        } else {
            $endpage = (int) PDF_get_pdi_value($p, '/Root/Pages/Count', $indoc, 0, 0);
        }
        // pre-pecl 2.1
        /* Loop over all pages of the input document */
        for ($pageno = 1; $pageno <= $endpage; $pageno++) {
            $page = PDF_open_pdi_page($p, $indoc, $pageno, '');
            if ($page == 0) {
                trigger_error('Error: ' . PDF_get_errmsg($p));
                continue;
            }
            /* Dummy page size; will be adjusted later */
            PDF_begin_page_ext($p, 10, 10, '');
            /* Create a bookmark with the file name */
            if ($pageno == 1) {
                if (isset($titles[$pdffile])) {
                    $bookmark = pack('H*', 'feff') . mb_convert_encoding($titles[$pdffile], 'UTF-16', $metadata_encoding);
                } else {
                    $bookmark = pack('H*', 'feff') . mb_convert_encoding($pdffile, 'UTF-16', $metadata_encoding);
                }
                /* if(isset($titles[$pdffile]))
                				$bookmark = $titles[$pdffile];
                			else
                				$bookmark = $pdffile; */
                PDF_create_bookmark($p, $bookmark, '');
            }
            /* Place the imported page on the output page, and
             * adjust the page size
             */
            PDF_fit_pdi_page($p, $page, 0, 0, 'adjustpage');
            PDF_close_pdi_page($p, $page);
            PDF_end_page_ext($p, '');
        }
        /* Close the input document */
        if (function_exists('PDF_close_pdi_document')) {
            PDF_close_pdi_document($p, $indoc);
        } else {
            PDF_close_pdi($p, $indoc);
        }
        // pre-pecl 2.1
    }
    PDF_end_document($p, '');
    $buffer = PDF_get_buffer($p);
    pdf_delete($p);
    return $buffer;
}