PHP - 创建 PDF 裁切框
PHP - Create a PDF Trimbox
我正在使用 FPDF 创建 PDF 文件。但我需要文件有 trimbox 设置。怎么做。
裁切框需要 210 毫米 x 297 毫米,文件有 7 毫米的裁切标记,所以文件的实际尺寸更大...214 毫米 x 311 毫米
我找到了 PDFLib,但是没有预算购买这个服务器端软件。
似乎有两个工具可以执行此操作:
Briss(如 Whosebug post 中所述):
PHP Insert Trim box or bleed box into PDF document
nicknux 的 pdfboxer(如本 Whosebug post 中所述):
Ghostscript: adding BleedBox
希望这两个中的一个能有所帮助。
如果您希望保留完整的 php 代码路线,您可以使用 FPDF 的这个派生版本:TCPDF by Nicola Asuni
他支持设置页面格式并指定 trimbox、mediabox、cropbox、bleedbox 和 artbox 的值,如他的一些示例所示。以下代码是 one of his examples 并展示了它的实际效果。
尽管 its github repository says TCPDF should be considered obsolete, the successor's repository tc-lib-pdf 说还没有使用它,因为它仍在开发中,所以现在使用旧的可能是更安全的选择,并密切关注新的开发情况。
<?php
//============================================================+
// File name : example_060.php
// Begin : 2010-05-17
// Last Update : 2013-05-14
//
// Description : Example 060 for TCPDF class
// Advanced page settings.
//
// Author: Nicola Asuni
//
// (c) Copyright:
// Nicola Asuni
// Tecnick.com LTD
// www.tecnick.com
// info@tecnick.com
//============================================================+
/**
* Creates an example PDF TEST document using TCPDF
* @package com.tecnick.tcpdf
* @abstract TCPDF - Example: Advanced page settings.
* @author Nicola Asuni
* @since 2010-05-17
*/
// Include the main TCPDF library (search for installation path).
require_once('tcpdf_include.php');
// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Nicola Asuni');
$pdf->SetTitle('TCPDF Example 060');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');
// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 060', PDF_HEADER_STRING);
// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
// set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
// set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
// set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
// set some language-dependent strings (optional)
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
require_once(dirname(__FILE__).'/lang/eng.php');
$pdf->setLanguageArray($l);
}
// set font
$pdf->SetFont('helvetica', '', 20);
// ---------------------------------------------------------
// set page format (read source code documentation for further information)
$page_format = array(
'MediaBox' => array ('llx' => 0, 'lly' => 0, 'urx' => 210, 'ury' => 297),
'CropBox' => array ('llx' => 0, 'lly' => 0, 'urx' => 210, 'ury' => 297),
'BleedBox' => array ('llx' => 5, 'lly' => 5, 'urx' => 205, 'ury' => 292),
'TrimBox' => array ('llx' => 10, 'lly' => 10, 'urx' => 200, 'ury' => 287),
'ArtBox' => array ('llx' => 15, 'lly' => 15, 'urx' => 195, 'ury' => 282),
'Dur' => 3,
'trans' => array(
'D' => 1.5,
'S' => 'Split',
'Dm' => 'V',
'M' => 'O'
),
'Rotate' => 90,
'PZ' => 1,
);
// Check the example n. 29 for viewer preferences
// add first page ---
$pdf->AddPage('P', $page_format, false, false);
$pdf->Cell(0, 12, 'First Page', 1, 1, 'C');
// add second page ---
$page_format['Rotate'] = 270;
$pdf->AddPage('P', $page_format, false, false);
$pdf->Cell(0, 12, 'Second Page', 1, 1, 'C');
// ---------------------------------------------------------
//Close and output PDF document
$pdf->Output('example_060.pdf', 'I');
//============================================================+
// END OF FILE
//============================================================+
我正在使用 FPDF 创建 PDF 文件。但我需要文件有 trimbox 设置。怎么做。
裁切框需要 210 毫米 x 297 毫米,文件有 7 毫米的裁切标记,所以文件的实际尺寸更大...214 毫米 x 311 毫米
我找到了 PDFLib,但是没有预算购买这个服务器端软件。
似乎有两个工具可以执行此操作:
Briss(如 Whosebug post 中所述): PHP Insert Trim box or bleed box into PDF document
nicknux 的 pdfboxer(如本 Whosebug post 中所述): Ghostscript: adding BleedBox
希望这两个中的一个能有所帮助。
如果您希望保留完整的 php 代码路线,您可以使用 FPDF 的这个派生版本:TCPDF by Nicola Asuni
他支持设置页面格式并指定 trimbox、mediabox、cropbox、bleedbox 和 artbox 的值,如他的一些示例所示。以下代码是 one of his examples 并展示了它的实际效果。
尽管 its github repository says TCPDF should be considered obsolete, the successor's repository tc-lib-pdf 说还没有使用它,因为它仍在开发中,所以现在使用旧的可能是更安全的选择,并密切关注新的开发情况。
<?php
//============================================================+
// File name : example_060.php
// Begin : 2010-05-17
// Last Update : 2013-05-14
//
// Description : Example 060 for TCPDF class
// Advanced page settings.
//
// Author: Nicola Asuni
//
// (c) Copyright:
// Nicola Asuni
// Tecnick.com LTD
// www.tecnick.com
// info@tecnick.com
//============================================================+
/**
* Creates an example PDF TEST document using TCPDF
* @package com.tecnick.tcpdf
* @abstract TCPDF - Example: Advanced page settings.
* @author Nicola Asuni
* @since 2010-05-17
*/
// Include the main TCPDF library (search for installation path).
require_once('tcpdf_include.php');
// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Nicola Asuni');
$pdf->SetTitle('TCPDF Example 060');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');
// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 060', PDF_HEADER_STRING);
// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
// set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
// set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
// set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
// set some language-dependent strings (optional)
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
require_once(dirname(__FILE__).'/lang/eng.php');
$pdf->setLanguageArray($l);
}
// set font
$pdf->SetFont('helvetica', '', 20);
// ---------------------------------------------------------
// set page format (read source code documentation for further information)
$page_format = array(
'MediaBox' => array ('llx' => 0, 'lly' => 0, 'urx' => 210, 'ury' => 297),
'CropBox' => array ('llx' => 0, 'lly' => 0, 'urx' => 210, 'ury' => 297),
'BleedBox' => array ('llx' => 5, 'lly' => 5, 'urx' => 205, 'ury' => 292),
'TrimBox' => array ('llx' => 10, 'lly' => 10, 'urx' => 200, 'ury' => 287),
'ArtBox' => array ('llx' => 15, 'lly' => 15, 'urx' => 195, 'ury' => 282),
'Dur' => 3,
'trans' => array(
'D' => 1.5,
'S' => 'Split',
'Dm' => 'V',
'M' => 'O'
),
'Rotate' => 90,
'PZ' => 1,
);
// Check the example n. 29 for viewer preferences
// add first page ---
$pdf->AddPage('P', $page_format, false, false);
$pdf->Cell(0, 12, 'First Page', 1, 1, 'C');
// add second page ---
$page_format['Rotate'] = 270;
$pdf->AddPage('P', $page_format, false, false);
$pdf->Cell(0, 12, 'Second Page', 1, 1, 'C');
// ---------------------------------------------------------
//Close and output PDF document
$pdf->Output('example_060.pdf', 'I');
//============================================================+
// END OF FILE
//============================================================+