Hi,
ich versuche gerade eine PDF-Klasse zu schreiben welche im Content (vorerst) aus HTMl besteht und außerdem die Möglichkeit anbieten soll Texte im Kopf und Fußbereich unterzubringen.
Das ganze habe ich über eine XML-Datei gemacht die für jedes Element das man zeichnen möchte einen Eintrag besitzt.
Die ganze Logik habe ich implementiert, mein PDF wird gezeichnet und gespeichert.
Im Header & Footer soll das ganze so dynamisch wie möglich funktionieren,sodass auch Mehrzeiliger Text ausgegeben wird.
Alle Texte für Kopf & Fuß werden durch folgenden Code gejagt:
Alles anzeigen
Die Einträge in der XML sehen u.a. so aus:
Das Problem ist das hinter dem Key "fulltext" ein Text steht der länger als eine Zeile ist und dann zeichnet drawRect einfach gar nichts mehr, laut Dokumentation müsste er aber so viel zeichnen wie er in den Bereich reinbekommt.
Ich hab schon probiert den AttributedString in ein Label zu packen, dann zeichnet er tatsächlich auch alles, aber er berücksichtigt keinerlei Formatierungen mehr
Kann mir jemand helfen?
ich versuche gerade eine PDF-Klasse zu schreiben welche im Content (vorerst) aus HTMl besteht und außerdem die Möglichkeit anbieten soll Texte im Kopf und Fußbereich unterzubringen.
Das ganze habe ich über eine XML-Datei gemacht die für jedes Element das man zeichnen möchte einen Eintrag besitzt.
Die ganze Logik habe ich implementiert, mein PDF wird gezeichnet und gespeichert.
Im Header & Footer soll das ganze so dynamisch wie möglich funktionieren,sodass auch Mehrzeiliger Text ausgegeben wird.
Alle Texte für Kopf & Fuß werden durch folgenden Code gejagt:
Quellcode
- NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new];
- paragraphStyle.maximumLineHeight = fontSize;
- paragraphStyle.minimumLineHeight = fontSize;
- paragraphStyle.alignment = NSTextAlignmentLeft;
- paragraphStyle.lineBreakMode = NSLineBreakByTruncatingTail;
- paragraphStyle.baseWritingDirection = NSWritingDirectionLeftToRight;
- NSDictionary *attrs = [NSDictionary dictionaryWithObjectsAndKeys:
- NSForegroundColorAttributeName, textColor,
- NSFontAttributeName, font,
- NSBackgroundColorAttributeName, [UIColor lightGrayColor],
- NSParagraphStyleAttributeName, paragraphStyle,
- nil];
- NSString *text = [values valueForKey:[item objectForKey:kPropertyForKey]];
- NSAttributedString* attrString = [[NSAttributedString alloc] initWithString:text attributes:attrs];
- [attrString drawInRect:drawRect];
Die Einträge in der XML sehen u.a. so aus:
Quellcode
- <header height="5">
- <text key="vorname" x="0" y="0" width="20" height="auto" color="333333" fontSize="15.0" fontFamily="Bodoni 72 Oldstyle" />
- <text key="nachname" x="3" y="0" width="20" height="auto" color="#00ff00" fontSize="12.0" fontFamily="Optima" />
- <text key="fulltext" x="3" y="2" width="5" height="2" color="#00ff00" fontSize="12.0" />
- </header>
Das Problem ist das hinter dem Key "fulltext" ein Text steht der länger als eine Zeile ist und dann zeichnet drawRect einfach gar nichts mehr, laut Dokumentation müsste er aber so viel zeichnen wie er in den Bereich reinbekommt.
Ich hab schon probiert den AttributedString in ein Label zu packen, dann zeichnet er tatsächlich auch alles, aber er berücksichtigt keinerlei Formatierungen mehr
Kann mir jemand helfen?