PHPExcel如何定义新客户PAPERSIZE(不是fontsize)

时间:2015-02-26 08:54:56

标签: php phpexcel

我需要一些关于PHPEXCEL中的纸张大小的帮助

我正在使用PHPExcel 1.8

我想知道该怎么做

如果我重定向到 printBigPaper.php ,它将呈现带有20英寸x 25英寸打印区域的excel文件(让我们命名为:MY_CUSTOM_BIG_PAPER)

如果我重定向到 printSmallPaper.php ,它将使用3英寸和3英寸打印区域(MY_CUSTOM_SMALL_PAPER)呈现excel文件**。

这就是我需要做的所有清单。

如果我手动使用Excel,我可以简单地在一生中定义一次新的纸张尺寸 然后在我生成excel文件后,打开它,然后选择纸张大小。

但我想用PHPExcel自动完成。

我发现的是:

我查看了“Classes / PHPExcel / Worksheet / PageSetup.php”中的代码 我发现PHPExcel的66张DEFINED PAPER SIZE

我的大部分内容尚未在我的Excel中定义。

我尝试使用编号37打印,即PAPERSIZE_MONARCH_ENVELOPE 并且它很有效,尽管我的Excel中没有这种纸张尺寸。

这让我想到, 如果PHPExcel可以制作66 CONST PAPER SIZE并且我的excel明白这一点,我也可以定义新的PAPER SIZE。所以我把CONST MY_CUSTOM_BIG_PAPER作为67号。

然后我尝试setPaperSize(PHPExcel_Worksheet_PageSetup :: MY_CUSTOM_BIG_PAPER)并且它没有给出任何错误。

但我不知道在哪里覆盖代码,以便PHPEXCEL可以理解,如果我选择MY_CUSTOM_BIG_PAPER,它将产生20英寸对25英寸的打印区域

谢谢你们,我真的希望你们能帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

没有内置机制允许您从自己的代码中定义新的纸张大小....如果要添加新的纸张大小,则需要更改PHPExcel代码的相关部分({{ 1}});但是您还需要修改底层的Reader / Writer代码来处理自定义纸张尺寸。

请注意,PHPExcel中已定义的66种不同纸张尺寸中的许多都不会在您的MS Excel版本中定义,因为许多是特定于区域设置的