我正在使用PHP扩展FPDF来创建PDF文档。我相信我的边距设置为1“一直有合理的文本,但是当我创建PDF文档,下载并在Acrobat中打开它时,我看到左边距为1”,但右边距约为1.2“我已经通过fpdf.php寻找问题而无法找到它。
$oPdf = new myPDF('P', 'mm', 'letter');
$oPdf->Open();
$oPdf->SetMargins(25.4,25.4,25.4,25.4);
//set default font/colors
$oPdf->SetFont('Times', '', 12);
$oPdf->SetTextColor(0,0,0);
$oPdf->SetFillColor(255, 255, 255);
//add the page
$oPdf->AddPage();
$oPdf->AliasNbPages();
如果我更改了上边距和左边距值,则文档会反映更改。如果我改变了底部或右边,则没有变化。我已经看到了如何在设置自动默认分页符时更改底部,在其他地方回答。我的问题是如何更改正确的保证金,它实际上在我的文件中生效?我感觉这与文本的测量有关,当FPDF计算对齐的文本是否适合该行时。我检查了线的宽度,它输出165.1(6.5英寸x 25.4毫米)完全难倒。
Jarod
答案 0 :(得分:1)
好吧,我觉得有点愚蠢,但希望这会对别人有所帮助。我使用FpdfMulticell(参见http://www.interpid.eu/fpdf-multicell)来更好地控制单元格以及在PDF文档上显示内容的其他部分。除了创建的冗余之外,这一切都很棒。此功能的组件需要创建单元格的宽度和高度。这就是问题所在。出于某种原因,我通过了160而不是165.1。 6.5“x 25.4 = 165.1。当我浏览引用以在类中创建multiCell函数时,它解决了我的问题。
如果您要使用多单元,我建议在页面的开头声明一个变量,例如$ pw(即页面宽度),然后传递变量而不是传递常量值。这样你的值是统一的,如果你想改变它,那么你只有1个值可以改变。确保您发表评论,以便了解该变量的用途。
$oMulticell = new FpdfMulticell($oPdf);
$pw = 165.1
//Make sure that the content is long enough to go to another line or you won't
//notice the difference with the justified text
$content = "Write some text here Write some text here Write some text here Write some text here Write some text here Write some text here Write some text here Write some text here ";
$oMulticell->multiCell($pw,10,$content,0,"J",1,0,0,0,0);
这有效!