Prefix style attributes in header/footer with style and support relative positions
This commit is contained in:
parent
22e8d95128
commit
ea223c3609
@ -126,10 +126,64 @@
|
|||||||
if ([self strIsNullOrEmpty:label])
|
if ([self strIsNullOrEmpty:label])
|
||||||
return;
|
return;
|
||||||
|
|
||||||
APPPrinterStyle *style = [[APPPrinterStyle alloc]
|
NSDictionary *position = spec[@"position"];
|
||||||
initWithDictionary:spec];
|
NSDictionary *style = spec[@"style"];
|
||||||
|
|
||||||
[label drawInRect:rect withAttributes:style.attributes];
|
NSDictionary *attributes = [[APPPrinterStyle alloc]
|
||||||
|
initWithDictionary:style].attributes;
|
||||||
|
|
||||||
|
if (position)
|
||||||
|
{
|
||||||
|
[label drawAtPoint:[self pointFromPositionAsDictionary:position
|
||||||
|
forLabel:label
|
||||||
|
withAttributes:attributes
|
||||||
|
inRect:rect]
|
||||||
|
withAttributes:attributes];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
[label drawInRect:rect withAttributes:attributes];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (CGPoint) pointFromPositionAsDictionary:(NSDictionary *)spec
|
||||||
|
forLabel:(NSString *)label
|
||||||
|
withAttributes:(NSDictionary *)attributes
|
||||||
|
inRect:(CGRect)rect
|
||||||
|
{
|
||||||
|
double dots = [APPPrinterUnit convert:spec[@"unit"]];
|
||||||
|
id top = spec[@"top"];
|
||||||
|
id left = spec[@"left"];
|
||||||
|
id right = spec[@"right"];
|
||||||
|
id bottom = spec[@"bottom"];
|
||||||
|
|
||||||
|
double x = rect.origin.x, y = rect.origin.y;
|
||||||
|
CGSize size;
|
||||||
|
|
||||||
|
if (bottom || right)
|
||||||
|
{
|
||||||
|
size = [label sizeWithAttributes:attributes];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (top)
|
||||||
|
{
|
||||||
|
y = rect.origin.y + dots * [top doubleValue];
|
||||||
|
}
|
||||||
|
else if (bottom)
|
||||||
|
{
|
||||||
|
y = rect.origin.y - size.height - dots * [bottom doubleValue];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (left)
|
||||||
|
{
|
||||||
|
x = rect.origin.x + dots * [left doubleValue];
|
||||||
|
}
|
||||||
|
else if (right)
|
||||||
|
{
|
||||||
|
x = rect.size.width - size.width - dots * [right doubleValue];
|
||||||
|
}
|
||||||
|
|
||||||
|
return CGPointMake(x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
- (BOOL) strIsNullOrEmpty:(NSString *)string
|
- (BOOL) strIsNullOrEmpty:(NSString *)string
|
||||||
|
@ -61,14 +61,33 @@ exports.getDefaults = function () {
|
|||||||
|
|
||||||
labels: [{
|
labels: [{
|
||||||
text: 'Awesome Printer Plug-in',
|
text: 'Awesome Printer Plug-in',
|
||||||
align: 'center',
|
style: {
|
||||||
italic: true,
|
align: 'center',
|
||||||
color: '#FF0000'
|
italic: true,
|
||||||
|
color: '#FF0000'
|
||||||
|
}
|
||||||
},{
|
},{
|
||||||
showPageIndex: true,
|
showPageIndex: true,
|
||||||
align: 'right',
|
style: {
|
||||||
bold: true
|
align: 'right',
|
||||||
|
bold: true
|
||||||
|
}
|
||||||
}]
|
}]
|
||||||
|
},
|
||||||
|
|
||||||
|
footer: {
|
||||||
|
unit: 'mm',
|
||||||
|
height: 3,
|
||||||
|
|
||||||
|
label: {
|
||||||
|
text: 'Copyright (c) 2013-2019 Sebastián Katzer',
|
||||||
|
style: { size: 9 },
|
||||||
|
position: {
|
||||||
|
unit: 'mm',
|
||||||
|
top: 1.5,
|
||||||
|
right: 5
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user