Skip to content

Commit c742b71

Browse files
committed
Feat: paper
1 parent b79b791 commit c742b71

File tree

6 files changed

+140
-10
lines changed

6 files changed

+140
-10
lines changed

include/xlswriter.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,7 @@ void comment_show(xls_resource_write_t *res);
307307
void hide_worksheet(xls_resource_write_t *res);
308308
void first_worksheet(xls_resource_write_t *res);
309309
void zoom(xls_resource_write_t *res, zend_long zoom);
310+
void paper(xls_resource_write_t *res, zend_long type);
310311
void gridlines(xls_resource_write_t *res, zend_long option);
311312
void auto_filter(zend_string *range, xls_resource_write_t *res);
312313
void protection(xls_resource_write_t *res, zend_string *password);

kernel/excel.c

Lines changed: 69 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,10 @@ ZEND_BEGIN_ARG_INFO_EX(xls_set_row_arginfo, 0, 0, 3)
186186
ZEND_ARG_INFO(0, height)
187187
ZEND_END_ARG_INFO()
188188

189+
ZEND_BEGIN_ARG_INFO_EX(xls_set_paper_arginfo, 0, 0, 1)
190+
ZEND_ARG_INFO(0, paper)
191+
ZEND_END_ARG_INFO()
192+
189193
ZEND_BEGIN_ARG_INFO_EX(xls_set_global_format, 0, 0, 1)
190194
ZEND_ARG_INFO(0, format_handle)
191195
ZEND_END_ARG_INFO()
@@ -972,6 +976,23 @@ PHP_METHOD(vtiful_xls, setRow)
972976
}
973977
/* }}} */
974978

979+
/** {{{ \Vtiful\Kernel\Excel::setPaper(int $paper)
980+
*/
981+
PHP_METHOD(vtiful_xls, setPaper)
982+
{
983+
zend_long type = 0;
984+
985+
ZEND_PARSE_PARAMETERS_START(1, 1)
986+
Z_PARAM_LONG(type)
987+
ZEND_PARSE_PARAMETERS_END();
988+
989+
ZVAL_COPY(return_value, getThis());
990+
991+
xls_object *obj = Z_XLS_P(getThis());
992+
993+
paper(&obj->write_ptr, type);
994+
}
995+
975996
/** {{{ \Vtiful\Kernel\Excel::defaultFormat(resource $format)
976997
*/
977998
PHP_METHOD(vtiful_xls, defaultFormat)
@@ -1149,10 +1170,9 @@ PHP_METHOD(vtiful_xls, protection)
11491170
}
11501171
/* }}} */
11511172

1152-
1153-
/** {{{ \Vtiful\Kernel\Excel::setPrintedPortrait()
1173+
/** {{{ \Vtiful\Kernel\Excel::setPortrait()
11541174
*/
1155-
PHP_METHOD(vtiful_xls, setPrintedPortrait)
1175+
PHP_METHOD(vtiful_xls, setPortrait)
11561176
{
11571177
ZVAL_COPY(return_value, getThis());
11581178

@@ -1165,9 +1185,9 @@ PHP_METHOD(vtiful_xls, setPrintedPortrait)
11651185
/* }}} */
11661186

11671187

1168-
/** {{{ \Vtiful\Kernel\Excel::setPrintedLandscape()
1188+
/** {{{ \Vtiful\Kernel\Excel::setLandscape()
11691189
*/
1170-
PHP_METHOD(vtiful_xls, setPrintedLandscape)
1190+
PHP_METHOD(vtiful_xls, setLandscape)
11711191
{
11721192
ZVAL_COPY(return_value, getThis());
11731193

@@ -1552,6 +1572,7 @@ zend_function_entry xls_methods[] = {
15521572
PHP_ME(vtiful_xls, mergeCells, xls_merge_cells_arginfo, ZEND_ACC_PUBLIC)
15531573
PHP_ME(vtiful_xls, setColumn, xls_set_column_arginfo, ZEND_ACC_PUBLIC)
15541574
PHP_ME(vtiful_xls, setRow, xls_set_row_arginfo, ZEND_ACC_PUBLIC)
1575+
PHP_ME(vtiful_xls, setPaper, xls_set_paper_arginfo, ZEND_ACC_PUBLIC)
15551576
PHP_ME(vtiful_xls, defaultFormat, xls_set_global_format, ZEND_ACC_PUBLIC)
15561577
PHP_ME(vtiful_xls, freezePanes, xls_freeze_panes_arginfo, ZEND_ACC_PUBLIC)
15571578

@@ -1561,8 +1582,8 @@ zend_function_entry xls_methods[] = {
15611582
PHP_ME(vtiful_xls, zoom, xls_sheet_zoom_arginfo, ZEND_ACC_PUBLIC)
15621583
PHP_ME(vtiful_xls, gridline, xls_sheet_gridline_arginfo, ZEND_ACC_PUBLIC)
15631584

1564-
PHP_ME(vtiful_xls, setPrintedPortrait, xls_set_printed_portrait_arginfo, ZEND_ACC_PUBLIC)
1565-
PHP_ME(vtiful_xls, setPrintedLandscape, xls_set_printed_landscape_arginfo, ZEND_ACC_PUBLIC)
1585+
PHP_ME(vtiful_xls, setPortrait, xls_set_printed_portrait_arginfo, ZEND_ACC_PUBLIC)
1586+
PHP_ME(vtiful_xls, setLandscape, xls_set_printed_landscape_arginfo, ZEND_ACC_PUBLIC)
15661587

15671588
PHP_ME(vtiful_xls, setCurrentSheetHide, xls_hide_sheet_arginfo, ZEND_ACC_PUBLIC)
15681589
PHP_ME(vtiful_xls, setCurrentSheetIsFirst, xls_first_sheet_arginfo, ZEND_ACC_PUBLIC)
@@ -1619,6 +1640,47 @@ VTIFUL_STARTUP_FUNCTION(excel) {
16191640
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "GRIDLINES_SHOW_PRINT", LXW_SHOW_PRINT_GRIDLINES)
16201641
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "GRIDLINES_SHOW_SCREEN", LXW_SHOW_SCREEN_GRIDLINES)
16211642

1643+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_DEFAULT", 0)
1644+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_LETTER", 1)
1645+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_LETTER_SMALL", 2)
1646+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_TABLOID", 3)
1647+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_LEDGER", 4)
1648+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_LEGAL", 5)
1649+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_STATEMENT", 6)
1650+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_EXECUTIVE", 7)
1651+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_A3", 8)
1652+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_A4", 9)
1653+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_A4_SMALL", 10)
1654+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_A5", 11)
1655+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_B4", 12)
1656+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_B5", 13)
1657+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_FOLIO", 14)
1658+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_QUARTO", 15)
1659+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_NOTE", 18)
1660+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_ENVELOPE_9", 19)
1661+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_ENVELOPE_10", 20)
1662+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_ENVELOPE_11", 21)
1663+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_ENVELOPE_12", 22)
1664+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_ENVELOPE_14", 23)
1665+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_C_SIZE_SHEET", 24)
1666+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_D_SIZE_SHEET", 25)
1667+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_E_SIZE_SHEET", 26)
1668+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_ENVELOPE_DL", 27)
1669+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_ENVELOPE_C3", 28)
1670+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_ENVELOPE_C4", 29)
1671+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_ENVELOPE_C5", 30)
1672+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_ENVELOPE_C6", 31)
1673+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_ENVELOPE_C65", 32)
1674+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_ENVELOPE_B4", 33)
1675+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_ENVELOPE_B5", 34)
1676+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_ENVELOPE_B6", 35)
1677+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_ENVELOPE_1", 36)
1678+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_MONARCH", 37)
1679+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_ENVELOPE_2", 38)
1680+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_FANFOLD", 39)
1681+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_GERMAN_STD_FANFOLD", 40)
1682+
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, "PAPER_GERMAN_LEGAL_FANFOLD", 41)
1683+
16221684
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, V_XLS_CONST_READ_TYPE_INT, READ_TYPE_INT);
16231685
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, V_XLS_CONST_READ_TYPE_DOUBLE, READ_TYPE_DOUBLE);
16241686
REGISTER_CLASS_CONST_LONG(vtiful_xls_ce, V_XLS_CONST_READ_TYPE_STRING, READ_TYPE_STRING);

kernel/write.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -386,6 +386,14 @@ void first_worksheet(xls_resource_write_t *res)
386386
worksheet_set_first_sheet(res->worksheet);
387387
}
388388

389+
/*
390+
* Paper format
391+
*/
392+
void paper(xls_resource_write_t *res, zend_long type)
393+
{
394+
worksheet_set_paper(res->worksheet, type);
395+
}
396+
389397
/*
390398
* Call finalization code and close file.
391399
*/

tests/paper.phpt

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
--TEST--
2+
Check for vtiful presence
3+
--SKIPIF--
4+
<?php if (!extension_loaded("xlswriter")) print "skip"; ?>
5+
--FILE--
6+
<?php
7+
$config = [
8+
'path' => './tests'
9+
];
10+
11+
$fileObject = new \Vtiful\Kernel\Excel($config);
12+
$fileObject = $fileObject->fileName('tutorial.xlsx');
13+
14+
$filePath = $fileObject->header(['name', 'age'])
15+
->data([
16+
['viest', 21],
17+
['wjx', 21]
18+
])
19+
->setPaper(\Vtiful\Kernel\Excel::PAPER_A3)
20+
->setLandscape()
21+
->output();
22+
23+
var_dump($filePath);
24+
?>
25+
--CLEAN--
26+
<?php
27+
@unlink(__DIR__ . '/tutorial.xlsx');
28+
?>
29+
--EXPECT--
30+
string(21) "./tests/tutorial.xlsx"

tests/printed.phpt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ try {
88
$config = ['path' => './tests'];
99
$excel = new \Vtiful\Kernel\Excel($config);
1010

11-
$excel->setPrintedPortrait();
11+
$excel->setPortrait();
1212
} catch (\Exception $exception) {
1313
var_dump($exception->getCode());
1414
var_dump($exception->getMessage());
@@ -18,7 +18,7 @@ $config = ['path' => './tests'];
1818
$excel = new \Vtiful\Kernel\Excel($config);
1919

2020
$excel->fileName('printed_portrait.xlsx', 'sheet1')
21-
->setPrintedPortrait()
21+
->setPortrait()
2222
->output();
2323

2424
var_dump($excel);
@@ -27,7 +27,7 @@ $config = ['path' => './tests'];
2727
$excel = new \Vtiful\Kernel\Excel($config);
2828

2929
$excel->fileName('printed_landscape.xlsx', 'sheet1')
30-
->setPrintedLandscape()
30+
->setLandscape()
3131
->output();
3232

3333
var_dump($excel);

tests/protection_password.phpt

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
--TEST--
2+
Check for vtiful presence
3+
--SKIPIF--
4+
<?php if (!extension_loaded("xlswriter")) print "skip"; ?>
5+
--FILE--
6+
<?php
7+
$config = [
8+
'path' => './tests'
9+
];
10+
11+
$fileObject = new \Vtiful\Kernel\Excel($config);
12+
$fileObject = $fileObject->fileName('tutorial.xlsx');
13+
14+
$filePath = $fileObject->header(['name', 'age'])
15+
->data([
16+
['viest', 21],
17+
['wjx', 21]
18+
])
19+
->protection('password')
20+
->output();
21+
22+
var_dump($filePath);
23+
?>
24+
--CLEAN--
25+
<?php
26+
@unlink(__DIR__ . '/tutorial.xlsx');
27+
?>
28+
--EXPECT--
29+
string(21) "./tests/tutorial.xlsx"

0 commit comments

Comments
 (0)