Skip to content
This repository has been archived by the owner on Sep 10, 2019. It is now read-only.

Commit

Permalink
added invert header option
Browse files Browse the repository at this point in the history
  • Loading branch information
ardean committed Dec 26, 2016
1 parent 81c7357 commit eae8cfa
Show file tree
Hide file tree
Showing 7 changed files with 296 additions and 165 deletions.
16 changes: 14 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
# pdf-reminder-simple
A simple pdf reminder template
[![NPM Version][npm-image]][downloads-url] [![NPM Downloads][downloads-image]][downloads-url]

Example:
**A simple pdf reminder template**

## Usage

```javascript
import moment from "moment";
import simpleReminder from "pdf-reminder-simple";

simpleReminder({
invertHeader: true,
organizationAddress: {
name: "Orbin",
street: "Strasse 333",
Expand All @@ -34,3 +37,12 @@ simpleReminder({
note: "Meine Notiz"
}).print("reminder.pdf");
```

## License

[MIT](LICENSE)

[downloads-image]: https://img.shields.io/npm/dm/pdf-reminder-simple.svg
[downloads-url]: https://npmjs.org/package/pdf-reminder-simple
[npm-image]: https://img.shields.io/npm/v/pdf-reminder-simple.svg
[npm-url]: https://npmjs.org/package/pdf-reminder-simple
1 change: 1 addition & 0 deletions demo/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import moment from "moment";
import simpleReminder from "../src";

const pdf = simpleReminder({
invertHeader: true,
organizationAddress: {
name: "Orbin",
street: "Strasse 333",
Expand Down
233 changes: 156 additions & 77 deletions dist/pdf-reminder-simple.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
var a = typeof exports === 'object' ? factory(require("moment"), require("pdfmake-browser"), require("roboto-base64")) : factory(root["moment"], root["pdfmake-browser"], root["roboto-base64"]);
for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
}
})(this, function(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {
})(this, function(__WEBPACK_EXTERNAL_MODULE_3__, __WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_5__) {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
Expand Down Expand Up @@ -60,15 +60,21 @@ return /******/ (function(modules) { // webpackBootstrap
value: true
});

var _moment = __webpack_require__(1);
var _layout = __webpack_require__(1);

var _headTable = __webpack_require__(2);

var _headTable2 = _interopRequireDefault(_headTable);

var _moment = __webpack_require__(3);

var _moment2 = _interopRequireDefault(_moment);

var _pdfmakeBrowser = __webpack_require__(2);
var _pdfmakeBrowser = __webpack_require__(4);

var _pdfmakeBrowser2 = _interopRequireDefault(_pdfmakeBrowser);

var _robotoBase = __webpack_require__(3);
var _robotoBase = __webpack_require__(5);

var _robotoBase2 = _interopRequireDefault(_robotoBase);

Expand All @@ -78,48 +84,6 @@ return /******/ (function(modules) { // webpackBootstrap
fontSize: 10
};

var tableLayout = {
hLineWidth: function hLineWidth(i) {
return i === 1 ? 1 : 0;
},
vLineWidth: function vLineWidth() {
return 0;
},
paddingLeft: function paddingLeft() {
return 0;
},
paddingRight: function paddingRight() {
return 0;
},
paddingTop: function paddingTop(i) {
return i === 1 ? 15 : 5;
},
paddingBottom: function paddingBottom() {
return 5;
}
};

var footerLayout = {
hLineWidth: function hLineWidth(i, node) {
return i === 0 || i === node.table.body.length || i === node.table.body.length - 1 ? 1 : 0;
},
vLineWidth: function vLineWidth() {
return 0;
},
paddingLeft: function paddingLeft() {
return 0;
},
paddingRight: function paddingRight() {
return 0;
},
paddingTop: function paddingTop(i, node) {
return i === 0 || i === node.table.body.length - 1 ? 10 : 5;
},
paddingBottom: function paddingBottom(i, node) {
return i === node.table.body.length - 1 || i === node.table.body.length - 2 ? 10 : 5;
}
};

exports.default = function (options) {
return new _pdfmakeBrowser2.default(getTemplate(options), {
Roboto: _robotoBase2.default
Expand All @@ -140,61 +104,74 @@ return /******/ (function(modules) { // webpackBootstrap
var total = options.total || 0;
var currency = options.currency || "CHF";
var note = options.note;
var invertHeader = options.invertHeader || false;

var leftFields = [];
var organizationAddressText = organizationAddress ? getFlatAddressText(organizationAddress) : "";
if (organizationAddressText) {
leftFields.push({
text: organizationAddressText,
fontSize: 8,
color: "gray",
margin: [0, 0, 0, 10]
}, "");
}
if (billingAddress.name) {
leftFields.push(billingAddress.name);
leftFields.push({
text: billingAddress.name
}, "");
}
if (billingAddress.attn) {
leftFields.push(billingAddress.attn);
leftFields.push({
text: billingAddress.attn
}, "");
}
if (billingAddress.street) {
leftFields.push(billingAddress.street);
leftFields.push({
text: billingAddress.street
}, "");
}
var location = (billingAddress.postCode || "") + (billingAddress.city && billingAddress.postCode ? " " : "") + (billingAddress.city || "");
if (location) {
leftFields.push(location);
leftFields.push({
text: location
}, "");
}

var rightFields = [];
if (organizationAddressText) {
rightFields.push({
text: ""
}, "");
}
if (date) {
rightFields.push({
key: "Datum:",
value: date.format("DD.MM.YYYY")
text: "Datum:"
}, {
text: date.format("DD.MM.YYYY")
});
}
if (customerName) {
rightFields.push({
key: "Kunde:",
value: customerName
text: "Kunde:"
}, {
text: customerName
});
}

var headTableBody = [];
var tableHeight = Math.max(leftFields.length, rightFields.length);
for (var i = 0; i < tableHeight; i++) {
var leftValue = leftFields[i];
var rightObject = rightFields[i] || {};
headTableBody.push([leftValue || "", "", rightObject.key || "", {
text: rightObject.value || "",
alignment: "right"
}]);
}
var oldLeftFields = leftFields;
leftFields = invertHeader ? rightFields : leftFields;
rightFields = invertHeader ? oldLeftFields : rightFields;

var organizationAddressText = organizationAddress ? getFlatAddressText(organizationAddress) : "";
var headTableBody = _headTable2.default.getBody(leftFields, rightFields);

var doc = {
defaultStyle: defaultStyle,
content: [{
text: organizationAddressText,
margin: [0, 100, 0, 0],
fontSize: 8,
color: "gray"
}, {
margin: [0, 10, 0, 0],
layout: "noBorders",
table: {
widths: ["auto", "*", "auto", "auto"],
widths: ["auto", "auto", "*", "auto", "auto"],
body: headTableBody
}
}, {
Expand All @@ -206,7 +183,7 @@ return /******/ (function(modules) { // webpackBootstrap
text: reminderText
}, {
margin: [0, 25, 0, 0],
layout: tableLayout,
layout: _layout.table,
table: {
headerRows: 1,
widths: ["*", "auto"],
Expand All @@ -218,7 +195,7 @@ return /******/ (function(modules) { // webpackBootstrap
}]
};

doc.content[4].table.body.push([{
doc.content[3].table.body.push([{
stack: ["Rechnung " + (invoiceNumber ? invoiceNumber.toString() : ""), {
margin: [0, 2, 0, 0],
text: invoiceDate ? invoiceDate.format("DD.MM.YYYY") : "",
Expand All @@ -230,15 +207,15 @@ return /******/ (function(modules) { // webpackBootstrap
}]);

if (feeAmount) {
doc.content[4].table.body.push(["Gebühr", {
doc.content[3].table.body.push(["Gebühr", {
text: feeAmount.toFixed(2),
alignment: "right"
}]);
}

doc.content.push({
margin: [0, 25, 0, 0],
layout: footerLayout,
layout: _layout.footer,
table: {
headerRows: 1,
widths: ["*", "auto"],
Expand Down Expand Up @@ -273,20 +250,122 @@ return /******/ (function(modules) { // webpackBootstrap
/* 1 */
/***/ function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_1__;
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
var table = exports.table = {
hLineWidth: function hLineWidth(i) {
return i === 1 ? 1 : 0;
},
vLineWidth: function vLineWidth() {
return 0;
},
paddingLeft: function paddingLeft() {
return 0;
},
paddingRight: function paddingRight() {
return 0;
},
paddingTop: function paddingTop(i) {
return i === 1 ? 15 : 5;
},
paddingBottom: function paddingBottom() {
return 5;
}
};

var footer = exports.footer = {
hLineWidth: function hLineWidth(i, node) {
return i === 0 || i === node.table.body.length || i === node.table.body.length - 1 ? 1 : 0;
},
vLineWidth: function vLineWidth() {
return 0;
},
paddingLeft: function paddingLeft() {
return 0;
},
paddingRight: function paddingRight() {
return 0;
},
paddingTop: function paddingTop(i, node) {
return i === 0 || i === node.table.body.length - 1 ? 10 : 5;
},
paddingBottom: function paddingBottom(i, node) {
return i === node.table.body.length - 1 || i === node.table.body.length - 2 ? 10 : 5;
}
};

/***/ },
/* 2 */
/***/ function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_2__;
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

var HeadTable = function () {
function HeadTable() {
_classCallCheck(this, HeadTable);
}

_createClass(HeadTable, [{
key: "getBody",
value: function getBody(leftFields, rightFields) {
var headTableBody = [];
var tableHeight = Math.max(leftFields.length, rightFields.length);

for (var i = 0; i < tableHeight; i += 2) {
var left = this.getField(leftFields[i]);
var left2 = this.getField(leftFields[i + 1]);

var right = this.getField(rightFields[i]);
var right2 = this.getField(rightFields[i + 1]);

var line = [].concat(left, left2, "", right, right2);
headTableBody.push(line);
}

return headTableBody;
}
}, {
key: "getField",
value: function getField(field) {
if (!field) return "";
return field;
}
}]);

return HeadTable;
}();

exports.default = new HeadTable();

/***/ },
/* 3 */
/***/ function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_3__;

/***/ },
/* 4 */
/***/ function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_4__;

/***/ },
/* 5 */
/***/ function(module, exports) {

module.exports = __WEBPACK_EXTERNAL_MODULE_5__;

/***/ }
/******/ ])
});
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "pdf-reminder-simple",
"description": "A simple pdf reminder template",
"version": "0.2.0",
"version": "0.2.1",
"author": "Orbin",
"keywords": [
"pdf",
Expand Down
Loading

0 comments on commit eae8cfa

Please sign in to comment.